Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
bitcracker — BitCracker est le premier outil open source de craquage de mots de passe pour les unités de stockage chiffrées avec BitLocker. | Kitploit
Outils/GitHubGitHub/e-ago/bitcracker
Cassage de Mots de PasseOutils de Chiffrement/DéchiffrementCryptographie
GitHube-ago/bitcracker

bitcracker

BitCracker est le premier outil open source de craquage de mots de passe pour les unités de stockage chiffrées avec BitLocker.

Voir le dépôt
9652078il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

BitCracker

BitCracker est le premier outil open source de cassage de mots de passe pour les dispositifs de stockage (disque dur, clé USB, carte SD, etc.) chiffrés avec BitLocker, une fonctionnalité de chiffrement disponible sur Windows Vista, 7, 8.1 et 10 (éditions Ultimate, Pro et Entreprise). BitLocker propose plusieurs méthodes d'authentification différentes pour chiffrer un périphérique de stockage, comme Trusted Platform Module (TPM), la carte à puce, le mot de passe de récupération, ou le mot de passe fourni par l'utilisateur.

Au moyen d'une attaque par dictionnaire, BitCracker tente de trouver le mot de passe utilisateur correct ou le mot de passe de récupération pour déchiffrer le périphérique de stockage chiffré. Il a été implémenté en CUDA et OpenCL.

Article

Plusieurs revues ont retardé la publication de notre article BitCracker (près de 3 ans, avec un rejet final après plusieurs révisions) qui explique les détails de notre attaque, le format de volume BitLocker Drive Encryption (BDE) et les faiblesses possibles dans la procédure de chiffrement/déchiffrement. Finalement, nous avons publié l'article ici : https://arxiv.org/abs/1901.01337 . N'hésitez pas à commenter et à partager.

Prérequis

Pour exécuter BitCracker-CUDA, les exigences minimales sont :

  • un GPU NVIDIA avec CC 3.5 ou ultérieur
  • CUDA 7.5 ou plus récent

Pour exécuter BitCracker-OpenCL, les exigences minimales sont n'importe quel GPU ou CPU prenant en charge OpenCL (vous pouvez trouver de l'aide ici.

BitCracker nécessite au moins 260 Mo de mémoire de périphérique.

Nous recommandons vivement d'exécuter votre attaque sur un GPU plutôt que sur un CPU pour des raisons de performance (voir section Performance).

Compilation

L'exécution du script build.sh génère 4 exécutables dans le répertoire build : bitcracker_hash, bitcracker_rpgen, bitcracker_cuda, bitcracker_opencl.

Pour compiler bitcracker_cuda de manière cohérente avec votre GPU NVIDIA et votre version de CUDA, vous devez modifier le fichier src_CUDA/Makefile en choisissant la bonne version SM. À titre de référence, vous pouvez utiliser le tableau suivant :

Préparer l'attaque

Vous devez créer l'image de votre périphérique de stockage chiffré avec BitLocker en utilisant, par exemple, la commande dd :

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

Ensuite, vous devez exécuter le binaire bitcracker_hash sur votre imageChiffree.img afin de :

  • vérifier si l'image a un format valide et peut être attaquée par BitCracker
  • vérifier si le périphérique de stockage d'origine a été chiffré avec un mot de passe utilisateur ou un mot de passe de récupération
  • extraire le hachage décrivant l'image

Si l'exécution se termine correctement, bitcracker_hash produit 1 ou 2 fichiers de sortie :

  • hash_user_pass.txt : si le périphérique a été chiffré avec un mot de passe utilisateur, ce fichier contient le hachage dont vous avez besoin pour démarrer le mode d'attaque par mot de passe utilisateur.
  • hash_recv_pass.txt : le hachage nécessaire pour démarrer le mode d'attaque par mot de passe de récupération

Les volumes chiffrés BDE peuvent avoir différents formats selon les différentes méthodes d'authentification. Si bitcracker_hash ne parvient pas à trouver le mot de passe de récupération sur votre image chiffrée, veuillez ouvrir un problème ou me contacter.

Un exemple :

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

---------> BitCracker Hash Extractor <---------
Ouverture du fichier ./Images/imgWin7

....

