Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
RustChain — Verstecke Speicherartefakte mithilfe von ROP und Hardware-Breakpoints. | Kitploit
Tools/GitHubGitHub/kudaes/rustchain
SpeicherforensikExploitationRed TeamingPayload-Entwicklung
GitHubkudaes/rustchain

RustChain

Verstecke Speicherartefakte mithilfe von ROP und Hardware-Breakpoints.

Repository anzeigen
15120vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Beschreibung

Dieses Tool ist ein einfacher PoC, wie man Speicherartefakte mit einer ROP-Kette in Kombination mit Hardware-Breakpoints verstecken kann. Die ROP-Kette ändert die Speicherseitenschutz des Hauptmoduls auf N/A (nicht zugänglich) während des Schlafens (d.h. wenn die Funktion Sleep aufgerufen wird). Für detailliertere Informationen über diese Technik zur Umgehung von Speicherscans siehe das ursprüngliche Projekt Gargoyle. Nur x64.

Die Idee ist, einen Hardware-Breakpoint in kernel32!Sleep und einen neuen Top-Level-Filter zur Behandlung der Ausnahme einzurichten. Wenn Sleep aufgerufen wird, wird die zuvor gesetzte Ausnahmefilterfunktion ausgelöst, sodass wir die ROP-Kette aufrufen können, ohne klassische Funktions-Hooks verwenden zu müssen. Auf diese Weise vermeiden wir, seltsame und ungewöhnliche private Speicherbereiche im Prozess zu hinterlassen, die mit bekannten DLLs in Verbindung stehen.

Die ROP-Kette ruft einfach VirtualProtect() auf, um die aktuelle Speicherseite auf N/A zu setzen, ruft dann SleepEx auf und stellt schließlich den RX-Speicherschutz wieder her.

Der Überblick über den Prozess ist wie folgt:

  • Wir verwenden SetUnhandledExceptionFilter, um eine neue Ausnahmefilterfunktion zu setzen.
  • SetThreadContext wird verwendet, um einen Hardware-Breakpoint auf kernel32!Sleep zu setzen.
  • Wir rufen Sleep auf, was den Hardware-Breakpoint auslöst und den Ausführungsfluss zu unserer Ausnahmefilterfunktion lenkt.
  • Die ROP-Kette wird von der Ausnahmefilterfunktion aufgerufen, sodass der Schutz der aktuellen Speicherseite auf N/A geändert werden kann. Dann wird SleepEx aufgerufen. Schließlich stellt die ROP-Kette den RX-Speicherschutz wieder her und die normale Ausführung wird fortgesetzt.

Dieser Prozess wiederholt sich unbegrenzt.

Wie im Bild zu sehen, wird der Speicherschutz des Hauptmoduls während des Schlafens auf N/A geändert, was Speicherscans vermeidet, die nach Seiten mit Ausführungsberechtigung suchen.

N/A-Speicherschutz wird während des Schlafens gesetzt

Kompilierung

Da wir das LITCRYPT Plugin verwenden, um String-Literale zu verschleiern, ist es erforderlich, die Umgebungsvariable LITCRYPT_ENCRYPT_KEY vor der Kompilierung des Codes zu setzen:

root@kitploit:~
C:\Users\User\Desktop\RustChain> set LITCRYPT_ENCRYPT_KEY="yoursupersecretkey"

Danach einfach den Code kompilieren und das Tool ausführen:

root@kitploit:~
C:\Users\User\Desktop\RustChain> cargo build
C:\Users\User\Desktop\RustChain\target\debug> rustchain.exe

Einschränkungen

Dieses Tool ist nur ein PoC und einige zusätzliche Funktionen sollten implementiert werden, um voll funktionsfähig zu sein. Der Hauptzweck des Projekts war es zu lernen, wie man eine ROP-Kette implementiert und in Rust integriert. Aus diesem Grund funktioniert dieses Tool nur, wenn Sie es so verwenden, wie es ist, und es werden Fehler erwartet, wenn Sie versuchen, es auf andere Weise zu verwenden (z.B. durch Kompilieren zu einer DLL und versuchen, sie reflektiv zu laden und auszuführen).

Danksagungen

  • @thefLinkk für sein DeepSleep Projekt, das mich dazu inspiriert hat, dieses Tool zu erstellen.
Tool herunterladen