20212906 2021-2022-2 《网络攻防实践》第五周作业
1.实践内容
1.1 网络嗅探
- 网络嗅探概述
网络嗅探技术是一种常用的窃听技术,利用计算机的网络接口截获并监听数据流中所包含的隐私信息。
嗅探技术按照链路可以分为:有线局域网和无线局域网嗅探技术;也可以按照实现方式分为:软件嗅探器和硬件嗅探器。
- 网络嗅探的原理与实现
以太网工作原理介绍:以太网通过使用CSMA/CD协议的共享通信信道进行消息传输。以太网中的数据以帧为单位,将上层的数据包装配上帧头和帧尾,通过MAC地址匹配数据包的目标。当网卡处于混杂模式下,能够接受一切通过它连接的以太网络的数据帧。
共享式网络和交换式网络:通过集线器进行连接的网络称为共享式网络,其网络拓扑呈总线的形式,这种连接方式导致同一集线器上的任一主机的数据包将发送到每一台主机;通过交换机连接的网络称之为交换式网络,在交换机中存在“MAC地址-端口映射表”,与交换机相连的任意主机的数据包将定向发送到特定的网卡。
交换式网络中的网络嗅探技术:MAC地址洪泛攻击、MAC欺骗、ARP欺骗
不同平台网络嗅探技术实现:类UNIX平台下,用户态的libpcap与内核态的BPF和过滤机制进行配合,共同提供UNIX平台的网络嗅探接口;windows平台下,通过与libpcap相容的WinPcap进行抓取。
- 网络嗅探软件
类Unix平台下的嗅探软件:libpcap、tcpdump、wireshark和dsniff、sniffit等等
windows平台下的嗅探软件:wireshark、snifferPro等等
网络嗅探的检测与防范
网络嗅探的检测:网络嗅探是一种被动的攻击手段,较为难以检测。可以通过探测网卡是否处于混杂模式来进行检测,或者通过构建MAC地址不合法但是IP地址有效的ICMP Echo请求进行测试网卡是否处于混杂状态。
网络嗅探的防范措施:使用更加安全的网络拓扑,严格隔离各个以太网;使用静态ARP和“MAC-端口映射表”;重视网络安全中集中位置点的安全防范; 避免使用明文传输口令或敏感信息的网络协议。
1.2 网络协议分析
- 网络协议分析技术
网络协议分析技术原理:对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
网络协议分析技术的具体流程:通过嗅探得到链路层原始二进制数据包、对以太网帧进行结构分析、对IP数据包进行分析、确定具体的应用层协议、对数据进行整合恢复,得到实际传输数据。
- 网络协议分析工具Wireshark
过滤源ip、目的ip:在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.XXX.XXX的包,ip.dst192.168.XXX.XXX;查找源地址为ip.src1.1.1.1
端口过滤:如过滤80端口,在Filter中输入,tcp.port80,这条规则是把源端口和目的端口为80的都过滤出来。使用tcp.dstport80只过滤目的端口为80的,tcp.srcport80只过滤源端口为80的包
协议过滤:比较简单,直接在Filter框中直接输入协议名即可,如过滤HTTP的协议
http模式过滤:如过滤get包,http.request.method"GET",过滤post包,http.request.method"POST"
连接符and的使用:过滤两种条件时,使用and连接,如过滤ip为192.168.XXX.XXX并且为http协议的,ip.src192.168.XXX.XXX and http。
2.实践过程
2.1 动手实践tcpdump
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
-
在terminal运行命令sudo tcpdump src 192.168.238.98 and tcp dst port 80(中间的IP地址要用本机IP)
-
从中可以看到系统发出了四次目标为对方80端口的请求,共计访问了两个web服务器,地址为124.225.206.22.80和124.225.69.77.80(之前看书的时候做了一遍实验,写作业的时候,应该是调用了火狐浏览器的缓存,导致部分资源直接从本地加载)
-
通过nslookup tianya.cn命令查看www.tianya.cn对应的IP地址,验证我们tcpdump的正确性。
2.2 动手实践Wireshark
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
1.你所登录的BBS服务器的IP地址与端口各是什么?
2.TELNET协议是如何向服务器传送你输入的用户名及登录口令?
3.如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
1)输入luit -encoding gbk telnet bbs.fudan.edu.cn(指定编码格式)命令访问复旦大学BBS服务器,得其IP地址为202.120.225.9
2)在wireshark的过滤器直接输入 telnet ,即可过滤显示telnet相关的数据包,通过查看wireshark里面可知其端口号为23
用游客模式guest登录该服务器,利用telnet过滤出来,并追踪TCP流可以看到我们的用户名guest,密码为空。
可知Telnet协议在传输用户名和密码时采用的时明文传输。
2.3取证分析实践,解码网络扫描器
1.攻击主机的IP地址是什么?
2.网络扫描的目标IP地址是什么?
3.本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
4.你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
5.在蜜罐主机上哪些端口被发现是开放的?
6.攻击主机的操作系统是什么?
1)下载listen.pcap
2)攻击的IP地址是172.31.4.178, 网络扫描的目标IP是172.31.4.188。 下述第一张图可以看出数据流量主要出现在上述两者之间,下述第二张图显示出172.31.4.178为攻击方。
3)在kali中使用apt-get install snort安装snort
输入命令sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r /home/user/桌面/listen.pcap
分析可知使用的攻击方式为nmap
其中参数意义:
-A 设置报警模式
-q 安静模式,不显示标志和状态报告
-u 初始化后改变Snort的UID
-c 使用配置文件,这会使得snort进入IDS模式,并从中读取运行的配置信息
-r 从pcap格式的文件中读取数据包
4)以arp作为筛选条件,分析数据包,可知一个进行了4次扫描。
以ICMP为条件过滤发现,有攻击机和靶机之间的双向数据包,说明进行了ICMP ping扫描,即 nmap -sP 172.31.4.188。
第一次扫描:数据包序列5-6之间数据包较少,而之后又是一次arp,推测可知第一次扫描攻击者并未向靶机再发送其余数据包,其目的仅仅是确认主机是否活跃,对应命令是nmap -sP。
第二次扫描:通过观察第二次扫描的末尾数据包,发现攻击机针对 ssh、 TCP 和 UDP 的1端口,并使用了大量构造的标志位,以触发不同的响应包,主要是进行远程主机的操作系统探测。
猜测第二次扫描命令为nmap -O。
第三次扫描:第三次扫描的往返是13W数据包,估计扫描端口六万多,所以应该是指定端口扫描,使用namp -sS -p 1-65535进行了TCP SYN全端口扫描,其中-p指定扫描的端口数。
第四次扫描:以tcp.port==80作为筛选条件,判断攻击机与靶机之间http链接是否开启,分析可得嗅探命令为nmap -sV进行网络服务探测扫描
以tcp.flags.syn == 1 and tcp.flags.ack == 1作为筛选条件,确定哪些端口开放,得到开放的端口有21,22,23,25,53,80,139,445,3306,3632,5432,8009,8180
5)在kali中输入命令apt-get install p0f,安装p0f
输入命令sudo p0f -r /home/user/桌面/listen.pcap,可知攻击机的操作系统为Linux 2.6.x
3.实践总结
对nmap的原理掌握还是不够牢固,导致在用wireshark分析nmap数据包的时候走了不少弯路。好在最后想明白了相关扫描的关键区别,最后完成作业。