@
- 一. 实验内容
- 1.1 实验内容概述
- 1.2 实验相关知识概述
- 二. 实验过程
- 2.1 动手实践tcpdump
- 2.1.1 实验要求
- 2.1.2 实验过程展示
- 2.1.3 所使用网址链接
- 2.2 动手实践Wireshark
- 2.2.1 实验要求
- 2.2.2 实验过程展示
- 1. 你所登录的BBS服务器的IP地址与端口各是什么?
- 2. TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- 3. 问题回答
- 2.3 取证分析实践,解码网络扫描器(listen.cap)
- 2.3.1 实验要求
- 2.3.2 实验过程展示
- 1. 筛选ARP:
- 2. 查询ICMP:
- 3. 查询TCP:
- 4. tcp.flags.syn == 1 and tcp.flags.ack == 1查询:
- 遇到问题:
- 解决:
- 5. 问题回答:
- 2.1 动手实践tcpdump
- 三、学习中遇到的问题及解决
- 四、学习感悟、思考等
- 参考资料:
一. 实验内容
1.1 实验内容概述
本次实验主要包含了以下内容:
-
动手实践tcpdump
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么? -
动手实践Wireshark
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
(1) 你所登录的BBS服务器的IP地址与端口各是什么?
(2) TELNET协议是如何向服务器传送你输入的用户名及登录口令?
(3) 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令? -
取证分析实践,解码网络扫描器(listen.cap)
(1) 攻击主机的IP地址是什么?
(2) 网络扫描的目标IP地址是什么?
(3) 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
(4) 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
(5) 在蜜罐主机上哪些端口被发现是开放的?
(6) 攻击主机的操作系统是什么?
1.2 实验相关知识概述
-
tcpdump
tcpdump 是一款功能强大的网络数据包分析工具,常用于 Unix - like 系统,如 Linux、FreeBSD 等。它基于命令行操作,能实时捕获并分析网络流量,在网络故障排查、安全审计、网络性能优化等领域发挥关键作用。
工作原理:tcpdump 借助操作系统提供的底层网络接口,像 Linux 的 libpcap 库,获取网络数据包。其核心工作流程为:首先,与网络接口建立连接,将网络接口设置为混杂模式,这样能捕获经过该接口的所有数据包,包括发往其他主机的数据包。然后,根据用户设定的过滤规则,对捕获的数据包进行筛选。符合规则的数据包被进一步处理,比如打印到终端、存储到文件,不符合的则被丢弃。在处理数据包时,tcpdump 会解析数据包的头部信息,提取如源 IP 地址、目的 IP 地址、端口号、协议类型等关键内容。 -
Wireshark
Wireshark 是一款非常流行的网络协议分析工具,它允许用户捕获和分析网络上的数据包。Wireshark 提供了深入分析网络流量的能力,可以帮助用户理解网络协议的工作原理,以及排查网络问题。
通常用于网络管理和故障排查以及网络安全分析。由于它能够捕获和分析网络上的所有数据包,因此在安全敏感的环境中使用时需要谨慎,以避免违反隐私和安全政策。
二. 实验过程
2.1 动手实践tcpdump
2.1.1 实验要求
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,并回答问题:
- 你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?
- 他们的IP地址都是什么?
2.1.2 实验过程展示
由于www.tianya.cn网站现无法打开,故改为访问www.besti.edu.cn网站过程进行嗅探。
首先进行虚拟机设置更改,点击编辑虚拟机进入后,将网络配置修改为虚拟机桥接模式,再进行实验。
此次实验用www.besti.edu.cn网址来进行实验。
首先使用以下命令进入root模式,并查询虚拟机kali的IP地址。
sudo su
ifconfig
查询出IP地址为 192.168.31.218 。
使用tcpdump以下命令对本机向外的通信进行抓包,命令如下:
sudo tcpdump -n src 192.168.200.5 and tcp port 80 and “tcp[13]&18=2”
然后在浏览器中访问www.besti.edu.cn 。
使用sudo命令后可以看到抓取包。
可以看到访问 www.besti.edu.cn/过程中访问问了多个服务器。
刚没截完整图,重新运行一遍:
其中,对IP地址为:123.121.157.1.80 进行查询。
可以看到归属地为北京市丰台区。
2.1.3 所使用网址链接
总结一下用来查询IP地理位置网址:
https://www.ipshudi.com/
2.2 动手实践Wireshark
2.2.1 实验要求
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
(1) 你所登录的BBS服务器的IP地址与端口各是什么?
(2) TELNET协议是如何向服务器传送你输入的用户名及登录口令?
(3) 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
2.2.2 实验过程展示
1. 你所登录的BBS服务器的IP地址与端口各是什么?
这次实验中使用[https://bbs.fozztexx.com/]来进行操作,在Kali上使用以下命令来访问这个BBS服务器:
luit -encoding gbk telnet bbs.fozztexx.com
可以看到该BBS的IP地址是50.79.157.209 。
同时打开wireshark进行监听,使用telnet过滤后结果如下所示:
可以看到它的端口号为23 。
2. TELNET协议是如何向服务器传送你输入的用户名及登录口令?
进入BBS后,输入NEW进行新账号创建,而后依次输入账号密码,分别为BHY和123456。
本机IP地址,即192.168.31.218为检索条件,进行筛选并查找报文,找到了端口号为23的一条记录,即为双方通信过程中传递账号密码的过程。
然后单击右键点击follow进行TCP流跟踪,便可得到了整个通信过程。
3. 问题回答
①你所登录的BBS服务器的IP地址与端口各是什么?
IP地址:50.79.157.209
端口:23
②TELNET协议是如何向服务器传送你输入的用户名及登录口令?
Telnet协议使用TCP/IP协议族作为传输层协议,在进行远程登录之前,需要先建立TCP连接,即三次握手,。首先,客户端向服务器发起连接请求,服务器在接收到连接请求后,回复确认信号,建立连接。
此后,一旦输入并提交用户名和登录口令,Telnet就将发送它们给服务器。
③如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
过滤双方的IP地址,并点击follow追踪TCP流,即可获取
账号密码等等输入的信息:
2.3 取证分析实践,解码网络扫描器(listen.cap)
2.3.1 实验要求
取证分析实践,解码网络扫描器(listen.cap):
(1) 攻击主机的IP地址是什么?
(2) 网络扫描的目标IP地址是什么?
(3) 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
(4) 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
(5) 在蜜罐主机上哪些端口被发现是开放的?
(6) 攻击主机的操作系统是什么?
2.3.2 实验过程展示
打开Kali虚拟机,在WireShark中进行listen.pcap文件的分析。
Kali虚拟机传入listen.pcap文件的方式(其实它可以直接进行文件的拖入,即将Windows上的文件直接拖进虚拟机的桌面即可)
将 listen.pcap 复制到kali虚拟机后,使用snort对二进制记录文件进行入侵检测。
对于snort以前未安装,所以在打开kali终端后首先使用以下命令进入root终端进行安装:
sudo su
sudo apt-get update
sudo apt-get install snort
安装完成,继续实验。
使用以下命令对文件进行复制以及使用:
cp listen.pcap /etc/snort/
snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap
用Wireshark打开listen.pcap文件进行分析:
单击右键 --> 选择第一个以Wireshark打开即可。
打开文件如下图所示:
下面按照要求进行一一查询即可。
1. 筛选ARP:
因为nmap会根据arp更新目标MAC地址,因此通过查询ARP地址,即可得到攻击者通过广播的形式查询靶机172.31.4.178的MAC地址:
2. 查询ICMP:
查询icmp可以发现,攻击机和靶机之间存在双向数据包,说明进行了批量的ping扫描进行主机扫描,以确认目标靶机是否活跃。
3. 查询TCP:
查询TCP,可以发现进行了大量的TCP扫描,例如攻击机向靶机发送SYN请求包,靶机返回SYN,ACK确认连接,攻击机响应,说明该端口开放。反之,如果靶机返回RST,ACK,则说明靶机的该端口关闭。
4. tcp.flags.syn == 1 and tcp.flags.ack == 1查询:
通过查询tcp.flags.syn == 1 and tcp.flags.ack == 1可以得到靶机所有开放的端口,例如有21、22、23、25、53、80、139、445、3306、8180等端口。
最后,通过以下命令安装p0f工具,并使用该工具进行攻击者的攻击机操作系统版本的查询
使用以下命令进行安装查询:
sudo apt install p0f
sudo p0f -r listen.pcap
刚才安装后忘记截图了,重新用命令检查一遍:
遇到问题:
这里遇到问题,使用p0f命令显示找不到文件。
因为当时直接拖进kali虚拟机桌面,所以在文件系统中查询listen.pcap文件真实路径如下图所示:
询问kim后得知需要更改一下路径命令:
解决:
更改一下查询命令:
sudo pof -r /home/kali/Desktop/listen.pcap
查询成功:
即攻击者的操作系统版本为Linux 2.6.x 。
5. 问题回答:
解码网络扫描器(listen.cap):
(1)攻击主机的IP地址是什么?
答: 172.31.4.178
(2)网络扫描的目标IP地址是什么?
答: 172.31.4.188
(3)本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
答: 本次案例使用了nmap端口扫描工具,通过snort工具解析确定的。
(4)你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理?
答: 攻击者使用了广播查询的方式。
(5)在蜜罐主机上哪些端口被发现是开放的?
答: 有21、22、23、25、53、80、139、445、3306、8180等端口。
(6)攻击主机的操作系统是什么?
答: 攻击机操作系统版本为Linux 2.6.x 。
三、学习中遇到的问题及解决
在这次实验中,主要问题有以下几点:
问题:listen.pcap文件的传输路径以及后续用p0f检测问题,无法查询到文件。
解决方案:点击文件夹查询文件正确路径后更改代码便可实现查询。具体过程可见2.3.2.4 - 2.3.2.5小节。
四、学习感悟、思考等
- 在本次实验中,实验目标主要是学习并掌握基础的网络嗅探与协议分析技术,例如TCPDump、Wireshark以及取证分析等三个方面相关知识。这些活动的主要目的是在进行更深入的测试或攻击之前,促使用户捕获、检查和分析通过网络传输的数据包。在网络安全领域,网络嗅探和协议分析是渗透测试和安全评估的重要组成部分。
- 在这次实验中,我加深了对于协议分析技术的知识学习,进一步巩固了相关知识,为后面开展网络攻防实验打下坚实的基础。
参考资料:
https://blog.csdn.net/weixin_49071539/article/details/110433028
https://blog.csdn.net/weixin_49114503/article/details/132993612