Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Outils open source — Gratuits, portables, hors ligne
Caractéristiques communes
100 % hors ligne — aucune donnée transmise
Portables — un seul fichier exécutable
Gratuits — MIT ou GPL v3
Code source ouvert sur GitHub
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Academy Contact

DLL Hijacking

hacking

Définition

Le DLL Hijacking (détournement de DLL) exploite le mécanisme de chargement des bibliothèques dynamiques de Windows pour faire charger une DLL malveillante à la place d'une DLL légitime. Windows suit un ordre de recherche prédéfini pour localiser les DLLs lors du chargement d'une application, et si un attaquant peut placer une DLL malveillante dans un répertoire prioritaire dans cet ordre, l'application chargera involontairement le code malveillant. L'ordre de recherche des DLLs sur Windows (en l'absence de SAFE_DLL_SEARCH_MODE ou de manifeste d'application) est : répertoire de l'application, répertoire système Windows (System32), répertoire système Windows 16-bit, répertoire Windows, puis les répertoires listés dans la variable PATH. Si une DLL requise n'est pas trouvée dans ces emplacements dans cet ordre, un attaquant ayant accès à un répertoire en écriture plus prioritaire peut y placer une DLL malveillante du même nom. Les scénarios d'exploitation incluent : le DLL planting dans le répertoire courant de l'application (si l'application est exécutée depuis un répertoire accessible en écriture), le PATH injection (si un répertoire accessible en écriture est en première position dans le PATH), le DLL side-loading (exploitation de manifestes d'application mal configurés pointant vers un chemin relatif), et le DLL redirection via les fichiers .local ou les manifestes d'activation de contexte. Des cas notables de DLL Hijacking pour l'élévation de privilèges incluent des applications installées dans des répertoires accessibles en écriture aux utilisateurs standard, des services Windows qui chargent des DLLs depuis des chemins PATH non sécurisés, et des applications qui spécifient des chemins relatifs pour leurs DLLs. Des outils comme PowerSploit/Find-PathDLLHijack ou Robber automatisent la détection des opportunités de DLL Hijacking. Pour la persistance, le DLL Hijacking offre un mécanisme fiable : si l'application vulnérable est un service ou une application qui démarre au démarrage du système, la DLL malveillante sera chargée à chaque redémarrage avec les privilèges du service.

Fonctionnement

L'attaque nécessite d'abord d'identifier une application qui tente de charger une DLL inexistante ou accessible via un chemin modifiable. Process Monitor de Sysinternals (filtre sur 'NAME NOT FOUND' et 'PATH NOT FOUND' pour les opérations CreateFile) révèle ces opportunités. La DLL malveillante doit exporter les fonctions attendues par l'application (DLL forwarding) tout en exécutant le payload dans sa fonction DllMain.

Exploitation offensive

Si une application privilégiée (service SYSTEM, application élevée) tente de charger une DLL depuis un répertoire accessible en écriture par l'utilisateur courant, placer une DLL malveillante dans ce répertoire permet une élévation de privilèges. Cette technique est souvent utilisée pour contourner UAC ou pour la persistance sur des systèmes où d'autres méthodes sont bloquées.

Détection et mitigation

La protection passe par : installation d'applications dans des répertoires sécurisés (C:\Program Files), utilisation de chemins absolus pour le chargement des DLLs, activation de SAFE_DLL_SEARCH_MODE, signature et vérification des DLLs chargées. Les EDR détectent le chargement de DLLs depuis des emplacements inhabituels et les DLLs avec des signatures invalides dans des chemins de service.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis