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
bitcracker — BitCracker é a primeira ferramenta de código aberto para quebra de senhas em unidades de memória criptografadas com BitLocker. | Kitploit
Ferramentas/GitHubGitHub/e-ago/bitcracker
Quebra de SenhasFerramentas de Criptografia/DescriptografiaCriptografia
GitHube-ago/bitcracker

bitcracker

BitCracker é a primeira ferramenta de código aberto para quebra de senhas em unidades de memória criptografadas com BitLocker.

Ver Repositório
965207há 4 anosRevisado 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

BitCracker

O BitCracker é a primeira ferramenta de cracking de senhas de código aberto para dispositivos de armazenamento (Disco Rígido, Pendrive USB, cartão SD, etc...) criptografados com BitLocker, um recurso de criptografia disponível no Windows Vista, 7, 8.1 e 10 (edições Ultimate, Pro e Enterprise). O BitLocker oferece diferentes métodos de autenticação para criptografar um dispositivo de armazenamento, como Trusted Platform Module (TPM), Smart Card, Senha de Recuperação, Senha fornecida pelo usuário.

Através de um ataque de dicionário, o BitCracker tenta encontrar a Senha de Usuário correta ou a Senha de Recuperação para descriptografar o dispositivo de armazenamento criptografado. Ele foi implementado em CUDA e OpenCL.

Artigo

Vários periódicos atrasaram a publicação do nosso artigo sobre o BitCracker (quase 3 anos, com rejeição final após várias revisões) que explica os detalhes do nosso ataque, o formato de volume BitLocker Drive Encryption (BDE) e possíveis fraquezas no procedimento de criptografia/descriptografia. Finalmente, publicamos o artigo aqui: https://arxiv.org/abs/1901.01337 . Por favor, sinta-se à vontade para comentar e compartilhar.

Requisitos

Para executar o BitCracker-CUDA, os requisitos mínimos são:

  • uma GPU NVIDIA com CC 3.5 ou superior
  • CUDA 7.5 ou mais recente

