Retrouver un mot de passe de wallet bitcoin en bruteforce GPU

L’avantage d’un bruteforce GPU est qu’il est beaucoup plus efficace que par CPU, l’outil présenté ici gère les deux mais je vais ajouter une courte procédure afin d’installer le dépendance pour faire tourner le tout en GPU sous Windows 10 pour une version en X64.

On va utiliser le projet btcrecover.py disponible sur : https://github.com/gurnec/btcrecover

L’outil supporte un grand nombre d’options de récupération qui va d’une seed à une clé privé d’un wallet bitcoin core (wallet.dat)
Dans le billet je vais présenté une procédure pour retrouver une clé privé d’un wallet.dat extrait depuis bitcoin core.
Pour le tuto j’utilise git bash : https://gitforwindows.org/

Installer les pré-requis

Début des tests de btcrecovery via GPU

Les pré-requis sont installé on peut débuter les test,

git clone https://github.com/gurnec/btcrecover
cd btcrecover

Copier/Coller votre wallet.dat dans le dossier « btcrecover » puis créer un fichier texte (tokens.txt) permettant de fixer les règles de bruteforce dans le dossier « btcrecovery ».

Le fichier doit contenir vos règles pour générer les mots de passe ainsi je peux fournir quelques exemples de syntaxes :

  • ^toto : sera obligatoirement en début
  • $toto : sera obligatoirement à la fin
  • ^2^toto : sera obligatoirement en deuxième position
  • ^,^ : sera obligatoirement au milieu
  • toto TOTO : sera soit l’un soit l’autre
  • %s : permet de faire un espace
  • %d : indique un chiffre
  • %0,2d : entre 0 et 2 chiffres

L’ensemble des syntaxes est disponible sur : https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md

On peut vérifier notre syntaxe avec un visuel sur les mot de passe généré :

python btcrecover.py --tokenlist tokens.txt --listpass

Si ma clé est privé est par exemple : low password02
Je peux faire cette syntaxe en supposant que je ne me rappel plus exactement de ma syntaxe,

tokens.txt

^low low%s #la clé privé démarre forcement par low ou low avec un espace
password%1,2d #la clée privé aura password quelque part et un ou deux nombre accollé ensuite

On constate que 442 mots de passe vont être testé

l’idée étant de réduire le nombre de possibilité pour réduire le temps de bruteforce en étant plus précis je peux précisé que password sera en deuxieme position, je passe ainsi à 222 password combinations possible.

Pour l’exemple ca peut paraître ridicule mais dans un cas pratique être le plus précis possible maximise vos chances d’éviter un bruteforce de 30 jours ;)

tokens.txt

^low low%s #la clé privé démarre forcement par low ou low avec un espace
^2^password%1,2d #la clée privé aura password en deuxieme position et un ou deux nombre accollé ensuite

Durant la phase de démarrage btcrecover analyse le total de mdp à essayer, vous pouvez ignorer cette phase ainsi que la duplication de mot de passe, je vous renvois à la doc btcrecovery pour plus de détails (–no-dupchecks –no-eta)
On peut également sauvegarder la progression avec : –autosave savefile.sav et –restore savefile.sav pour relancer

Lorsque l’on est sur de son patern on peut lancer le bruteforce avec la ligne de commande :

python btcrecover.py --tokenlist tokens.txt --wallet tuto.dat --enable-gpu --no-dupchecks --no-eta --utf8

Laisser un commentaire