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
EfiGuard — Disabilita PatchGuard e Driver Signature Enforcement all'avvio | Kitploit
Strumenti/GitHubGitHub/mattiwatti/efiguard
Strumenti DifensiviExploitReverse EngineeringAnalisi di Binari
GitHubmattiwatti/efiguard

EfiGuard

Disabilita PatchGuard e Driver Signature Enforcement all'avvio

Vedi Repository
2.5k409323 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

Panoramica

EfiGuard è un bootkit UEFI x64 portatile che modifica il boot manager, il boot loader e il kernel di Windows all'avvio per disabilitare PatchGuard e Driver Signature Enforcement (DSE).

Se stai solo cercando di provare EfiGuard, passa a Utilizzo.

Caratteristiche

  • Supporta attualmente tutte le versioni di Windows x64 compatibili con EFI mai rilasciate, da Vista SP1 a Windows 11.

  • Facile da usare: può essere avviato da una chiavetta USB o dalla partizione EFI di Windows tramite un loader che trova e avvia automaticamente Windows. Il driver può anche essere caricato e configurato manualmente usando sia la shell UEFI che il loader.

  • Fa ampio uso della libreria disassemblatrice Zydis per la decodifica rapida delle istruzioni in runtime, supportando un'analisi più robusta rispetto a quella possibile con il pattern matching, che spesso richiede modifiche con i nuovi aggiornamenti del sistema operativo.

  • Funziona passivamente: il driver non carica né avvia il boot manager di Windows. Agisce invece sul caricamento di bootmgfw.efi da parte del boot manager del firmware tramite il menu di selezione di avvio o un'applicazione EFI come il loader. Se viene avviato un sistema operativo non Windows, il driver si scaricherà automaticamente.

  • Supporta la patch a quattro stadi per quando bootmgfw.efi avvia bootmgr.efi invece di winload.efi. Questo accade quando viene caricato un file WIM per avviare WinPE, Configurazione di Windows o la modalità di ripristino di Windows.

  • Recupero graduale: in caso di fallimento della patch, il driver visualizzerà informazioni sull'errore e richiederà di continuare l'avvio o riavviare premendo ESC. Questo è vero anche fino allo stadio finale della patch del kernel, perché l'ultimo stadio della patch avviene prima che venga chiamata ExitBootServices. Molti bootkit UEFI di Windows hookano OslArchTransferToKernel che, sebbene facile da trovare tramite pattern matching, è una funzione che viene eseguita in modalità protetta dopo ExitBootServices. Ciò significa che non sono disponibili servizi di avvio per informare l'utente che qualcosa è andato storto. bsod

    Simulazione di fallimento della patch con informazioni sull'errore

  • Debuggabile: può inviare messaggi a un debugger del kernel e allo schermo (sebbene bufferizzati) durante la fase di patching del kernel, e a una porta seriale o non bufferizzati allo schermo durante le fasi di patching del boot manager e del boot loader. Se il driver è compilato con informazioni di debug PDB, è possibile caricare i simboli di debug in qualsiasi momento dopo l'inizializzazione di HAL specificando la base virtuale del driver DXE e debugandolo come si farebbe con un normale driver NT.

  • Bypass DSE: disponibile come disabilitazione DSE diretta all'avvio (stile UPGDSED) o come hook sul servizio EFI runtime SetVariable(). Quest'ultimo funge da backdoor arbitraria in lettura/scrittura in modalità kernel che può essere chiamata da Windows usando NtSetSystemEnvironmentValueEx e permette di impostare g_CiEnabled/g_CiOptions al valore desiderato. Viene fornita una piccola applicazione in stile DSEFix chiamata EfiDSEFix.exe che può essere utilizzata per farlo. È anche possibile lasciare DSE abilitato e disabilitare solo PatchGuard. Il loader utilizzerà il metodo hook SetVariable per impostazione predefinita, poiché alcuni programmi anti-cheat e antivirus non comprendono la differenza tra cheat/malware e driver autofirmati in generale e prendono di mira la fix UPGDSED.

  • Supporta kernel e boot loader modificati su disco patchando ImgpValidateImageHash in ogni stadio, oltre a ImgpFilterValidationFailure, che potrebbe silenziosamente segnalare alcune classi di violazioni a un TPM o al file di log SI.

  • Consente l'avvio protetto (Secure Boot) con Windows 7 (non è uno scherzo!). Windows 7 stesso ignora l'avvio protetto poiché non lo supporta, o (ufficialmente: ufficialmente) nemmeno l'avvio senza CSM. Questo è utile per chi vuole usare Windows 7 su un dispositivo bloccato che richiede l'avvio protetto WHQL. Voce della wiki su come farlo funzionare qui. win7_secureboot

    WinObjEx64 su Windows 7 con Avvio Protetto abilitato

