Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
illusion-rs — Rusty Hypervisor - Hypervisor di tipo 1 "Blue Pill" per UEFI Windows in Rust (Nome in codice: Illusion) | Kitploit
Strumenti/GitHubGitHub/memn0ps/illusion-rs
Strumenti DifensiviMemory ForensicsMeccanismi di PersistenzaReverse EngineeringVirtualizzazione per la SicurezzaAnalisi MalwareSicurezza HardwareAnalisi di BinariPaper e RicercaRed TeamingArchived
413604 mesi 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 →
GitHub
memn0ps/illusion-rs

illusion-rs

Rusty Hypervisor - Hypervisor di tipo 1 "Blue Pill" per UEFI Windows in Rust (Nome in codice: Illusion)

Vedi RepositorySito web
Condividi

Windows UEFI Blue Pill Type-1 Hypervisor in Rust (Nome in codice: Illusion)

License Issues Forks Stars

Blog: https://memn0ps.github.io/hypervisors-for-memory-introspection-and-reverse-engineering/

Un hypervisor di ricerca di tipo 1 basato su Rust, leggero, memory-safe e estremamente veloce, con hook per Intel VT-x, incentrato sullo studio dei concetti fondamentali della virtualizzazione.

Nota: L'hypervisor Illusion (Windows UEFI Blue Pill Type-1 Hypervisor in Rust) è più stabile, supporta più funzionalità ed è nel complesso progettato meglio. L'hypervisor Matrix (Windows Kernel Blue Pill Type-2 Hypervisor in Rust) è una versione sperimentale più vecchia e non è destinato all'uso in produzione. Entrambi i progetti servono come modelli per aiutare le persone a iniziare con lo sviluppo di hypervisor in Rust.

Descrizione

Paging: Traduzione degli indirizzi virtuali x64 in indirizzi fisici

Questo diagramma illustra il meccanismo di traduzione degli indirizzi virtuali x64 in indirizzi fisici nei sistemi di paging tradizionali. Nell'architettura x64, questa traduzione coinvolge quattro livelli di tabelle delle pagine: PML4, PDPT, PDT e PT (Page Map Level 4, Page Directory Pointer Table, Page Directory Table e Page Table). Ogni livello utilizza 9 bit dell'indirizzo virtuale per indicizzare il livello successivo, puntando infine a un indirizzo fisico specifico nella RAM. Questo processo è gestito dal sistema operativo e dalla Memory Management Unit (MMU), che traduce gli indirizzi virtuali usati dal software in indirizzi fisici usati dall'hardware.

x64 Virtual Address Translation
Figura 1: x64 Virtual Address Translation (Crediti completi: Guided Hacking)

Extended Page Tables (EPT): Second Level Address Translation (SLAT)

