Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
LdrLockLiberator — Pour les cas où DLLMain est la seule option | Kitploit
Outils/GitHubGitHub/elliotkillick/ldrlockliberator
Mécanismes de PersistanceExploitationPost-ExploitationRed TeamingDéveloppement de Charges Utiles
GitHubelliotkillick/ldrlockliberator

LdrLockLiberator

Pour les cas où DLLMain est la seule option

Voir le dépôt
435711il y a 1 anVérifié par Kitploit

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 →
Site web
Partager
Logo

LdrLockLiberator

Pour quand DLLMain est le seul moyen

LdrLockLiberator est un ensemble de techniques permettant d'échapper au verrou du chargeur (Loader Lock) ou de s'en passer tout en exécutant votre code depuis DllMain ou tout autre endroit où le verrou peut être présent. Il a été publié en même temps que l'article « Perfect DLL Hijacking ». Nous vous donnons la clé pour déverrouiller le chargeur de bibliothèques et faire ce que vous voulez avec votre chargeur (sur votre propre ordinateur) !

Les techniques se veulent universelles, propres et 100 % sûres dans la mesure du possible. Elles sont conçues pour fonctionner sans modifier la protection mémoire ni les pointeurs. C'est important pour rester compatible avec les mitigations d'exploitation modernes. La seule architecture officiellement prise en charge est x86-64 (le 32 bits a largement disparu).

Vous voulez connaître les raisons architecturales pour lesquelles DllMain est si problématique sur Windows alors que les systèmes d'exploitation de type Unix ne rencontrent pas cette difficulté ? Je vous en prie !

Techniques

LdrFullUnlock

C'est exactement ce que cela semble être. Déverrouillez le verrou du chargeur, définissez les événements du chargeur et basculez LdrpWorkInProgress. Il est recommandé de laisser RUN_PAYLOAD_DIRECTLY_FROM_DLLMAIN non défini pour une stabilité optimale.

N'UTILISEZ PAS CETTE TECHNIQUE DANS DU CODE DE PRODUCTION. Elle a été créée comme sous-produit de ma pure curiosité et de ma volonté de ne laisser aucune pierre non retournée. Tout ce que vous faites avec ce code est de votre responsabilité.

S'échapper à la sortie

Nous utilisons, dans notre code DLL, le atexit de la CRT, typiquement utilisé par les EXE, pour échapper au verrou du chargeur à la sortie du programme. Pour les chargements dynamiques (via LoadLibrary), c'est rendu 100 % sûr en épinglant (LDR_ADDREF_DLL_PIN) notre bibliothèque avec LdrAddRefDll afin qu'un FreeLibrary ultérieur ne retire pas notre DLL de la mémoire.

Utiliser les verrous à notre avantage

Bientôt disponible !

Exemples

Les exemples fournis détournent MpClient.dll de C:\Program Files\Windows Defender\Offline\OfflineScannerShell.exe. Des instructions sont fournies dans les commentaires du code source pour adapter facilement cela à toute autre paire DLL/programme (principalement en mettant à jour les exports pour les chargements statiques) !

À titre de preuve de concept, nous exécutons ShellExecute comme charge utile par défaut. Cependant, vous pouvez faire faire à cela tout ce que vous voulez !

Compilation

Visual Studio

Le fichier LdrLockLiberator.c à la racine de ce projet a été testé et compile sur Visual Studio 2022.

Pour lier NTDLL, sélectionnez le projet Visual Studio actuel dans la fenêtre Explorateur de solutions, puis naviguez vers Projet > Propriétés dans la barre de menus. Dans les menus déroulants Configuration en haut, sélectionnez Toutes les configurations et Toutes les plateformes. Ensuite, allez dans Éditeur de liens > Entrée puis ajoutez à Dépendances supplémentaires : ntdll.lib.

WDK

Installation du bon WDK

  1. Allez sur la page de téléchargement du WDK
  2. Cliquez sur le lien Windows 7 WDK 7.1.0 pour commencer à télécharger la bonne version du WDK
  • C'est le dernier WDK public qui prend officiellement en charge la liaison à la MSVCRT d'origine (C:\Windows\System32\msvcrt.dll)
  • Somme de contrôle SHA-256 : 5edc723b50ea28a070cad361dd0927df402b7a861a036bbcf11d27ebba77657d
  1. Montez l'ISO téléchargée puis exécutez KitSetup.exe
  2. Suivez le processus d'installation en utilisant les options par défaut

Compilation

  1. Dans le menu Démarrer, recherchez « x64 Free Build Environment » puis ouvrez-le
  2. Naviguez (avec cd) vers LdrLockLiberatorWDK dans ce dépôt
  3. Exécutez build

Terminé ! Votre DLL est compilée et prête à l'emploi !

Comme alternative au WDK, la compilation avec MinGW fonctionnerait probablement aussi.

Licence

Licence MIT - Copyright (C) 2023-2024 Elliot Killick [email protected]

Télécharger l’outil