
Windows-Implant, das RDP-Anmeldeinformationen via API-Hooking (Detours) und DLL-Injection stiehlt, Benutzernamen und Passwörter in eine Datei für die Post-Exploitation im Red Team erfasst.
RDPCredentialStealer ist ein Implantat, das von Benutzern in RDP bereitgestellte Anmeldedaten mittels API-Hooking mit Detours in C++ stiehlt
Versuchen wir es:
Zuerst übertrage ich die DLL aus dem GitHub-Repository in den Pfad C:\Users\Public\Music:

Jetzt öffne ich eine RDP-Connector-Windows-Anwendung:

Und jetzt führe ich die EXE aus dem GitHub-Repository aus:

Und wenn ich versuche, auf einen RDP-Server zuzugreifen:

Ich gebe den Benutzer: s12User und das Passwort: passwdtest ein
Und jetzt überprüfe ich die Datei: C:\Users\Public\Music\RDPCreds.txt

RDPCredStealerDLL:
Dieser Code ist eine Implementierung einer Hooking-Technik in C++ unter Verwendung der Detours-Bibliothek. Er zielt speziell auf die Funktion CredUnPackAuthenticationBufferW aus der Bibliothek credui.dll ab, die für das Entpacken von Authentifizierungspuffern zuständig ist, die bei Anmeldevorgängen verwendet werden. Lassen Sie uns den Code Schritt für Schritt aufschlüsseln:
Die Funktion MyCredUnPackAuthenticationBufferW wird implementiert und dient als Hook für die ursprüngliche Funktion. Sie wird aufgerufen, wenn die gehookedte Funktion aufgerufen wird. Diese Funktion ruft zunächst die ursprüngliche Funktion unter Verwendung des gespeicherten Funktionszeigers pCredUnPackAuthenticationBufferW auf. Dann konvertiert sie den abgerufenen Benutzernamen und das Passwort von Wide-Zeichenfolgen (LPWSTR) in UTF-8-kodierte Zeichenfolgen (std::string).
Schließlich öffnet sie eine Datei im Anhängemodus und schreibt den Benutzernamen und das Passwort hinein.
Die Funktion DllMain dient als Einstiegspunkt für die Hooking-DLL. Sie wird aufgerufen, wenn die DLL geladen oder entladen wird. Wenn ul_reason_for_call DLL_PROCESS_ATTACH ist, was anzeigt, dass die DLL geladen wird, lädt sie die Bibliothek credui.dll mit LoadLibraryA. Dann erhält sie die Adresse der ursprünglichen Funktion CredUnPackAuthenticationBufferW mit GetProcAddress. Bei Erfolg startet sie den Hooking-Prozess durch Aufruf von DetourTransactionBegin, DetourUpdateThread und DetourAttach.
Wenn ul_reason_for_call DLL_PROCESS_DETACH ist, was anzeigt, dass die DLL entladen wird, kehrt sie den Hooking-Prozess durch Aufruf von DetourTransactionBegin, DetourUpdateThread und DetourDetach um.
Der Zweck dieses Codes besteht darin, die Funktion CredUnPackAuthenticationBufferW zu hooken und die an sie übergebenen Anmeldedaten abzufangen, sodass der Hooking-Code den Benutzernamen und das Passwort extrahieren und in einer Datei protokollieren kann. Diese Technik kann böswillig verwendet werden, um vertrauliche Informationen wie RDP-Anmeldedaten zu erfassen, was ein erhebliches Sicherheitsrisiko darstellt.
Inject.h
Dieser Code stellt Funktionen zum Injizieren einer DLL (Dynamic Link Library) in einen Zielprozess im Windows-Betriebssystem bereit. Lassen Sie uns den Code aufschlüsseln und seine Funktionsweise verstehen:
Bitte beachten Sie, dass DLL-Injektion eine Technik mit verschiedenen Anwendungen ist, darunter sowohl legitime Anwendungsfälle (wie Debugging und Erweiterung der Funktionalität) als auch böswillige Zwecke (wie das Injizieren von Malware oder das unbefugte Ändern des Verhaltens eines Prozesses). Seien Sie vorsichtig und stellen Sie sicher, dass Sie über die entsprechenden Genehmigungen und gesetzlichen Rechte verfügen, bevor Sie solche Techniken einsetzen.