Le Extended Page Tables (EPT) sono una funzionalità delle tecnologie di virtualizzazione assistita dall'hardware come Intel VT-x e le Nested Page Tables (NPT) di AMD-V. Le EPT implementano la Second Level Address Translation (SLAT), progettata specificamente per ambienti virtualizzati. Mentre il paging tradizionale traduce gli indirizzi virtuali in indirizzi fisici all'interno del sistema operativo guest, le EPT aggiungono un ulteriore livello traducendo gli indirizzi fisici guest (usati dal sistema operativo guest) in indirizzi fisici host (usati dall'hypervisor). Questo secondo livello di traduzione è gestito dall'hypervisor, consentendo ai sistemi operativi guest di gestire le proprie tabelle delle pagine in modo indipendente. SLAT migliora le prestazioni riducendo al minimo la necessità di VM exit durante le operazioni di memoria, il che riduce l'overhead e aumenta l'efficienza della virtualizzazione.

Il diagramma sottostante mostra come implementare hook EPT nascosti nel Windows UEFI Blue Pill Type-1 Hypervisor (Nome in codice: Illusion) scritto in Rust.

EPT Hooks
Figura 2: Extended Page Tables (EPT) Hooks (Illusion)

Funzionalità

Funzionalità compatibili con PatchGuard

  • ✅ Hook nascosti delle System Call (Syscall) tramite System Service Descriptor Table (SSDT).
  • ✅ Hook inline nascosti nel kernel.
  • ✅ Hook nascosti dei Model Specific Registers (MSR).

Funzionalità specifiche del processore

  • ✅ Extended Page Tables (EPT).
  • ✅ Memory Type Range Registers (MTRRs).
  • ❌ Intel Processor Trace (PT).

Funzionalità compatibili con Microsoft Hyper-V

  • ❌ Supporto per l'esecuzione come hypervisor annidato sotto Microsoft Hyper-V (Type-2) con Virtualization Based Security (VBS) abilitata.
  • ❌ Supporto per l'esecuzione come hypervisor primario sopra Microsoft Hyper-V (Type-1) con Virtualization Based Security (VBS) abilitata.

Gestione dei VM Exit

  • ✅ Gestione dei VM Exit: ExceptionOrNmi (#GP, #PF, #BP, #UD) (0), InitSignal (3), StartupIpi (4), Cpuid (10), Getsec (11), Hlt (12), Invd (13), Vmcall (18), Vmclear (19), Vmlaunch (20), Vmptrld (21), Vmptrst (22), Vmresume (24), Vmxon (27), Vmxoff (26), ControlRegisterAccesses (28), Rdmsr (31), Wrmsr (32), MonitorTrapFlag (37), Rdtsc (49), EptViolation (48), EptMisconfiguration (50), Invept (53), Invvpid (55), Xsetbv (55).

Rilevamento dell'hypervisor

  • ✅ Nascondere la memoria dell'hypervisor dal guest usando le EPT (reindirizzare la memoria guest che punta alla memoria host verso una pagina fittizia riempita con 0xFF).
  • ✅ Bypass del rilevamento dell'hypervisor basato su Page Table personalizzate (fornisce isolamento e sicurezza dal guest, incluso il CR3 trashing).
  • ✅ Bypass del rilevamento dell'hypervisor basato su GDT e IDT personalizzate (garantisce isolamento e sicurezza dal guest).
  • ✅ Bypass del rilevamento dell'hypervisor basato su CPUID (disattiva HypervisorPresent e rimuove la firma del vendor ID per Feature Information e Hypervisor Vendor).
  • ✅ Bypass del rilevamento dell'hypervisor basato su MSR (inietta #GP per vmexit MSR di Hyper-V non validi, non supportati e riservati).
  • ✅ Bypass del rilevamento dell'hypervisor basato su CR (shadow di CR0 e CR4 per nascondere i bit specifici dell'hypervisor).
  • ✅ Bypass del rilevamento dell'hypervisor basato su XSETBV (inietta #GP per vmexit XSETBV non validi o non supportati).
  • ✅ Bypass del rilevamento dell'hypervisor basato su VMCALL (inietta #GP per vmexit VMCALL non validi o non supportati).
  • ✅ Bypass del rilevamento dell'hypervisor basato su ExceptionOrNMI (inietta #GP, #PF, #BP, #UD per specifici vmexit di eccezione).
  • ✅ vmexit incondizionati (inietta #UD per vmexit incondizionati, ma per Vmxon, inietta #UD se non contiene VMXE; altrimenti, inietta #GP se contiene VMXE).
  • ❌ Bypass del rilevamento dell'hypervisor basato su EPT (write check, timing check e thread check).
  • ❌ Bypass del rilevamento dell'hypervisor basato su RDTSC.
  • ✅ Rimuovere la memoria dell'hypervisor dalla mappa/tabella di memoria UEFI (identifica le regioni di memoria occupate dall'hypervisor e modifica la mappa di memoria UEFI per contrassegnare tali regioni come UNUSABLE).

Isolamento e sicurezza

  • ✅ Implementazioni personalizzate della Global Descriptor Table (GDT), della Interrupt Descriptor Table (IDT) e delle Page Tables per migliorare la sicurezza e l'isolamento dell'hypervisor.

Hardware supportato

  • ✅ Processori Intel con supporto VT-x ed Extended Page Tables (EPT).
  • ❌ Processori AMD con supporto AMD-V (SVM) e Nested Page Tables (NPT).

Piattaforme supportate

  • ✅ Windows 10 - Windows 11, solo x64.

Installazione

  • Installa Rust da qui.
  • Installa cargo-make: cargo install cargo-make.

Compilazione del progetto

  • Debug: cargo make build-debug.
  • Release: cargo make build-release.

Esecuzione del progetto

Scarica lo strumento