Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CS-DropSpawn_BOF — CobaltStrike BOF pour lancer des Beacons en utilisant le détournement de répertoire d'application DLL | Kitploit
Outils/GitHubGitHub/gmh5225/cs-dropspawn_bof
ExploitationPost-ExploitationTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHubgmh5225/cs-dropspawn_bof

CS-DropSpawn_BOF

CobaltStrike BOF pour lancer des Beacons en utilisant le détournement de répertoire d'application DLL

Voir le dépôt
324il y a 3 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DropSpawn

Introduction

DropSpawn est un BOF CobaltStrike utilisé pour lancer des Beacons supplémentaires via une méthode relativement méconnue de détournement de DLL. Fonctionne en x86-x86, x64-x64, et x86-x64/vice versa. À utiliser comme alternative à l'injection de processus.

Les exécutables Windows suivent l'ordre de recherche des DLL lorsqu'ils tentent de charger des DLL dont les chemins absolus n'ont pas été spécifiés :
image

Le détournement de DLL nécessite généralement que soit :

A. Un utilisateur dispose de droits d'écriture dans un dossier ayant une priorité d'ordre de recherche supérieure à celle où se trouve la véritable DLL

ou

B. Que la DLL en question n'existe nulle part sur le système, auquel cas elle peut être placée dans un dossier accessible en écriture par l'utilisateur dans la variable %PATH% de celui-ci (comme %USERPROFILE%\appdata\local\microsoft\windowsapps).

Ces exigences excluent le détournement de DLL pour les exécutables résidant dans C:\Windows\System32 car presque toutes les DLL que ces exécutables chargent résident également dans System32. Copier un exécutable de System32 vers un emplacement accessible en écriture par l'utilisateur et l'exécuter à partir de là est une option, mais ce n'est pas très sûr du point de vue OPSEC car les binaires de System32 exécutés depuis des emplacements alternatifs sont faciles à identifier.

DropSpawn permet le détournement de DLL à l'aide d'exécutables de System32 (et d'autres trouvés dans des dossiers supplémentaires non accessibles en écriture par l'utilisateur) en usurpant le « répertoire à partir duquel l'application est chargée » vers un répertoire arbitraire spécifié par l'utilisateur.

Remarque :

La version publique de DropSpawn diffère légèrement de la version non publique. La version non publique exploite un générateur de payload propriétaire, rendant l'expérience beaucoup plus fluide pour l'opérateur. La version publique a été légèrement modifiée pour tenir compte du fait que les utilisateurs disposeront de leurs propres méthodes pour générer des payloads compatibles avec le détournement de DLL. Un script Python3 ainsi que le code source d'une DLL de démonstration ont été inclus pour aider les utilisateurs à intégrer et à armer dropspawn.

Comment l'utiliser

1.

Identifiez certains exécutables cibles qui tentent de charger des DLL sans spécifier leurs chemins absolus. Vous pouvez le faire en copiant l'exe dans un répertoire accessible en écriture par l'utilisateur et en l'exécutant tout en le surveillant avec Procmon. Dans cet exemple, nous utiliserons WerFault.exe qui réside normalement dans C:\Windows\System32\WerFault.exe

image

Dans l'exemple ci-dessus, cryptsp.dll, wer.dll, dbghelp.dll et bcrypt.dll sont tous des candidats viables car leurs chemins absolus n'ont pas été spécifiés dans WerFault ; par conséquent, WerFault tentera de les charger depuis son répertoire d'application en premier avant de recourir au reste de l'ordre de recherche des DLL. Notez que cela ne pose généralement pas de problème car le répertoire d'application de WerFault EST System32.

2.

Téléchargez l'une des DLL détournables depuis le système cible.

image Ceci est nécessaire afin que nous puissions extraire ses exports et les inclure dans notre DLL de payload. Il est important de récupérer la DLL détournable depuis la même machine sur laquelle vous souhaitez utiliser DropSpawn, car les DLL changent entre les versions de Windows. De plus, si vous exécutez un beacon x86 et souhaitez lancer un beacon x64 à l'aide de DropSpawn, assurez-vous de télécharger la version x64 de la véritable DLL en spécifiant 'C:\windows\sysnative...' au lieu de 'C:\windows\system32...'.

3.

Exécutez generate_dll.py, en passant la DLL téléchargée et l'architecture de payload souhaitée. Generate_dll.py est une version modifiée de ce script. Il analysera la DLL fournie, créera un fichier .def contenant les exports de la DLL, et appellera MingW pour compiler notre DLL de payload de démonstration. Lorsque le processus lancé tente d'appeler une fonction réelle dans la DLL usurpée, notre DLL de payload transmettra l'appel à la véritable DLL située dans System32 afin que le processus hôte ne plante pas. image

4.

Appelez dropspawn en utilisant la DLL de payload générée.

dropspawn <payload DLL> <x86|x64> <programme à lancer> [dossier cible accessible en écriture] [parent]

payload DLL - le chemin complet vers la DLL de payload générée.
architecture - l'architecture du processus que vous souhaitez lancer
programme à lancer - le nom/chemin du processus que vous souhaitez lancer. Si ce processus réside dans System32 (ou syswow64), vous pouvez simplement spécifier le nom. Sinon, spécifiez le chemin complet. Vous pouvez également fournir des arguments de ligne de commande au processus. S'il y a des espaces dans le chemin/si vous utilisez des arguments, mettez le tout entre guillemets.
dossier cible accessible en écriture - Optionnel. Si laissé vide, dropspawn tentera d'utiliser le répertoire courant du Beacon. Utilisez des guillemets s'il y a des espaces dans le chemin.
parent - Optionnel. Le nom du processus à utiliser pour l'usurpation de PPID avec le processus nouvellement lancé. Si un processus est spécifié avec plusieurs instances en cours d'exécution à différents niveaux de privilèges (c'est-à-dire svchost.exe), dropspawn tentera d'en identifier une qui peut être utilisée pour l'usurpation de PPID.

Exemple : dropspawn /root/dbgcore.dll x64 "WerFault.exe -u -p 4352 -s 160" C:\users\user\appdata\local\temp explorer.exe

Cela déposera la DLL de payload 'dbgcore.dll' sur le disque à 'c:\users\user\appdata\local\temp\dbgcore.dll' et lancera un processus WerFault.exe x64 avec les arguments de ligne de commande '-u -p 4352 -s 160' et explorer.exe comme processus parent.

image

image

Télécharger l’outil