20252902 2025-2026-2 《网络攻防实践》第3周作业

1.实验内容

本周的学习与实践主要围绕网络嗅探与协议分析展开。网络嗅探是网络攻防中极其重要的信息收集手段,通过旁路监听网络流量,可以获取网络拓扑、主机状态甚至明文传输的敏感数据。本次实验没有停留在理论,而是通过真实的网络流量抓取与现成的取证数据包分析,深入理解底层网络协议的工作机制:

  1. 命令行嗅探工具实践:掌握 tcpdump 的基本语法与BPF(Berkeley Packet Filter)过滤机制,通过抓取访问特定网站的流量,分析其背后的DNS解析与多Web服务器负载均衡现象。
  2. 图形化协议分析实践:熟练使用 Wireshark 抓包工具,对古老且不安全的 TELNET 协议进行深度解剖,通过“追踪TCP流”直观感受明文传输带来的极大安全隐患。
  3. 网络取证与扫描分析:利用网络安全分析工具(如 Wireshark 和被动指纹识别工具 p0f),对给定的网络捕获文件(listen.cap)进行逆向取证。分析攻击者的扫描策略(如TCP半连接扫描)、锁定攻击源与目标、提取开放端口,并研判攻击者的操作系统指纹。

2.实验过程

2.1 动手实践 tcpdump

任务目标:使用tcpdump对访问 www.tianya.cn 网站的过程进行嗅探,分析涉及的Web服务器及其IP地址。

操作步骤:

  1. 打开Kali虚拟机终端,切换至root权限(sudo susu - root),并使用 ifconfig 查看本机IP地址。

image

  1. 输入 tcpdump 嗅探命令,设置过滤规则,仅抓取与本机相关且目标端口为80(HTTP)或443(HTTPS)的数据包。
    • 执行的命令:[**<font style="color:#000000;">192.168.200.2</font>**,例如:tcpdump -n src 本机IP and tcp port 80]
  2. 在浏览器中访问 www.tianya.cn,观察终端中 tcpdump 抓取到的数据流。

image


2.2 动手实践 Wireshark

任务目标:使用Wireshark对以TELNET方式登录BBS的过程进行嗅探与协议分析,获取用户名及登录口令。

操作步骤:

  1. 在Kali中启动Wireshark,选择对应的网卡(如 eth0)开始抓包。

image

  1. 打开终端,使用telnet命令连接清华大学BBS(或老师指定的其他BBS)。
    • 执行的命令:luit -encoding gbk telnet bbs.mysmth.net (注:luit用于解决中文乱码问题)

image

  1. 在终端中输入测试账号(如 guest)和对应的密码。
  2. 回到Wireshark,停止抓包。在显示过滤器中输入 telnettcp.port == 23 过滤出相关流量。

image

问题回答:

  • 你所登录的BBS服务器的IP地址与端口各是什么?
    • 服务器IP地址:[<font style="color:#000000;">192.168.200.7</font>]
    • 端口号:23(TELNET默认端口)
  • TELNET协议是如何向服务器传送你输入的用户名及登录口令?
    • [填写原理解释:TELNET基于TCP协议建立连接。它采用明文方式、逐字符实时传输用户的输入。即客户端键盘每敲击一个字符,都会立刻被封装在TCP包中明文发给服务器,服务器再回显该字符,整个过程没有任何加密保护。]
  • 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
    • 操作方法:在Wireshark中任意选择一条与BBS服务器通信的TELNET数据包,右键点击选择“追踪流 (Follow)” -> “TCP流 (TCP Stream)”。在弹出的窗口中(可将编码切换为GBK),红蓝交替的字符即为客户端的输入和服务器的回显,从中可以直接清晰地看到明文的账号和密码。

image


2.3 取证分析实践,解码网络扫描器(listen.cap)

任务准备:将 listen.cap (或 .pcap) 文件导入Kali,并使用Wireshark打开。

image

