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
ImpulsiveDLLHijack — Outil basé sur C# qui automatise le processus de découverte et d'exploitation des DLL Hijacks dans les binaires cibles. Les chemins détournés découverts peuvent ensuite être utilisés lors des opérations Red Team pour contourner les EDR. | Kitploit
Outils/GitHubGitHub/knight0x07/impulsivedllhijack
Escalade de PrivilègesMécanismes de PersistanceExploitationRed TeamingExploitation de Binaires
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

Outil basé sur C# qui automatise le processus de découverte et d'exploitation des DLL Hijacks dans les binaires cibles. Les chemins détournés découverts peuvent ensuite être utilisés lors des opérations Red Team pour contourner les EDR.

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
Voir le dépôt
554101il y a 4 ansVérifié par Kitploit

ImpulsiveDLLHijack

Outil basé sur C# qui automatise le processus de découverte et d'exploitation des détournements de DLL dans les binaires cibles. Les chemins détournés découverts peuvent ensuite être utilisés lors d'opérations RedTeam pour contourner les EDR.

1. Approche méthodologique :

L'outil automatise essentiellement les étapes suivantes pour le détournement de DLL :

  • Découverte - Recherche de chemins de détournement de DLL potentiellement vulnérables
  • Exploitation - Confirmation que la DLL de confirmation a bien été chargée depuis le chemin détourné, aboutissant à la confirmation d'un détournement de DLL 100% exploitable !

Méthodologie de découverte :

  • Fournir le chemin du binaire cible à ImpulsiveDLLHijack.exe
  • Automatisation de ProcMon avec exécution du binaire cible pour trouver les chemins de détournement de DLL potentiellement vulnérables.

Méthodologie d'exploitation :

  • Analyser les chemins de détournement de DLL potentiellement vulnérables à partir du CSV généré automatiquement par ProcMon.

  • Copier la DLL de confirmation (selon l'architecture du PE) dans les chemins de détournement un par un et exécuter simultanément le binaire cible pendant une durée prédéfinie.

  • Pendant le processus de détournement de DLL, les résultats suivants peuvent être collectés dans le scénario de détournement :

    • Si la DLL de confirmation présente sur le chemin potentiellement vulnérable est chargée par le binaire cible, nous obtenons sur la console la sortie suivante indiquant que le détournement a réussi - DLL Hijack Successful -> DLLName: | <Target_binary_name>
    • Si la DLL de confirmation présente sur le chemin potentiellement vulnérable n'est pas chargée par le binaire cible, nous obtenons sur la console la sortie suivante indiquant que le détournement a échoué - DLL Hijack Unsuccessful -> <DLL_Path>

    Scénarios « Point d'entrée introuvable » :

    • Lorsque la DLL de confirmation présente sur le chemin potentiellement vulnérable n'est pas chargée par le binaire cible car le point d'entrée de la DLL est différent de notre point d'entrée par défaut « DllMain », générant une erreur « Entry Point Not Found », nous obtenons sur la console la sortie suivante indiquant que le détournement aurait été possible si le point d'entrée était correct -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
    • Lorsque la DLL de confirmation présente sur le chemin potentiellement vulnérable est exécutée par le binaire cible même après que le point d'entrée de la DLL est différent de notre point d'entrée par défaut « DllMain », générant une erreur « Entry Point Not Found », nous obtenons sur la console la sortie suivante indiquant que le détournement a réussi même si le point d'entrée n'était pas correct -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

Remarque : L'erreur « Point d'entrée introuvable » est gérée automatiquement par le code, il n'est pas nécessaire de fermer manuellement la MsgBox :) # Sinon cela ferait planter la suite du code****

  • Une fois le processus de détournement de DLL terminé pour chaque chemin potentiellement vulnérable, nous obtenons le résultat final sur la console ainsi que dans un fichier texte (C:\DLLLogs\output_logs.txt) au format suivant :

    • <DLLHijack_path> --> DLL Hijack Successful (si le détournement a réussi)
    • <DLLHijack_path> --> DLL Hijack Unuccessful (si le détournement a échoué)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (si le point d'entrée n'a pas été trouvé mais pourrait réussir après analyse manuelle)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (si le détournement a réussi même si le point d'entrée n'a pas été trouvé)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (Accès refusé)

**Ces chemins de détournement de DLL confirmés peuvent ensuite être utilisés lors d'un engagement Red Team pour charger une DLL malveillante via un exécutable légitime (tel que OneDrive, Firefox, MSEdge, « Bring your own LOLBINs », etc.) et contourner les EDR les plus sophistiqués, car la plupart d'entre eux ne parviennent pas à détecter le détournement de DLL, comme l'ont évalué George Karantzas et Constantinos Patsakis dans leur article de recherche : https://arxiv.org/abs/2108.10422

2. Prérequis :

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • DLL de confirmation personnalisées :
    • Ce sont des fichiers DLL qui aident l'outil à confirmer si les DLL ont bien été chargées depuis le chemin de détournement identifié.
    • Compilées à partir du projet MalDLL fourni ci-dessus (ou utilisez les binaires précompilés si vous me faites confiance !)
    • Le nom de la DLL 32 bits doit être : maldll32.dll
    • Le nom de la DLL 64 bits doit être : maldll64.dll
    • Installer le package NuGet : ** PeNet** -> https://www.nuget.org/packages/PeNet/ (prérequis lors de la compilation du projet ImpulsiveDLLHijack)

Remarque : Les prérequis i et ii doivent être placés dans le répertoire même de ImpulsiveDLLHijack.exe.

  • Informations de construction et d'installation :

    • ImpulsiveDLLHijack

      • Cloner le dépôt dans Visual Studio
      • Une fois le projet chargé dans Visual Studio, allez dans « Projet » --> « Gérer les packages NuGet » --> Recherchez les packages et installez « PeNet » -> https://www.nuget.org/packages/PeNet/
      • Compilez le projet !
      • Le fichier ImpulsiveDLLHijack.exe se trouvera dans le répertoire bin.
    • Et pour les DLL de confirmation :

      • Cloner le dépôt dans Visual Studio
      • Compilez le projet en x86 et x64
      • Renommez la version x86 release en maldll32.dll et la version x64 release en maldll64.dll
    • Installation : Copiez les DLL de confirmation (maldll32 et maldll64) dans le répertoire de ImpulsiveDLLHijack.exe, puis exécutez ImpulsiveDLLHijack.exe :))

3. Utilisation :

usage

4. Exemples :

  • Exécutable cible : OneDrive.exe

  • Étape : Découverte

first

  • Étape : Exploitation

    • Détournements de DLL réussis :

    success_one

    • Détournements de DLL échoués :

    unsuccessful

    • La DLL n'est pas chargée car le point d'entrée n'est pas identique ! Une analyse manuelle pourrait transformer cela en un détournement de DLL réussi :)

    entrypoint_not_found

    • Détournement de DLL réussi même avec un point d'entrée non identique !

    entry_pointnot found - but dll is executed

  • Étape : Résultats finaux et journaux

    • C:\DLLLogs\output_logs.txt :

    output_logs

Merci, vos retours seront grandement appréciés ! - knight!

Télécharger l’outil