20232906 陈瀚文 2023-2024-2 《网络与系统攻防技术》第三次作业
1.实验内容
-
动手实践tcpdump
使用tcpdump开源软件对在本机上访问www.besti.edu.cn网站过程进行嗅探,回答问题:你在访问www.besti.edu.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
-
动手实践Wireshark
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
- 你所登录的BBS服务器的IP地址与端口各是什么?
- TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
-
取证分析实践,解码网络扫描器(listen.cap)
- 攻击主机的IP地址是什么?
- 网络扫描的目标IP地址是什么?
- 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
- 在蜜罐主机上哪些端口被发现是开放的?
- 攻击主机的操作系统是什么?
2.实验过程
2.1 动手实践tcpdump
-
这里我使用Kali进行实践。首先查看Kali的网络信息,使用命令
ifconfig
,结果如图一所示,Kali的IP地址为192.168.200.6
。
图一 查询新浪的DNS信息 -
使用tcpdump对本机向外的通信进行抓包,命令如下:
tcpdump -n src 192.168.200.6 and tcp port 443 and "tcp[13]&18=2"
-n:单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。
“tcp[13]&18=2”:从0开始数,TCP标识位包含在第13字节,如下图二所示,我们需要找到标志位SYN为1、ACK为0的数据包,因此应当用TCP数据包的第十三字节和18进行与运算,并筛选出结果为2的数据包。
图二 TCP Flags标志位 -
查看结果如图三所示,可以发现在访问
www.besti.edu.cn
网站首页时,浏览器访问了5个Web服务器,它们的IP地址为34.117.237.239、34.107.243.93、220.181.38.150、34.107.243.93、123.127.157.1。

图三 访问www.besti.edu.cn抓包结果
2.2 动手实践Wireshark
-
这里我们用telnet访问水木社区,使用命令如下:
luit -encoding GBK telnet bbs.newsmth.net
可以得到图四所示的界面。
图四 水木社区 -
开启Kali的Wireshark抓包,选择eth0网卡,然后在终端输入guest以访客登入水木社区,访问一段时间后在Wireshark过滤器中输入
telnet
对telnet协议的数据包进行过滤,抓包结果如图五所示,可知所登录的BBS服务器的IP地址为120.92.212.76,端口为23即telnet服务的端口。
图五 水木社区telnet服务的IP和端口 -
如图六所示,继续追踪TCP流可以发现,输入的guest以明文方式向服务器进行传输,如图五所示,其中在输入用户名的时候,telnet使用的模式为一次一个字符方式,即客户端输入一个字符,服务器即回显相同的字符,而在输入密码的时候服务器则不回显,通过这个特点即可获取到用户名和密码,在这里由于使用了guest账户,所以没有密码,因此用户名为guest。

图六 追踪TCP流结果
Telnet四种工作模式:
半双工:客户端在接收用户输入之前,必须从服务器进程获得GO AHEAD (G A)命令. 现在已很少使用.
一次一个字符:客户端把用户输入的每个字符都单独发送给服务器,服务器回显字符给客户端. 是目前大多数Telnet程序的默认方式. SUPPRESS GO AHEAD选项和ECHO选项必须同时有效.
准行方式(kludge line mode):用户每键入一行信息,客户端向服务器发送一次. 当上面两个选项其中之一无效时采用此模式.
行方式:类似准行方式,纠正了准行方式的缺点. 较新的Telnet程序支持这种方式
2.3 取证分析实践,解码网络扫描器(listen.cap)
-
为了方便,这里我直接使用Windows 10中的Wireshark对
listen.cap
文件进行分析。 -
选择统计 - 会话 - TCP,如图七所示,IP地址为172.31.4.178的主机发送了大量的TCP数据包给IP地址为172.31.4.188的主机,因此有理由怀疑,攻击机的地址为172.31.4.178,靶机的地址为172.31.4.188。
图七 Wireshark统计结果 -
如图八所示,在root账户中使用命令
apt install p0f
进行安装,等待安装完成后输入命令p0f -r listen.pcap > result.txt
,待运行完成后输入命令more result.txt
在其中键入/app
即可发现使用了Nmap扫描工具。
图八 使用p0f查看端口扫描工具
p0f是一款被动探测工具,能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。
- 其中我发现了四种扫描方式,首先是TCP connect扫描,如图九所示,该方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。
特征:攻击机发送SYN,靶机回复SYN/ACK,攻击机回复RST

图九 TCP connect扫描
特征:攻击机发送SYN后不理会靶机的SYN/ACK回复,直到连接超时靶机回复RST重置连接。

图十 TCP SYN扫描
Wireshark过滤条件:tcp.flags.ack == 1 and ip.src == 172.31.4.178,先通过过滤条件定位包,然后取消过滤查看双方数据包交互过程。

图十一 TCP ACK扫描
- 最后是TCP Xmas扫描,如图十二所示。Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包,相对比较隐蔽。如果收到对方RST回复包,那么说明该端口是关闭的;没有收到RST包说明端口可能是开放的或被屏蔽的(open|filtered)。
Wireshark过滤条件:tcp.flags.urg == 1,先通过过滤条件定位包,然后取消过滤查看双方数据包交互过程。

图十二 TCP Xmas扫描
-
使用过滤条件:
tcp.flags.syn == 1 and tcp.flags.ack == 1 and ip.src == 172.31.4.188
,即可找到响应的端口,如图十三所示,开放的端口有21、22、23、25、53、139、445、3306、3632、5432、8009、8180。
图十三 靶机开放的端口 -
继续使用p0f工具,输入命令
p0f -r listen.pcap > result.txt
,待运行完成后输入命令more result.txt
在其中键入/os
即可发现使用了Nmap扫描工具即可发现系统为Linux 2.6.x。

图十四 攻击机的操作系统
- 问题1:访问
www.besti.edu.cn
时连接超时。 - 问题1解决方案:换用热点后重启虚拟机即可正常连接。
4.学习感悟、思考等
本次实验进行了抓包以及分析数据包的取证分析实践,通过动手的方式我弄懂了抓包的方法以及取证分析的基本思路和常用的工具。在本次实验中,经过在网上寻找相关资料,我成功地完成了相关的实验内容,值得注意的是,本次实验在通过telnet访问bbs的时候telnet采用了明文的方式,这种方式很有可能导致自己的用户名和口令泄露,造成不必要的损失,因此我们应该避免使用telnet服务,应该用更加安全的方式进行访问。
感谢王老师的细心讲解和耐心帮助,也感谢在实验过程中给我帮助的同学们。正因为有你们的帮助我才能够顺利地完成本次实验,谢谢!