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
DLLHSC — Scanner automatisé pour découvrir les candidats au détournement d'ordre de recherche de DLL dans les exécutables Windows, doté d'une analyse de la table d'importation, d'une énumération des modules en cours d'exécution et d'un hooking d'API via Microsoft Detours. | Kitploit
Outils/GitHubGitHub/ctxis/dllhsc
ExploitationTests d'IntrusionAnalyse de BinairesDéveloppement de Charges Utiles
GitHubctxis/dllhsc

DLLHSC

Scanner automatisé pour découvrir les candidats au détournement d'ordre de recherche de DLL dans les exécutables Windows, doté d'une analyse de la table d'importation, d'une énumération des modules en cours d'exécution et d'un hooking d'API via Microsoft Detours.

Voir le dépôt
15836il y a 6 ansVé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 →
Partager

DLLHSC

DLL Hijack SCanner - Un outil pour générer des pistes et automatiser la découverte de candidats pour le détournement de l'ordre de recherche de DLL

Index de cette page

  • Contenu de ce dépôt
  • Modes de fonctionnement
  • Instructions de compilation et d'exécution
  • Menu d'aide
  • Exemples d'exécution
  • Retour d'information

Contenu de ce dépôt

Ce dépôt héberge le fichier projet Visual Studio pour l'outil (DLLHSC), le fichier projet pour la fonctionnalité de hooking d'API (detour), le fichier projet pour la charge utile et enfin les exécutables compilés pour les architectures x86 et x64 (dans la section release de ce dépôt). Le code a été écrit et compilé avec Visual Studio Community 2019.

Si vous choisissez de compiler l'outil à partir des sources, vous devrez compiler les projets DLLHSC, detour et payload. DLLHSC implémente la fonctionnalité principale de cet outil. Le projet detour génère une DLL utilisée pour hooker les API. Et le projet payload génère la DLL utilisée comme preuve de concept pour vérifier si l'exécutable testé peut la charger via le détournement de l'ordre de recherche. La charge utile générée doit être placée dans le même répertoire que DLLHSC et detour, nommée payload32.dll pour l'architecture x86 et payload64.dll pour l'architecture x64.

Modes de fonctionnement

L'outil implémente 3 modes de fonctionnement expliqués ci-dessous.

Mode léger

Charge l'image exécutable en mémoire, analyse la table d'importation puis remplace toute DLL référencée dans la table d'importation par une DLL de charge utile.

L'outil place dans le répertoire de l'application uniquement un module (DLL) qui n'est pas présent dans le répertoire de l'application, n'appartient pas à WinSxS et n'appartient pas aux KnownDLLs.

La DLL de charge utile, lors de son exécution, crée un fichier dans le chemin suivant : C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSC.tmp comme preuve d'exécution. L'outil lance l'application et signale si la DLL de charge utile a été exécutée en vérifiant si le fichier temporaire existe. Comme certains exécutables importent des fonctions depuis les DLL qu'ils chargent, des boîtes de message d'erreur peuvent apparaître lorsque la DLL fournie ne parvient pas à exporter ces fonctions et ne satisfait donc pas les dépendances de l'image fournie. Cependant, les boîtes de message indiquent que la DLL pourrait être un bon candidat pour l'exécution de la charge utile si les dépendances sont satisfaites. Dans ce cas, une analyse supplémentaire est nécessaire. Le titre de ces boîtes de message peut contenir les chaînes : Ordinal Not Found ou Entry Point Not Found. DLLHSC recherche les fenêtres contenant ces chaînes, les ferme dès qu'elles apparaissent et signale les résultats.

Mode Liste des modules

Crée un processus avec l'image exécutable fournie, énumère les modules chargés dans l'espace d'adressage de ce processus et signale les résultats après application de filtres.

L'outil signale uniquement les modules chargés depuis le répertoire System et qui n'appartiennent pas aux KnownDLLs. Les résultats sont des pistes nécessitant une analyse supplémentaire. L'analyste peut alors placer les modules signalés dans le répertoire de l'application et vérifier si l'application charge le module fourni à la place.

Mode temps d'exécution

Hooke les API LoadLibrary et LoadLibraryEx via Microsoft Detours et signale les modules chargés au moment de l'exécution.