Signature trouvée à 0x02208000
Version : 2 (Windows 7 ou ultérieur)

Entrée VMK trouvée à 0x022080bc
VMK chiffré avec mot de passe utilisateur trouvé !
VMK chiffré avec AES-CCM

Entrée VMK trouvée à 0x0220819c
VMK chiffré avec clé de récupération trouvé !
VMK chiffré avec AES-CCM

Hachage du mot de passe utilisateur :
$bitlocker$0$16$89a5bad722db4a729d3c7b9ee8e76a29$1048576$12$304a4ac192a2cf0103000000$60$24de9a6128e8f8ffb97ac72d21de40f63dbc44acf101e68ac0f7e52ecb1be4a8ee30ca1e69fbe98400707ba3977d5f09b14e388c885f312edc5c85c2

Hachage de la clé de récupération :
$bitlocker$2$16$8b7be4f7802275ffbdad3766c7f7fa4a$1048576$12$304a4ac192a2cf0106000000$60$6e72f6ef6ba688e72211b8cf8cc722affd308882965dc195f85614846f5eb7d9037d4d63bcc1d6e904f0030cf2e3a95b3e1067447b089b7467f86688

Fichier de sortie pour l'attaque par mot de passe utilisateur : "hash_user_pass.txt"
Fichier de sortie pour l'attaque par mot de passe de récupération : "hash_recv_pass.txt"

Attaque par mot de passe utilisateur

Vous pouvez utiliser ce type d'attaque si le périphérique de stockage a été chiffré avec un mot de passe fourni par l'utilisateur, comme illustré dans l'image suivante. alt text BitCracker effectue une attaque par dictionnaire, vous devez donc fournir une liste de mots de passe utilisateur possibles.

Pour lancer l'attaque, vous avez besoin de :

  • le fichier hash_user_pass.txt
  • une liste de mots de passe utilisateur possibles (vous devez la fournir vous-même)

Un exemple de ligne de commande :

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

Où :

  • -f : chemin vers le fichier hash_user_pass.txt
  • -d : chemin vers votre liste de mots de passe
  • -t : nombre de mots de passe traités par chaque thread CUDA
  • -b : nombre de blocs CUDA
  • -g : ID du périphérique GPU NVIDIA
  • -u : spécifie que vous voulez une attaque par mot de passe utilisateur

Pour toutes les options disponibles, tapez ./build/bitcracker_cuda -h. Pour obtenir les meilleures performances, veuillez vous référer au tableau dans la section Performance pour définir correctement les options t et b en fonction de votre GPU NVIDIA.

Les mêmes considérations s'appliquent pour l'exécutable bitcracker_opencl.

Un exemple de sortie :

root@kitploit:~
====================================
Périphérique sélectionné : GPU Tesla K80 (ID : 0)
====================================
....
Lecture du fichier de hachage "hash_user_pass.txt"
$bitlocker$0$16$0a8b9d0655d3900e9f67280adc27b5d7$1048576$12$b0599ad6c6a1cf0103000000$60$c16658f54140b3d90be6de9e03b1fe90033a2c7df7127bcd16cb013cf778c12072142c484c9c291a496fc0ebd8c21c33b595a9c1587acfc6d8bb9663

====================================
Attaque
====================================

Type d'attaque : Mot de passe utilisateur
Threads CUDA : 1024
Blocs CUDA : 1
Mots de passe par thread : 1
Max mots de passe par noyau : 1024
Dictionnaire : wordlist.txt
Vérification stricte (-s) : Non
Comparaison MAC (-m) : Non

Exécution du noyau CUDA :
	Flux 0
	Nombre effectif de mots de passe : 12
	Plage de mots de passe :
		abcdefshhf
		.....
		blablalbalbalbla12
	Temps : 28.651947 sec
	Mots de passe par seconde :     0.42 pw/sec

================================================
....
Mot de passe trouvé : paperino
================================================

Actuellement, BitCracker est capable de traiter des mots de passe d'entrée d'une longueur comprise entre 8 et 55 caractères.

Attaque par mot de passe de récupération