Problemi e limitazioni

  • EfiGuard non può disabilitare Hypervisor-enforced Code Integrity (HVCI o HyperGuard) perché HVCI è eseguito a un livello di privilegio superiore. EfiGuard può coesistere con HVCI e disabilita con successo PatchGuard nel kernel normale, ma questo non è utile in pratica perché HVCI intercetterà ciò che PatchGuard faceva in precedenza. Entrambi i tipi di bypass DSE sono resi inutili da HVCI: la patch all'avvio non ha effetto perché il kernel rimanda al kernel sicuro per i controlli di integrità, e l'hook SetVariable causerà un bugcheck SECURE_KERNEL_ERROR se usato per scrivere su g_CiOptions.
  • I kernel checked non sono supportati a causa delle differenze nel codice di inizializzazione di PatchGuard e DSE causate da ottimizzazioni disabilitate e asserzioni aggiunte, oltre a modifiche aggiuntive a PatchGuard nei kernel checked. Questo non dovrebbe essere un problema poiché i kernel checked non sono generalmente utili senza un debugger del kernel collegato, che disabilita PatchGuard.

Utilizzo

Ci sono due modi per usare EfiGuard: avviare l'applicazione loader, che caricherà il driver e avvierà Windows per te, oppure installare il driver come voce di driver UEFI in modo che venga caricato automaticamente dal firmware.

Installare il driver può essere preferibile in alcune configurazioni avanzate come quando si avviano più sistemi operativi, ma il loader è il più semplice da usare e dovrebbe funzionare bene in tutte le configurazioni. Vedi la tabella qui sotto per le differenze più importanti tra i due metodi. In caso di dubbio, scegli l'applicazione loader.

PosizioneInstallazioneSaltabile?Quale sistema operativo viene avviato?
Voce driver UEFIDeve essere su ESPTramite Shell UEFI❌Uguale a prima
LoaderOvunqueNon necessaria✔️Windows

Confronto tra loader e voce driver UEFI

Avvio del loader

  1. Scarica EfiGuard e rinomina EFI/Boot/Loader.efi in bootx64.efi.
  2. Posiziona i file su un'unità di avvio come una chiavetta USB formattata FAT32 (per macchine fisiche) o un ISO/disco virtuale (per VM). Supponendo l'unità X:, i percorsi per i due file dovrebbero ora essere X:/EFI/Boot/{bootx64|EfiGuardDxe}.efi
  3. Avvia la macchina dall'unità usata al punto 2. La maggior parte dei firmware fornisce un menu di avvio per farlo tramite F8/F10/F11/F12. In caso contrario, dovrai configurare il BIOS per avviare dalla nuova unità.
  4. Windows dovrebbe ora avviarsi e dovresti vedere messaggi di EfiGuard durante l'avvio.
  5. Se hai avviato con l'hook SetVariable (predefinito), esegui EfiDSEFix.exe -d da un prompt dei comandi come Amministratore dopo l'avvio per disabilitare DSE, oppure esegui EfiDSEFix.exe per vedere l'elenco completo delle opzioni.

Nota che non hai bisogno di usare un'unità separata per il loader. Se preferisci, puoi installare EfiGuard sull'ESP su cui Windows è già installato. Tuttavia, questo è leggermente più complicato poiché dovrai aggiungere una voce di avvio UEFI per il loader.

Scarica lo strumento