实践三 网络嗅探与协议分析
1. 实验内容
1.1 网络嗅探
1.1.1 技术定义
网络嗅探(Network Sniffing)是在网络上传输的数据包进行捕获和分析的过程。通过嗅探器,可以监视网络上的流量,识别网络的使用情况、诊断网络问题,并对网络安全威胁进行评估。
1.1.2 原理
网络嗅探的原理基于网络接口卡(NIC)的特殊模式——混杂模式(Promiscuous Mode)。在混杂模式下,网络接口卡会捕获经过它的所有数据包,而不仅仅是发送给该接口的MAC地址的数据包。嗅探器利用这一特性,捕获网络上的数据包,并对这些数据包进行分析,以提取有用信息。
(1)数据包捕获:嗅探器首先在网络上捕获数据包。这些数据包可能包含了源地址、目的地址、传输的数据等信息。
(2)数据分析:捕获的数据包接着被解析和分析。分析可以包括识别协议类型、提取传输数据、检测网络问题或异常等。
(3)日志记录和报告:最后,嗅探器通常会记录分析结果,并可能生成报告,以供网络管理员或安全专家进一步审查。
1.1.3 相关工具
- Wireshark:Wireshark是最著名的网络嗅探工具之一,提供了强大的数据包捕获和分析功能。它支持多种网络协议,可视化的界面使得数据分析更加直观。
- tcpdump:tcpdump是一个命令行网络分析工具,它允许用户捕获和分析网络上的数据包。它是许多操作系统中的标准工具,特别适用于服务器和没有图形界面的环境。
- Snort:Snort是一个开源的网络入侵检测和防御系统,它也具有数据包嗅探的功能。除了捕获和分析数据包外,Snort还可以用来检测网络上的恶意活动和安全威胁。
- 除此之外,还包括dsniff(Linux)、sniffit(Linux)、snifferPro(Win)等工具。
1.2 协议分析
1.2.1 原理
(1)网络协议的层次结构理解:网络协议分析首先基于对网络协议栈的理解,通常指的是OSI七层模型或TCP/IP四层模型。每个层次定义了不同类型的通信和网络服务,分析人员需要对这些层次及其协议有深入理解。
(2)数据包捕获:协议分析的第一步是捕获网络上传输的数据包。这通常通过将网络接口设置为混杂模式完成,以便捕获流经网络接口的所有数据包。
(3)数据包解析:一旦数据包被捕获,分析工具将解析数据包中的每个层次的信息,包括网络层的IP头、传输层的TCP或UDP头以及应用层的具体协议数据。
(4)流量分析和模式识别:通过对捕获的数据包进行深入分析,可以识别网络流量的模式和趋势,检测网络拥堵、不正常流量或潜在的安全威胁。
(5)协议合规性和性能分析:除了安全分析外,协议分析还包括检查网络协议的合规性、优化网络性能和识别配置错误等。
1.2.2 技术应用
(1)网络故障诊断:通过分析网络协议和数据包,可以定位网络故障的根源,诊断网络延迟、丢包或连接问题。
(2)网络安全:协议分析用于监测和防御网络安全威胁,如入侵检测、恶意软件通信和数据泄露。通过分析异常的网络协议行为,可以识别和阻止安全攻击。
(3)应用性能监控:协议分析有助于理解特定应用的网络行为,监控应用性能,识别和解决网络相关的性能瓶颈。
(4)网络优化:通过深入分析协议交换和流量模式,网络管理员可以优化网络架构和配置,提高网络效率和性能。
(5)合规性审计:在某些行业中,网络协议分析是必要的合规性要求,以确保数据传输遵守特定的标准和法规。
2. 实验过程
2.1 tcpdump
访问dky官网并使用tcpdump进行嗅探
tcpdump "src 192.168.11.185 and tcp dst port 80"
注意这张图里面的地址都是火狐首页那些,dky服务器的地址在后面这张图
58和152开头的才是学校的服务器地址
2.2 Wireshark
先看一下自己IP
telnet bbs.fozztexx.com
wireshark筛选自己IP是源IP和telnet协议
telnet && ip.src == 192.168.10.23
注意右小角,用户和密码的每一位都被分开了:1046xxxxx
2.3 listen.cap和p0f
打开之后,统计——会话——IPv4
可以发现172.31.4.178和172.31.4.188的分组非常多,明显多于其他IP之间的通信,且ACK包都是188发给178的,故172.31.4.178是被攻击者(靶机),172.31.4.188是攻击者。
逆天kali安装的snort没有配置文件,也不触发自动配置的页面,只好用我以前的Ubuntu安装和配置
安装之后给权限
sudo chmod 777 /etc/snort/snort.conf
然后配置网卡名(默认是enp0,我的是enp0s3)和CIDR
然后在listen.cap的目录下运行
sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap进行分析
分析结果很明显是用nmap扫描的
筛选ARP包,可以看到攻击者在广播arp request报文,寻找188的MAC地址
筛选ICMP包,可以看到使用了主机扫描
筛选TCP包,可以看到在数据包中存在大量SYN请求包,说明攻击机的57738端口向目标主机发起了TCP SYN扫描,以确定目标主机的哪些端口开放,开放的端口则回复SYN|ACK数据包,不活跃的端口则回复RST|ACK数据包
猜测攻击者进行了-sV扫描
筛选所有的SYN|ACK的数据包,可以得到靶机的所有开放端口,3306、139等
安装p0f之后进行分析
安装之后在listen.cap目录下运行
sudo p0f -r listen.pcap查看分析结果
可以看到os = Linux 2.6.x
如果用kali,一样安装之后进行分析
3. 学习中遇到的问题及解决
2.1中Kali虚拟机的网卡不要乱改连接模式,因为在配置环境的时候已经配了静态IP了
tianya.cn上不去
如果电脑装了wireshark,那么可以在本地打开listen.cap,不需要再去虚拟机内打开,但是snort需要在Linux安装,所以避免不了使用Linux。
注意那个工具是p0f而不是pOf,往年实验报告里面很多写错的
tcpdump的指令要加引号
4. 学习感悟和体会
话说不用复旦的校园网能连他们的BBS吗,我在本地也无法连接(防火墙已关闭,telnet客户端功能已开启)
5. 参考资料
- [ChatGPT 4](chat.openai.com)