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
RustChain — Nascondi artefatti di memoria utilizzando ROP e punti di interruzione hardware. | Kitploit
Strumenti/GitHubGitHub/kudaes/rustchain
Memory ForensicsExploitRed TeamingSviluppo Payload
GitHubkudaes/rustchain

RustChain

Nascondi artefatti di memoria utilizzando ROP e punti di interruzione hardware.

Vedi Repository
151202 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 →
Condividi

Descrizione

Questo strumento è un semplice PoC su come nascondere artefatti di memoria utilizzando una catena ROP in combinazione con breakpoint hardware. La catena ROP cambierà le protezioni della pagina di memoria del modulo principale in N/A durante il sonno (cioè quando viene chiamata la funzione Sleep). Per informazioni più dettagliate su questa tecnica di evasione della scansione della memoria, consulta il progetto originale Gargoyle. Solo x64.

L'idea è di impostare un breakpoint hardware in kernel32!Sleep e un nuovo filtro di livello superiore per gestire l'eccezione. Quando Sleep viene chiamata, la funzione del filtro eccezioni impostata in precedenza viene attivata, permettendoci di chiamare la catena ROP senza la necessità di utilizzare hook di funzioni classici. In questo modo, evitiamo di lasciare regioni di memoria privata strane e inusuali nel processo correlate a dll ben note.

La catena ROP chiama semplicemente VirtualProtect() per impostare la pagina di memoria corrente a N/A, poi chiama SleepEx e infine ripristina la protezione della memoria RX.

La panoramica del processo è la seguente:

  • Usiamo SetUnhandledExceptionFilter per impostare una nuova funzione di filtro eccezioni.
  • SetThreadContext viene utilizzato per impostare un breakpoint hardware su kernel32!Sleep.
  • Chiamiamo Sleep, attivando il breakpoint hardware e portando il flusso di esecuzione verso la nostra funzione di filtro eccezioni.
  • La catena ROP viene chiamata dalla funzione di filtro eccezioni, consentendo di cambiare la protezione della pagina di memoria corrente a N/A. Quindi viene chiamata SleepEx. Infine, la catena ROP ripristina la protezione della memoria RX e l'esecuzione normale continua.

Questo processo si ripete indefinitamente.

Come si può vedere nell'immagine, la protezione della memoria del modulo principale viene cambiata in N/A durante il sonno, evitando scansioni di memoria che cercano pagine con permesso di esecuzione.

La protezione della memoria N/A è impostata durante il sonno

Compilazione

Poiché utilizziamo il plugin LITCRYPT per offuscare i letterali stringa, è necessario impostare la variabile d'ambiente LITCRYPT_ENCRYPT_KEY prima di compilare il codice:

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

Successivamente, basta compilare il codice ed eseguire lo strumento:

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

Limitazioni

Questo strumento è solo un PoC e alcune funzionalità extra dovrebbero essere implementate per essere pienamente funzionale. Lo scopo principale del progetto era imparare come implementare una catena ROP e integrarla all'interno di Rust. Per questo motivo, questo strumento funzionerà solo se lo usi così com'è, e ci si aspetta errori se provi a usarlo in altri modi (ad esempio, compilandolo in una dll e cercando di caricarlo ed eseguirlo in modo riflessivo).

Crediti

  • @thefLinkk per il suo progetto DeepSleep che mi ha ispirato a creare questo strumento.
Scarica lo strumento