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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
matrix-rs — Rusty Hypervisor - Hypervisor Blue Pill di Tipo 2 per il kernel Windows, scritto in Rust (Nome in codice: Matrix) | Kitploit
Strumenti/GitHubGitHub/memn0ps/matrix-rs
Memory ForensicsAnalisi Dinamica del Codice (DAST)Evasione IDS/IPSReverse EngineeringVirtualizzazione per la SicurezzaApprendimento e FormazioneArchived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor - Hypervisor Blue Pill di Tipo 2 per il kernel Windows, scritto in Rust (Nome in codice: Matrix)

Vedi Repository
35642204 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 →
Condividi
Sito web

Hypervisor Windows Kernel Blue Pill Type-2 in Rust (Nome in codice: Matrix)

License Issues Forks Stars

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

Un hypervisor di ricerca di tipo 2 basato su Rust, leggero, memory-safe ed estremamente veloce, con hook per Intel VT-x, focalizzato 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 è complessivamente meglio progettato. L'hypervisor Matrix (Windows Kernel Blue Pill Type-2 Hypervisor in Rust) è una versione più vecchia e sperimentale e non è pensato per l'uso in produzione. Entrambi i progetti servono come modelli per aiutare le persone a iniziare con lo sviluppo di hypervisor in Rust.

EPT Hooks Figura 0: Hook delle Extended Page Tables (EPT) (Matrix)

Caratteristiche

  • ✅ Extended Page Tables (EPT): Supporto per i Memory Type Range Registers (MTRR).
  • ✅ Gestione delle VM Exit: Gestione di ExceptionOrNmi (#GP, #PF, #BP, #UD), Cpuid, Getsec, Vmcall, Vmclear, Vmlaunch, Vmptrld, Vmptrst, Vmresume, Vmxon, Vmxoff Rdmsr, Wrmsr, Invd, Rdtsc, EptViolation, EptMisconfiguration, Invept, Invvpid, Xsetbv.
  • ✅ Hook Inline del Kernel Nascosti: hook breakpoint (int3) compatibili con PatchGuard.
  • ✅ Hook di System Call (Syscall) Nascosti: hook compatibili con PatchGuard per le voci di funzione della System Service Descriptor Table (SSDT).
  • ✅ Isolamento e Sicurezza: implementazioni personalizzate della Global Descriptor Table (GDT), dell'Interrupt Descriptor Table (IDT) e delle Page Tables per migliorare la sicurezza e l'isolamento dell'hypervisor. Crediti a @namazso per aver sensibilizzato sull'argomento.

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

  1. Installa Rust da qui.
  2. Passa a Rust Nightly: rustup toolchain install nightly e rustup default nightly.
  3. Installa LLVM: winget install LLVM.LLVM.
  4. Installa gli strumenti: cargo install cargo-make cargo-expand cargo-edit cargo-workspaces.
  5. Installa WDK/SDK/EWDK: passaggi qui.
  6. Imposta la variabile d'ambiente WDKContentRoot in modo che punti al percorso di installazione del WDK, se non è stata impostata automaticamente durante l'installazione del WDK:
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

Compilazione del Progetto

  • Sviluppo: cargo make --profile development.
  • Produzione: cargo make --profile release.

Debugging

Abilitazione delle Modalità di Debug

  • Modalità Test: attiva la firma di test con bcdedit.exe /set testsigning on.
  • Debugging di Windows: segui i passaggi di questa guida Microsoft.
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

Debug di Rete con Windbg

Configurazione: bcdedit.exe /dbgsettings net hostip:w.x.y.z port:n.

Filtro Debug Print

  1. Apri regedit.exe.
  2. Vai a HKLM\SYSTEM\CurrentControlSet\Control\Session Manager.
  3. Crea Debug Print Filter con DWORD DEFAULT = 8.

Debug della Porta Seriale VMware

  1. Aggiungi la porta seriale in VMware: 'Use output file'.
  2. Configura nella VM Windows: $serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open().

Gestione del Servizio

Usa il Service Controller (sc.exe) per creare e gestire il servizio dell'hypervisor:

sc.exe create matrix type= kernel binPath= C:\Windows\System32\drivers\matrix.sys
sc.exe query matrix
sc.exe start matrix

Utilizzo

  1. Configurazione per VMware Workstation

    Compila il progetto: segui le istruzioni di compilazione fornite nelle sezioni precedenti per compilare il progetto.

  2. Configura VMware Workstation

    Configura la porta seriale VMware per il debug.

VMware Serial Port Settings Figura 1: Impostazioni della Porta Seriale VMware

Assicurati che "Virtualize Intel VT-x/EPT or AMD-V/RVI" sia abilitata e che "Virtualize IOMMU (IO memory management unit)" sia abilitata.

VMware Processors Settings Figura 2: Impostazioni dei Processori VMware

  1. Copia il Driver

    Copia il driver matrix.sys nella directory C:\Windows\System32\drivers.

  2. Debug della Porta Seriale VMware

    Esegui lo script PowerShell nella sezione Debug della Porta Seriale per aprire la porta seriale.

  3. Carica l'Hypervisor

    Usa lo script PowerShell load.ps1 mostrato nella sezione Gestione del Servizio per creare e avviare il servizio dell'hypervisor.

Load Hypervisor Figura 3: Caricamento dell'Hypervisor

PoC

Hypervisor PoC Setup Figura 4: Configurazione PoC con Log e Windbg

Hypervisor PoC Execute Figura 5: Esecuzione PoC con Log e Windbg

Ringraziamenti, Riferimenti e Motivazione

Un grande ringraziamento alle fantastiche persone e risorse che hanno contribuito a dare forma a questo progetto. Un ringraziamento speciale a tutti coloro elencati di seguito. Anche se non ho usato tutte queste risorse nel mio lavoro, sono state miniere d'oro di informazioni, estremamente utili per chiunque si immerga nello sviluppo di hypervisor, me compreso.

  • Daax (@daaximus): Per la sua eccezionale serie gratuita sullo sviluppo di hypervisor, una delle migliori risorse disponibili, che ha fortemente influenzato il mio lavoro grazie alla sua ricerca approfondita e alle spiegazioni chiare. Il suo supporto e le risposte alle mie domande sono stati preziosi per iniziare con lo sviluppo di hypervisor:
    • 7 Days to Virtualization.
    • MMU Virtualization via Intel EPT.
Scarica lo strumento