Lors du chiffrement d'un périphérique de stockage (quelle que soit la méthode d'authentification), BitLocker demande à l'utilisateur de stocker quelque part un mot de passe de récupération qui peut être utilisé pour restaurer l'accès au périphérique de stockage chiffré au cas où il/elle ne pourrait pas déverrouiller le lecteur normalement. Ainsi, le mot de passe de récupération est une sorte de passe-partout pour toutes les méthodes d'authentification et il consiste en une clé de 48 chiffres comme celle-ci :

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

Voir Documentation Microsoft pour plus de détails.

Comme pour le mot de passe utilisateur, BitCracker est capable d'effectuer une attaque par dictionnaire pour trouver le mot de passe de récupération correct généré par BitLocker pour chiffrer le périphérique de stockage. Veuillez noter qu'actuellement nous ne pouvons attaquer le mot de passe de récupération que si le périphérique de stockage n'a pas été chiffré avec le TPM.

Pour lancer l'attaque, vous avez besoin de :

  • le fichier hash_recv_pass.txt
  • une liste de mots de passe de récupération possibles

Générer et stocker tous les mots de passe possibles est un problème difficile. Pour cette raison, nous avons créé un générateur de mots de passe de récupération nommé bitcracker_rpgen. Avec cet outil, vous pouvez créer un ensemble de listes de mots de passe de récupération à utiliser pour vos attaques. Par exemple :

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

Cela génère :

  • -n : nombre de listes de mots de passe
  • -p : nombre de mots de passe de récupération par liste
  • -s : générer les mots de passe de récupération en commençant par celui-ci

Vous pouvez utiliser la configuration par défaut en l'exécutant sans options :

root@kitploit:~
./build/bitcracker_rpgen

************* BitCracker Recovery Password wordlists generator *************

Exécution avec cette configuration :
### Créer 100 listes de mots de passe
### Mots de passe de récupération par liste = 5000000
### Autoriser les doublons = Non
### Générer à partir de = 000000-000011-000022-000033-000044-000055-000066-000077

Création de la liste "bitcracker_wlrp_0.txt" avec 5000000 mots de passe
Premier mot de passe = 000000-000011-000022-000033-000044-000055-000066-000077
Dernier mot de passe = 000000-000011-000022-000033-000044-000055-000902-217822
...

Notez que l'option -s peut être utilisée pour redémarrer la génération à partir du dernier mot de passe de récupération généré (au lieu de redémarrer à chaque fois depuis le début). L'option -d active la possibilité d'avoir des doublons dans le même mot de passe de récupération. Par exemple : 000000-000011-000055-000055-000044-000055-000902-217822

Pour toutes les options disponibles, tapez ./build/bitcracker_rpgen -h.