Para executar o BitCracker-OpenCL, os requisitos mínimos são qualquer GPU ou CPU compatível com OpenCL (você pode encontrar ajuda aqui.

O BitCracker requer pelo menos 260 MB de memória do dispositivo.

Recomendamos fortemente executar seu ataque em uma GPU em vez de CPU por razões de desempenho (veja a seção Desempenho).

Compilação

Executar o script build.sh gera 4 executáveis dentro do diretório build: bitcracker_hash, bitcracker_rpgen, bitcracker_cuda, bitcracker_opencl.

Para compilar o bitcracker_cuda de forma compatível com sua GPU NVIDIA e versão do CUDA, você precisa modificar o src_CUDA/Makefile escolhendo a versão SM correta. Como referência, você pode usar a seguinte tabela:

Preparar o ataque

Você precisa criar a imagem do seu dispositivo de armazenamento criptografado com BitLocker usando, por exemplo, o comando dd:

root@kitploit:~
sudo dd if=/dev/disk2 of=/caminho/para/imagemCriptografada.img conv=noerror,sync
4030464+0 records in
4030464+0 records out
2063597568 bytes transferred in 292.749849 secs (7049013 bytes/sec)

Em seguida, você precisa executar o executável bitcracker_hash na sua imagemCriptografada.img para:

  • verificar se a imagem tem um formato válido e pode ser atacada pelo BitCracker
  • verificar se o dispositivo de armazenamento original foi criptografado com uma Senha de Usuário ou uma Senha de Recuperação
  • extrair o hash que descreve a imagem

Se a execução for concluída corretamente, bitcracker_hash produz 1 ou 2 arquivos de saída:

  • hash_user_pass.txt : se o dispositivo foi criptografado com uma Senha de Usuário, este arquivo contém o hash necessário para iniciar o modo de ataque de Senha de Usuário.
  • hash_recv_pass.txt : o hash necessário para iniciar o modo de ataque de Senha de Recuperação

Volumes criptografados com BDE podem ter formatos diferentes para diferentes métodos de autenticação. Se o bitcracker_hash não conseguir encontrar a Senha de Recuperação na sua imagem criptografada, por favor abra uma issue ou entre em contato comigo

Um exemplo:

root@kitploit:~
/build/bitcracker_hash -o test_hash -i ./Images/imgWin7

---------> BitCracker Hash Extractor <---------
Abrindo arquivo ./Images/imgWin7

....

Assinatura encontrada em 0x02208000
Versão: 2 (Windows 7 ou posterior)

Entrada VMK encontrada em 0x022080bc
VMK criptografado com senha de usuário encontrada!
VMK criptografado com AES-CCM

Entrada VMK encontrada em 0x0220819c
VMK criptografado com chave de recuperação encontrada!
VMK criptografado com AES-CCM

Hash de Senha de Usuário:
$bitlocker$0$16$89a5bad722db4a729d3c7b9ee8e76a29$1048576$12$304a4ac192a2cf0103000000$60$24de9a6128e8f8ffb97ac72d21de40f63dbc44acf101e68ac0f7e52ecb1be4a8ee30ca1e69fbe98400707ba3977d5f09b14e388c885f312edc5c85c2

Hash de Chave de Recuperação:
$bitlocker$2$16$8b7be4f7802275ffbdad3766c7f7fa4a$1048576$12$304a4ac192a2cf0106000000$60$6e72f6ef6ba688e72211b8cf8cc722affd308882965dc195f85614846f5eb7d9037d4d63bcc1d6e904f0030cf2e3a95b3e1067447b089b7467f86688

Arquivo de saída para ataque de senha de usuário: "hash_user_pass.txt"
Arquivo de saída para ataque de senha de recuperação: "hash_recv_pass.txt"

Ataque de Senha de Usuário

Você pode usar este tipo de ataque se o dispositivo de armazenamento foi criptografado com uma senha fornecida pelo usuário, conforme mostrado na imagem a seguir. alt text O BitCracker realiza um ataque de dicionário, portanto, você precisa fornecer uma wordlist de possíveis senhas de usuário.

Para iniciar o ataque, você precisa:

  • do arquivo hash_user_pass.txt
  • de uma wordlist de possíveis senhas de usuário (você precisa fornecê-la)

Um exemplo de linha de comando:

./build/bitcracker_cuda -f hash_user_pass.txt -d wordlist.txt -t 1 -b 1 -g 0 -u

Onde:

  • -f : caminho para o arquivo hash_user_pass.txt
  • -d : caminho para sua wordlist
  • -t : número de senhas processadas por cada thread CUDA
  • -b : número de blocos CUDA
  • -g : ID do dispositivo GPU NVIDIA
  • -u : especifica que você deseja um ataque de senha de usuário

Para todas as opções disponíveis, digite ./build/bitcracker_cuda -h. Para obter o melhor desempenho, consulte a tabela na seção Desempenho para configurar corretamente as opções t e b de acordo com sua GPU NVIDIA.

As mesmas considerações podem ser aplicadas ao executável bitcracker_opencl.

Um exemplo de saída:

root@kitploit:~
====================================
Dispositivo selecionado: GPU Tesla K80 (ID: 0)
====================================
....
Lendo arquivo de hash "hash_user_pass.txt"
$bitlocker$0$16$0a8b9d0655d3900e9f67280adc27b5d7$1048576$12$b0599ad6c6a1cf0103000000$60$c16658f54140b3d90be6de9e03b1fe90033a2c7df7127bcd16cb013cf778c12072142c484c9c291a496fc0ebd8c21c33b595a9c1587acfc6d8bb9663

====================================
Ataque
====================================

Tipo de ataque: Senha de Usuário
Threads CUDA: 1024
Blocos CUDA: 1
Senhas por thread: 1
Máx de senhas por kernel: 1024
Dicionário: wordlist.txt
Verificação Estrita (-s): Não
Comparação MAC (-m): Não

Execução do kernel CUDA:
	Stream 0
	Número efetivo de senhas: 12
	Faixa de Senhas:
		abcdefshhf
		.....
		blablalbalbalbla12
	Tempo: 28.651947 sec
	Senhas por segundo:     0.42 pw/sec

================================================
....
Senha encontrada: paperino
================================================

Atualmente, o BitCracker é capaz de processar senhas de entrada com comprimento entre 8 e 55 caracteres.

Ataque de Senha de Recuperação

Durante a criptografia de um dispositivo de armazenamento (independentemente do método de autenticação), o BitLocker pede ao usuário para armazenar em algum lugar uma Senha de Recuperação que pode ser usada para restaurar o acesso ao dispositivo de armazenamento criptografado no caso de ele/ela não conseguir desbloquear a unidade normalmente. Assim, a Senha de Recuperação é uma espécie de passe-partout para todos os métodos de autenticação e consiste em uma chave de 48 dígitos como esta:

236808-089419-192665-495704-618299-073414-538373-542366

Veja documentos da Microsoft para mais detalhes.

Assim como para a senha de usuário, o BitCracker é capaz de realizar um ataque de dicionário para encontrar a Senha de Recuperação correta gerada pelo BitLocker para criptografar o dispositivo de armazenamento. Por favor, note que atualmente somos capazes de atacar a Senha de Recuperação apenas se o dispositivo de armazenamento não foi criptografado com o TPM.

Para iniciar o ataque, você precisa:

  • do arquivo hash_recv_pass.txt
  • de uma wordlist de possíveis senhas de recuperação

Gerar e armazenar todas as senhas possíveis é um problema difícil. Por esta razão, criamos um gerador de Senhas de Recuperação chamado bitcracker_rpgen. Com esta ferramenta, você pode criar várias wordlists de Senhas de Recuperação para usar em seus ataques. Como exemplo:

./build/bitcracker_rpgen -n 300 -p 10000000 -s 000000-000011-000022-000033-000044-000055-008459-015180

Isso gera:

  • -n : número de wordlists
  • -p : número de Senhas de Recuperação por wordlist
  • -s : gerar Senhas de Recuperação a partir desta

Você pode usar a configuração padrão executando sem opções:

root@kitploit:~
./build/bitcracker_rpgen

************* Gerador de wordlists de Senha de Recuperação BitCracker *************

Executando com esta configuração:
### Criar 100 wordlists
### Senhas de Recuperação por wordlist=5000000
### Permitir duplicatas=Não
### Gerar a partir de=000000-000011-000022-000033-000044-000055-000066-000077

Criando wordlist "bitcracker_wlrp_0.txt" com 5000000 senhas
Primeira senha=000000-000011-000022-000033-000044-000055-000066-000077
Última senha= 000000-000011-000022-000033-000044-000055-000902-217822
...

Note que a opção -s pode ser usada para reiniciar a geração a partir da sua última Senha de Recuperação gerada (em vez de reiniciar sempre da inicial). A opção -d permite a possibilidade de ter duplicatas na mesma Senha de Recuperação. Por exemplo: 000000-000011-000055-000055-000044-000055-000902-217822

Para todas as opções disponíveis, digite ./build/bitcracker_rpgen -h.

NOTA: Por favor, note que a quantidade de Senhas de Recuperação possíveis é enorme:
senha de recuperação = 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536
De acordo com nossa pesquisa, a distribuição de senhas é uniforme e não há maneira de encontrar números "mais prováveis". Até agora, não encontramos uma regra para reduzir a quantidade de candidatos possíveis. Isso significa que o ataque de Senha de Recuperação pode levar uma eternidade (o ataque de Senha de Usuário é sempre o preferido). Em breve, modificaremos a ferramenta bitcracker_rpgen para gerar Senhas de Recuperação de forma aleatória em vez de em sequência ordenada.

Um exemplo de linha de comando:

./build/bitcracker_cuda -f hash_recv_pass.txt -d bitcracker_wlrp_0.txt -t 1 -b 1 -g 0 -r

Onde as opções são as mesmas que no caso de Senha de Usuário, mas em vez de -u, você precisa especificar -r. Um exemplo de saída:

root@kitploit:~
====================================
Dispositivo selecionado: GPU Tesla K80 (ID: 0)
====================================

...
Lendo arquivo de hash "hash_recv_pass.txt"
$bitlocker$2$16$432dd19f37dd413a88552225628c8ae5$1048576$12$a0da3fc75f6cd30106000000$60$3e57c68216ef3d2b8139fdb0ec74254bdf453e688401e89b41cae7c250739a8b36edd4fe86a597b5823cf3e0f41c98f623b528960a4bee00c42131ef


====================================
Ataque
====================================

Tipo de ataque: Senha de Recuperação
Threads CUDA: 1024
Blocos CUDA: 1
Senhas por thread: 8
Máx de senhas por kernel: 8192
Dicionário: wordlist.txt
Verificação Estrita (-s): Não
Comparação MAC (-m): Não

Execução do kernel CUDA:
	Senhas efetivas: 6014
	Faixa de Senhas:
		390775-218680-136708-700645-433191-416240-153241-612216
		.....
		090134-625383-540826-613283-563497-710369-160182-661364
	Tempo: 193.358937 sec
	Senhas por segundo:    31.10 pw/sec


================================================
Ataque CUDA concluído
Senhas avaliadas: 6014
Senha encontrada: 111683-110022-683298-209352-468105-648483-571252-334455
================================================

Falsos Positivos

Por padrão, o BitCracker faz um ataque rápido (para ambos os modos de senha de Usuário e Recuperação) que pode retornar alguns falsos positivos. Nesse caso, você pode reexecutar seu ataque com a opção -m, que ativa a verificação MAC (solução mais lenta).

Exemplos

Para testar o BitCracker em seu sistema antes de iniciar o ataque real, fornecemos várias imagens de dispositivos de armazenamento criptografados.

  • imgWin7: BitLocker no Windows 7 Enterprise edition OS
  • imgWin8: BitLocker no Windows 8 Enterprise edition OS
  • imgWin10Compat.vhd: BitLocker (modo compatível) no Windows 10 Pro edition OS
  • imgWin10NotCompat.vhd: BitLocker (modo não compatível) no Windows 10 Pro edition OS
  • imgWin10NotCompatLongPsw.vhd : BitLocker (modo não compatível) no Windows 10 Pro edition OS com uma senha de usuário mais longa

Você pode atacar essas imagens com ambos os modos de Senha de Usuário e Recuperação, usando as wordlists armazenadas na pasta Dictionary.

Desempenho

Aqui relatamos os melhores desempenhos do BitCracker no caso de ataque rápido (padrão) para a Senha de Usuário (opção -u).

Desempenho:

N.B. Cada senha requer cerca de 2.097.152 SHA-256

John The Ripper

Lançamos o BitCracker como o formato OpenCL-BitLocker no John The Ripper (--format=bitlocker-opencl). Os arquivos de hash gerados pelo bitcracker_hash (veja a seção How To) são totalmente compatíveis com o formato John.
No GTV100, a taxa de senhas é de cerca de 3150p/s. A equipe do JtR desenvolveu a versão CPU deste ataque (--format=bitlocker); em uma CPU Intel(R) Xeon(R) v4 2.20GHz, a taxa de senhas é de cerca de 78p/s.

Hashcat

Este é um trabalho em andamento...

Changelog

Nov 2021: Código atualizado para executar em GPU NVIDIA Ampere usando CUDA 11.x

Próximos passos

  • Fornecer uma implementação multi-GPU
  • Fornecer uma interface Qt

Referências, créditos e contatos

Por favor, compartilhe e teste nosso projeto: precisamos do seu feedback!

Agradecimentos especiais à equipe do John The Ripper, aos projetos Dislocker e LibBDE.

Este é um projeto de pesquisa em colaboração com o Conselho Nacional de Pesquisa da Itália, lançado sob licença GPLv2.
Copyright (C) 2013-2021 Elena Ago (elena dot ago at gmail dot com) e Massimo Bernaschi (massimo dot bernaschi at gmail dot com)
Forneceremos mais informações sobre o ataque do BitCracker em um artigo futuro.

Embora usemos a licença GPLv2, estamos abertos a colaborações. Para qualquer informação adicional, colaborações ou relatório de bug, por favor, entre em contato conosco ou abra uma issue.

Baixar ferramenta
Arquitetura GPUCUDA SugeridoMakefile
KeplerCUDA 7.5arch=compute_35,code=sm_35
MaxwellCUDA 8.0arch=compute_52,code=sm_52
PascalCUDA 9.0arch=compute_60,code=sm_60
VoltaCUDA 9.0arch=compute_70,code=sm_70
Acrônimo GPUGPUArchCC# SMClockCUDA
GFTGeForce TitanKepler3.5148357.0
GTK80Tesla K80Kepler3.5138757.5
GFTXGeForce Titan XMaxwell5.22410017.5
GTP100Tesla P100Pascal6.15613288.0
GTV100Tesla V100Volta7.08012909.0
AMDMRadeon Malta-----
VersãoGPU-t-bSenhas por kernelSenhas/segHash/seg
CUDAGFT813106.496303635 MH/s
CUDAGTK80814114.688370775 MH/s
CUDAGFTX824106.6089331.957 MH/s
CUDAGTP10015657.3441.4182.973 MH/s
CUDAGTV10018081.9203.2526.820 MH/s
OpenCLAMDM3264524.288241505 MH/s
OpenCLGFTX824196.6088841.853 MH/s