2.3.1 攻击主机的IP地址是什么?

源 IP (Source) 目的 IP (Dest) 协议 关键标志位 行为解读
172.31.4.178 172.31.4.188 TCP [SYN] 172.31.4.178 主动发起 TCP 连接请求(三次握手第一步
172.31.4.178 172.31.4.188 TCP [SYN,ACK] 172.31.4.188 正常响应,确认收到请求(三次握手第二步)
172.31.4.178 172.31.4.188 TCP [ACK] 172.31.4.178 确认收到响应(三次握手第三步,理论上连接建立)
172.31.4.178/188 172.31.4.188/178 TCP [RST,ACK] 172.31.4.178 主动发送 RST 复位包,直接强制断开连接

攻击机(172.31.4.178)

主动向目标机(172.31.4.188)发送 SYN包,发起TCP连接请求,是连接的发起方

2.3.2 网络扫描的目标IP地址是什么?

  • image

2.3.3 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?

  • 分析方法:利用被动操作系统指纹识别工具 p0f 对数据包进行分析。
  • 执行命令p0f -r listen.cap (如果未安装,需先执行 sudo apt install p0f)。

image

2.3.4 攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。

image

2.3.5 在蜜罐主机上哪些端口被发现是开放的?

  • 分析方法:只要目标主机回复了 SYN+ACK 报文,就说明该端口是开放的。可以在Wireshark中使用过滤器规则:tcp.flags.syn == 1 and tcp.flags.ack == 1 精准提取所有开放端口的响应包。
  • image

2.3.6 攻击主机的操作系统是什么?

  • 分析方法:同样依赖 p0f 工具的输出结果,它通过分析数据包头部的TTL、窗口大小等参数进行指纹比对。

image

image

3.学习中遇到的问题及解决

  • 问题1:在尝试使用 p0f 工具时,系统提示 Unable to locate package p0f,导致无法继续进行指纹分析。
  • 问题1解决方案:这通常是因为Kali系统的本地软件包列表太旧。执行了 sudo apt update 更新软件源列表后,再次执行 sudo apt install p0f 即可成功安装。
  • 问题2:在进行Wireshark追踪TELNET流时,发现弹出的窗口中全是乱码,无法看清英文字符。
  • 问题2解决方案[填写你的实际解决过程,例如:检查了底部“Show data as”选项,发现默认可能是Raw或其他编码,将其修改为 GBK 或 ASCII 后,英文字符恢复正常显示。]
  • 问题3[填写你遇到的其他问题]
  • 问题3解决方案[填写你的解决方案]

4.学习感悟与思考

本次实验让我深刻体会到了“所见即所得”在网络安全领域的含义。以前学习TCP/IP协议栈时,三次握手、四次挥手、标志位这些概念都停留在书本上的抽象描述,而通过 tcpdumpWireshark 这两把“解剖刀”,我第一次直观地看到了真实数据包在网络中穿梭的样子。

特别是TELNET登录实验给我留下了极深的印象。亲眼看到自己的密码被“追踪TCP流”功能一字不落地还原出来,让我对“明文传输协议的脆弱性”有了极其真实的危机感。这也让我明白了为什么现代网络强烈推荐使用SSH、HTTPS等加密协议来替代传统的明文协议。

此外,在对 listen.cap 的取证分析中,我体验了一次扮演“防守方”或“溯源调查员”的过程。通过蛛丝马迹(如SYN包的频率、RST包的异常阻断)反推攻击者的扫描策略,甚至利用 p0f 扒出攻击者的系统指纹和使用工具。这不仅锻炼了我的逻辑推理能力,也让我意识到:网络空间虽然虚拟,但只要产生交互,就必定会留下痕迹(洛卡德交换原理)。攻防对抗往往就是抓包、看包、懂包之间细节的较量。


参考资料

posted @ 2026-04-13 15:03  lujinyu  阅读(1)  评论(0)    收藏  举报