Chaque fois que l'application scannée appelle LoadLibrary et LoadLibraryEx, l'outil intercepte l'appel et écrit le module demandé dans le fichier C:\Users\%USERNAME%\AppData\Local\Temp\DLLHSCRTLOG.tmp. Si LoadLibraryEx est spécifiquement appelée avec le drapeau LOAD_LIBRARY_SEARCH_SYSTEM32, aucune sortie n'est écrite dans le fichier. Après que toutes les interceptions sont terminées, l'outil lit le fichier et affiche les résultats. Les modules intéressants pour une analyse plus approfondie sont ceux qui n'existent pas dans la clé de registre KnownDLLs, les modules qui n'existent pas dans le répertoire System et les modules sans chemin complet (pour ces modules, le chargeur applique l'ordre de recherche normal).

Instructions de compilation et d'exécution

Si vous choisissez de compiler l'outil à partir des sources, il est recommandé de le faire avec Visual Studio 2019. Pour que l'outil fonctionne correctement, les projets DLLHSC, detour et payload doivent être compilés pour la même architecture puis placés dans le même répertoire. Veuillez noter que la DLL générée par le projet payload doit être renommée en payload32.dll pour l'architecture 32 bits ou payload64.dll pour l'architecture 64 bits.

Menu d'aide

Le menu d'aide pour cette application

root@kitploit:~
NAME
        dllhsc - DLL Hijack SCanner

SYNOPSIS
        dllhsc.exe -h

        dllhsc.exe -e <chemin de l'image exécutable> (-l|-lm|-rt) [-t secondes]

DESCRIPTION
        DLLHSC scanne une image exécutable donnée pour détecter du détournement de DLL et signale les résultats

        Il nécessite des privilèges élevés

OPTIONS
        -h, --help
                afficher ce menu d'aide et quitter

        -e, --executable-image
                image exécutable à scanner

        -l, --lightweight
                analyser la table d'importation, tenter de lancer une charge utile et signaler les résultats

        -lm, --list-modules
                lister les modules chargés qui n'existent pas dans le répertoire de l'application

        -rt, --runtime-load
                afficher les modules chargés au moment de l'exécution en hookant les API LoadLibrary et LoadLibraryEx

        -t, --timeout
                nombre de secondes à attendre pour vérifier les éventuelles fenêtres d'erreur popup - par défaut 10 secondes

Exemples d'exécution

Cette section fournit des exemples sur la façon d'exécuter DLLHSC et les résultats qu'il rapporte. Pour cela, l'utilitaire légitime Microsoft OleView.exe (MD5: D1E6767900C85535F300E08D76AAC9AB) a été utilisé. Pour de meilleurs résultats, il est recommandé de scanner l'image exécutable fournie dans son répertoire d'installation.

Le drapeau -l analyse la table d'importation de l'exécutable fourni, applique des filtres et tente d'armer les modules importés en plaçant une DLL de charge utile dans le répertoire courant de l'application. L'exécutable scanné peut afficher une boîte d'erreur lorsque les dépendances pour la DLL de charge utile (fonctions exportées) ne sont pas satisfaites. Dans ce cas, une boîte de message d'erreur apparaît. DLLHSC vérifie par défaut pendant 10 secondes si une boîte de message a été ouverte, ou pendant autant de secondes que spécifié par l'utilisateur avec le drapeau -t. Une boîte de message d'erreur indique que si les dépendances sont satisfaites, le module peut être armé.

La capture d'écran suivante montre la boîte de message d'erreur générée lorsque OleView.dll charge la DLL de charge utile :

dependency

L'outil attend un délai maximum de 10 secondes ou -t secondes pour s'assurer que l'initialisation du processus est terminée et que toute boîte de message a été générée. Il détecte ensuite la boîte de message, la ferme et signale le résultat :

imported_modules

Le drapeau -lm lance l'exécutable fourni et affiche les modules qu'il charge qui n'appartiennent ni à la liste KnownDLLs ni aux dépendances WinSxS. Ce mode vise à donner une idée des DLL pouvant être utilisées comme charge utile et existe uniquement pour générer des pistes pour l'analyste.

loaded_modules

Le drapeau -rt affiche les modules que l'image exécutable fournie charge dans son espace d'adressage lorsqu'elle est lancée en tant que processus. Ceci est réalisé en hookant les API LoadLibrary et LoadLibraryEx via Microsoft Detours.

runtime_loaded_modules

Retour d'information

Pour tout retour d'information sur cet outil, veuillez utiliser la section GitHub Issues.

Télécharger l’outil