第3次作业 实践三 网络嗅探与协议分析
TCPDUMP
在kali终端中使用tcpdump对 www.163.com 进行探测
以下为命令 src 指定源ip地址也就是本机ip 添加其余条件 tcp dst port 为目的地址的端口为80 和 443
同时加-c 命令只截取200个数据包
sudo tcpdump -n src 192.168.5.2 and tcp dst port 80 or tcp dst port 443 -c 200
也可以使用-w 163.pcap 命令将其保存为163.pacp流量包方便放到wireshark中进行分析
以下为部分探测结果

访问的 Web 服务器列表
去重后,共访问了 9 个不同的 Web 服务器,其 IP 地址及对应的端口如下:
| 序号 | IP地址 | 端口 | 协议 |
|---|---|---|---|
| 1 | 151.101.89.91 | 443 | HTTPS |
| 2 | 34.160.144.191 | 443 | HTTPS |
| 3 | 1.31.109.92 | 80 | HTTP |
| 4 | 34.107.243.93 | 443 | HTTPS |
| 5 | 61.48.83.207 | 80 | HTTP |
| 6 | 34.107.221.82 | 80 | HTTP |
| 7 | 36.110.220.121 | 443 | HTTPS |
| 8 | 60.26.227.196 | 443 | HTTPS |
| 9 | 218.11.11.230 | 443 | HTTPS |
wireshark流量分析telnet协议
telnet bbs.newsmth.net 23
其默认端口为23
笔者已在windows中开启telnet,所以在windows环境下进行测试,(telnet貌似在windows专业版比较方便开?)
打开wireshark进行监听,同时使用cmd命令访问使用telnet协议的论坛网站,在此以清华论坛为例
telnet bbs.mysmth.net 23
抓包过程在之前博客已经写过在此不再重复
使用guest账户登录论坛,登陆后停止抓包,以下为抓包结果使用过滤器过滤出telnet协议

右键具体流量可以选择追踪->tcp流最终显示结果如下:
本图片中可以观察到整个流程中所有的数据包以ASCII码显示

其中这里使用的是guest账户登录,可以在数据包中查看到guest明文字段,对于第一个guest其实是为提示词,
真正传输与接收到的实际上是字符串
gguuss.. .eesstt
在实验过程中,可能会观察到用户名出现重复显示(如gguuss..tt)的现象,原因如下:
| 现象 | 原因 |
|---|---|
| 字符重复(如gg、uu) | 本地回显与远程回显叠加 |
| 字符顺序错乱(如s先于e出现) | 网络延迟不均导致回显包乱序到达 |
| 出现..符号 | 回车符(\r\n)的回显,或Telnet控制命令的显示 |
Telnet协议的安全缺陷
| 缺陷 | 说明 |
|---|---|
| 明文传输 | 所有数据(含用户名、密码)未经加密,可直接读取 |
| 无身份验证机制 | 无法验证服务器身份,容易遭受中间人攻击 |
| 逐字符传输 | 增加被嗅探的风险,每个按键都可被捕获 |
通过本次实验,验证了Telnet协议以明文方式传输用户名和密码的特性。使用Wireshark可以轻松捕获并还原用户的登录凭据,充分证明了Telnet协议在现代网络环境中的不安全性,也说明了为何需要采用SSH等加密协议替代Telnet。
取证分析实践,解码网络扫描器(listen.cap)
wireshark打开流量包后默认以时间顺序进行排序首先看到arp协议的身影:
ARP协议对172.31.4.188进行查找,随后将ip返回致172.31.4.178

接着往下翻,发现异常流量:178地址的主机对188地址发送了大量数据包,而对于正常的业务逻辑来说,正常用户不会短时间内发送大量的tcp包,只有一种可能就是扫描。
所以攻击IP为172.31.4.178 而靶机IP为172.31.4.188

使用过滤器
ip.src==172.31.4.178 && ip.dst==172.31.4.188
下方发现了大量的tcp数据包,同时还发现数据包中含有
[SYN]Seq=0 Win=4096 Len=0 MSS=1460
Win字段为1024,2048,3072与4096
Len为0,MSS段为1460

可以初步推测为NMAP扫描,而MSS段为1460
经查询得知:
| 特征 | 含义 | Nmap扫描中的表现 |
|---|---|---|
| MSS=1460 | TCP最大段大小选项,通常出现在SYN包中协商MTU | Nmap在SYN包中固定携带MSS选项,值为1460 |
| Len=0 | 数据包负载长度为0,没有payloa | Nmap默认扫描不携带数据负载 |
| Seq=0 | TCP序列号为0(相对值) | Nmap扫描包的初始序列号固定为0(或随机化但Wireshark显示相对值) |
| Win=1024/2048/4096 | TCP窗口大小为1024、2048或4096字节 | Nmap SYN扫描的窗口值是固定的小整数,正常操作系统通常使用更大的窗口(如8192、16384、65535等) |
MSS=1460、Len=0、Seq=0、Win 为 1024/2048/4096 等较小固定值,是Nmap SYN 扫描(默认的 -sS 模式)的明确指纹。

那么我们还差攻击主机的os没有确定,对于TCP来说
- TTL ≈ 64:扫描机很可能是 Linux / Unix / macOS
- TTL ≈ 128:扫描机很可能是 Windows
- TTL ≈ 255:扫描机很可能是 Solaris / 某些网络设备
我们双击流量点开找到以下位置,大量的tcp包的TTL都在64左右可以初步推断为linux系统
![image]()
接下来我们需要找到,靶机到底开放了哪些端口使用过滤器
tcp.flags.syn == 1 and tcp.flags.ack == 1 and ip.src == 172.31.4.188
该命令只查找syn字段为1,同时ack为1的tcp流量包,在这种情况下我们设置源地址为靶机地址,也就是说我们需要判断哪些靶机端口回应了扫描。
点击wireshark上方的统计,找到端点

我们选择TCP,并勾选下方的显示过滤器限制

找到地址为172.31.4.188的信息,具体端口在下方显示,很明显存在3306端口,而3306端口默认为mysql服务

Nmap SYN -Ss 半开放扫描原理
正常TCP三次握手

Nmap SYN扫描-Ss

实验收获总结
通过本次Wireshark流量分析实验,我掌握了以下内容:
- 理解Nmap SYN扫描原理
掌握了半开放扫描的工作机制(SYN → SYN-ACK → RST,不完成三次握手)
学会了根据响应类型判断端口状态(SYN-ACK=开放、RST=关闭)
- 识别扫描流量特征
能够识别Nmap扫描的典型指纹:窗口值1024/2048/4096、Len=0、MSS=1460
学会了通过TTL值反推操作系统(TTL=46说明扫描机为Linux系统,经过约18跳)
- 掌握Wireshark分析技能
熟练使用过滤器定位扫描包、开放端口和RST包
能够结合统计功能生成端口列表,快速判断哪些端口开放

浙公网安备 33010602011771号