REMARQUE : Veuillez noter que le nombre de mots de passe de récupération possibles est énorme :
recovery password = 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536
Selon nos recherches, la distribution des mots de passe est uniforme et il n'y a aucun moyen de trouver des nombres « plus probables ». Jusqu'à présent, nous n'avons pas trouvé de règle pour réduire le nombre de candidats possibles. Cela signifie que l'attaque par mot de passe de récupération pourrait prendre une éternité (l'attaque par mot de passe utilisateur est toujours la préférée). Bientôt, nous modifierons l'outil bitcracker_rpgen pour générer les mots de passe de récupération de manière aléatoire plutôt qu'en séquence ordonnée.

Un exemple de ligne de commande :

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

Où les options sont les mêmes que dans le cas du mot de passe utilisateur mais au lieu de -u, vous devez spécifier -r. Un exemple de sortie :

root@kitploit:~
====================================
Périphérique sélectionné : GPU Tesla K80 (ID : 0)
====================================

...
Lecture du fichier de hachage "hash_recv_pass.txt"
$bitlocker$2$16$432dd19f37dd413a88552225628c8ae5$1048576$12$a0da3fc75f6cd30106000000$60$3e57c68216ef3d2b8139fdb0ec74254bdf453e688401e89b41cae7c250739a8b36edd4fe86a597b5823cf3e0f41c98f623b528960a4bee00c42131ef


====================================
Attaque
====================================

Type d'attaque : Mot de passe de récupération
Threads CUDA : 1024
Blocs CUDA : 1
Mots de passe par thread : 8
Max mots de passe par noyau : 8192
Dictionnaire : wordlist.txt
Vérification stricte (-s) : Non
Comparaison MAC (-m) : Non

Exécution du noyau CUDA :
	Mots de passe effectifs : 6014
	Plage de mots de passe :
		390775-218680-136708-700645-433191-416240-153241-612216
		.....
		090134-625383-540826-613283-563497-710369-160182-661364
	Temps : 193.358937 sec
	Mots de passe par seconde :    31.10 pw/sec


================================================
Attaque CUDA terminée
Mots de passe évalués : 6014
Mot de passe trouvé : 111683-110022-683298-209352-468105-648483-571252-334455
================================================

Faux positifs

Par défaut, BitCracker effectue une attaque rapide (pour les modes mot de passe utilisateur et de récupération) qui peut renvoyer quelques faux positifs. Dans ce cas, vous pouvez relancer votre attaque avec l'option -m qui active la vérification MAC (solution plus lente).

Exemples

Pour tester BitCracker sur votre système avant de commencer l'attaque réelle, nous avons fourni plusieurs images de périphériques de stockage chiffrés.

  • imgWin7 : BitLocker sur Windows 7 Édition Entreprise
  • imgWin8 : BitLocker sur Windows 8 Édition Entreprise
  • imgWin10Compat.vhd : BitLocker (mode compatible) sur Windows 10 Édition Pro
  • imgWin10NotCompat.vhd : BitLocker (mode non compatible) sur Windows 10 Édition Pro
  • imgWin10NotCompatLongPsw.vhd : BitLocker (mode non compatible) sur Windows 10 Édition Pro avec un mot de passe utilisateur plus long

Vous pouvez attaquer ces images avec les modes mot de passe utilisateur et de récupération, en utilisant les listes de mots de passe stockées dans le dossier Dictionary.

Performances

Nous présentons ici les meilleures performances de BitCracker dans le cas d'une attaque rapide (par défaut) sur le mot de passe utilisateur (option -u).

Performances :

N.B. Chaque mot de passe nécessite environ 2.097.152 SHA-256

John The Ripper

Nous avons publié BitCracker en tant que format OpenCL-BitLocker dans John The Ripper (--format=bitlocker-opencl). Les fichiers de hachage générés par bitcracker_hash (voir section How To) sont entièrement compatibles avec le format John.
Sur le GTV100, le taux de mots de passe est d'environ 3150 p/s. L'équipe JtR a développé la version CPU de cette attaque (--format=bitlocker); sur un CPU Intel(R) Xeon(R) v4 2.20GHz, le taux de mots de passe est d'environ 78 p/s.

Hashcat

Ce travail est en cours...

Changelog

Nov 2021 : Code mis à jour pour fonctionner sur GPU NVIDIA Ampere avec CUDA 11.x

Prochaines étapes

  • Fournir une implémentation multi-GPU
  • Fournir une interface Qt

Références, crédits et contacts

Partagez et testez notre projet : nous avons besoin de vos retours !

Un grand merci à l'équipe John The Ripper, aux projets Dislocker et LibBDE.

Ceci est un projet de recherche en collaboration avec le Conseil national de la recherche d'Italie, publié sous licence GPLv2.
Copyright (C) 2013-2021 Elena Ago (elena dot ago at gmail dot com) et Massimo Bernaschi (massimo dot bernaschi at gmail dot com)
Nous fournirons des informations supplémentaires sur l'attaque de BitCracker dans un futur article.

Bien que nous utilisions la licence GPLv2, nous sommes ouverts aux collaborations. Pour toute information supplémentaire, collaboration ou rapport de bogue, veuillez nous contacter ou ouvrir un problème.

Télécharger l’outil
Architecture GPUCUDA suggéréeMakefile
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
Acronyme GPUGPUArch.CC# SMFréquenceCUDA
GFTGeForce TitanKepler3.5148357.0
GTK80Tesla K80Kepler3.5138757.5
GFTXGeForce Titan XMaxwell5.22410017.5
GTP100Tesla P100Pascal6.15613288.0
GTV100Tesla V100Volta7.08012909.0
AMDMRadeon Malta-----
VersionGPU-t-bMots de passe par noyauMots de passe/sHachages/s
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