前言
这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10518
我在这个课程的目标是:学习网络攻防技术相关知识,掌握相关技能。
这个作业在哪个具体方面帮助我实现目标 :初步学习网络嗅探技术与协议分析。
1.实践内容
1.1网络嗅探技术
- 网络嗅探技术概述
- 网络嗅探技术定义:一种黑客常用的窃听技术,利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。
- 网络嗅探技术与工具分类:按照所监听的链路层网络进行分类,有线局域网与无线局域网;按照实现形式分为软件嗅探器和硬件嗅探器。
- 原理与实现
- 以太网是共享信道的。在以太网的共享通信媒介中,网络上的站点使用在信道上的广播机制来发送自己的数据,则计算机能够接受到在共享媒介上发送给其他计算机的信息。
- 网卡驱动程序支持一种混杂模式(Promiscuous Mode),能够接收一切通过它连接共享通信媒介的数据帧。
- 共享式网络使用集线器(Hub)连接,集线器将收到的数据发送到所以接口;交换式网络中,交换机通过“MAC地址-端口映射表”转发数据帧至目标MAC地址。
- 针对纯交换式网络攻击:MAC地址洪泛攻击、MAC欺骗、ARP欺骗。
- 类UNIX平台的网络嗅探技术主要通过内核态的BPF和用户态的libpcap抓包工具库实现;通过增加一个驱动程序如NPF来访问内核网卡驱动中捕获的数据包。
- 网络嗅探器软件:类UNIX平台有libpcap抓包开发库、tcpdump嗅探器软件、wireshark嗅探器软件等等;Windows平台也有tcpdump。
- 网络嗅探的防范措施:采用安全的网络拓扑、用静态ARP或MAC-端口映射表代替动态机制、重视网关路由器交换机等的安全防范、避免使用明文传输重要信息的网络协议。
1.2 网络协议分析
- 网络协议分析技术原理:计算机通过网络传输数据时,根据不同网络层的协议对数据包进行逐层封装,发送到目标地址时再根据协议对报文进行逐层拆封,最终得到数据包。封装实际操作就是在数据流的头或尾加上一定的字段信息。所以网络嗅探对网络中的数据帧进行结构分析,定位出各字段结构,提取数据内容。例如通常IP报文格式如下:
-
网络分析工具wireshark:可以通过过滤器设置过滤条件,表达式参考tcpdump相关命令
tcp port 80
:表示只捕获80端口的TCP协议数据包。ip.dst == 127.0.0.1
:目的地址为127.0.0.1ip.src == 0.0.0.0
:原地址为0.0.0.0http.request.method=="POST"
:http模式过滤POST包
2.实践过程
2.1 tcpdump
实践内容:使用tcpdump对本机上访问www.tianya.cn网站过程进行嗅探
首先要确定来源地址,即本机地址,如我的是192.168.200.7
。并且http使用80端口,可以设置过滤条件。控制台命令为tcpdump src 192.168.200.7 and tcp dst post 80
tcpdump返回了嗅探到的各种信息,然后我们想知道哪些是tiianya.cn
的服务器地址,使用nslookup
查询tianya.cn
的IP地址如下:
对比tcpdump返回信息发现有221.182.218.244
和221.182.218.174
两个服务器地址。
2.2 wireshark
实践内容:使用wireshark对在本机上以Telnet方式登录BBS进行嗅探与协议分析,回答:(1)所登录的BBS的IP地址与端口各是什么(2)Telnet是如何项服务器传送用户名及密码的(3)如何利用wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令
首先我选择了清华大学的水木社区,其BBS地址为bbs.newsmth.net
。使用Telnet登录telnet bbs.newsmth.net
,结果如下:
乱码问题没有解决,也不是重点,不赘述。用nslookup
查得IP地址为120.92.212.76
。同时,BBS使用端口23
。
在wireshark设置过滤条件ip.dst == 120.92.212.76
用于监听本机发送到对方服务器的信息,其中包括用户名及密码。
可以看到上图telnet协议传输了f
,而我的用户名为fuhara
,查看使用Telnet协议的数据流,可以发现如下:
其中还包括了我输入错误进行删除的操作。
同理:密码也使用明文传输,将过滤器设置为ip.addr == 192.168.200.7
,查看发给对方服务器以及对方服务器返回可以看到如下信息:
明文传输给服务器后,服务器返回用来表示的*号。
以上,可以看出Telnet是用明文传输用户输入的用户名及密码的。
2.3 解码网络扫描
使用网络入侵检测器-snort捕获扫描的流量并存入网络日志文件中,对日志文件进行分析,回答问题:(1)攻击主机的IP地址是什么?(2)网络扫描的目标IP地址是什么?(3)本次案例中是使用了哪个扫描工具发起这些端口扫描?如何确定?(4)你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。(5)在蜜罐主机上发现哪些端口是开放的?(6)攻击主机的操作系统是什么
首先,安装snort,本来想在kali上装,但是一直失败。就搞了个 exe文件装WinXPattacker上了
使用控制台输入snort -l C:/Snort/log
,然后使用攻击机对靶机进行扫描。
开始运行程序,在结束后snort会将日志文件保存到指定位置
用wireshark读入进行分析
在snort工作期间,我使用kali对执行了nmap -sS 192.168.200.125
,kali地址为192.168.200.2
通过分析日志文件对以上操作进行验证。
首先确定攻击机与靶机的IP地址,主机A要对主机B通信时,需要通过ARP确定目标MAC地址,所以我们对过滤器添加条件arp
。如下:
可以看到日志中仅有192.168.200.125广播询问192.168.200.2,可以简单确定攻击机与靶机。
知道了两个IP地址后和用过滤器过滤到与两个地址相关的通信
确定是否由nmap发起的扫描可以借用可视化websnort进行分析可得,由于无法安装websnort不能进行展示;或者使用snort自带的配置文件文件snort.conf
相关设置进行扫描分析。
可以看到上图中的SCAN nmap XMAS
,确定为nmap发起的扫描。
分析nmap采用的扫描方法,如下图对其中一个端口的扫描:
应答过程为[SYN]->[SYN,ACK]->[RST]
,为半开扫描。其中[SYN,ACK]=[0,1]
说明端口打开,统计得有80,21,111,3306,23,53,25,139,5900,445,22,8009,512,1099端口开放。
3.学习中遇到的问题及解决
- 问题1:wireshark无法再Windows8.1上使用
- 问题1解决方案:原因是ncap无法正确安装,查了不少解决办法,换了几个版本都没有效果,放弃,在虚拟机上安装wireshark。
- 问题2:kali无法安装snort
- 问题2解决方案:下载exe版本,在WinXPattacker上安装
4.实践总结
很多教材上说明的软件版本已经有了很大改动,实验时需要结合实际进行配置。
参考资料
- Ubuntu18.04 安装和启动telnet服务(亲测可用)
- Linux tcpdump命令详解
- Snort 2.9.8.0
- WINDOWS下安装Snort
- Snort 命令参数详解
- TCP—-SYN、ACK-、FIN、RST、PSH、URG-详解