Cómo recuperar una semilla mnemónica 15 17 19 21 de blockchain.info - Keychainx - Recuperamos criptoactivos perdidos
08.05.2021
KeychainX

Cómo recuperar una semilla mnemónica 15 17 19 21 de blockchain.info

Cómo recuperar una semilla mnemónica 15 17 19 21 de blockchain.info

Bienvenidos al infierno mnemónico.
El 19 de diciembre de 2020, Miguel Cuneta (@MiguelCuneta) / Twitter tuiteó: “Ayudando a un amigo a recuperar su antigua cartera de blockchain de 2013. Cruzando los dedos por él porque los $ 50 que ganó en nuestras apuestas de UFC ahora son más de $ 3000”

Miguel nos envió 17 palabras, un wallet.aes.json y un montón de pistas, como el nombre de su amigo, el año y mes en que creó la cartera y algunas variaciones de la contraseña.
Inmediatamente comenzamos a forzar la contraseña mediante el uso de algoritmos personalizados y nuestros servidores de descifrado de contraseñas personalizados. Pero ¡qué poco sabíamos sobre cómo serían las las próximas semanas!
Incluso con las pistas más simples, nuestro algoritmo puede encontrar una contraseña de cartera de Bitcoin con hasta varios errores agregando caracteres aleatorios en el medio, eliminando caracteres y anteponiendo o añadiendo caracteres y palabras aleatorios.

En la mayoría de los casos, esto funcionará si las sugerencias se acercan a la contraseña final. Teníamos buenas esperanzas, ya que la cartera en sí era una cartera blockchain.info V1 de que podríamos probar casi 300 millones de contraseñas diferentes por segundo. En un gran servidor de GPU. Y tenemos muchos …



¡Que comience la batalla!

Lo intentamos con pura fuerza bruta. Nuestro algoritmo probó todas las combinaciones posibles hasta 13 caracteres, pero sin suerte.
Pasó una semana. Pensamos que debía haber otra forma de conseguir entrar en la cartera.
Afortunadamente, Miguel nos envió una secuencia de 17 palabras llamada semilla mnemotécnica. Desafortunadamente, ya no es compatible con blockchain.com. En su lugar, ahora usan 12 palabras mnemónicas de una lista de 2048 palabras que es su clave privada encriptada.

El viejo mnemotécnico era el ID y contraseña de su cartera encriptados usando una variedad de palabras. Pero la lista de palabras no se encontraba por ninguna parte. Pueden tener entre 15 y 21 palabras o más. Tenían tres variaciones de encriptación diferentes y usaban una iteración diferente (las veces que la contraseña se encriptaba usando ese algoritmo específico). Las semillas mnemotécnicas tradicionales utilizadas con las carteras Ledger, Trezor, Electrum o Bitcoin Core eran de 12 o 24 palabras (a veces con una palabra número 13 o 25 llamada “frase de contraseña” o “
passphrase”)

Utilizando ingeniería inversa a la antigua, buscamos
snapshots antiguos de blockchain.info en archive.org y encontramos una de 2014 que aceptaría esas palabras.
Desafortunadamente, nos dio una suma de verificación incorrecta. Y no tenía una copia de todas las bibliotecas.

 

——archive.org——

 

Archive.org es un gran recurso para comprobar variaciones antiguas o sitios web obsoletos. Desafortunadamente, no es una copia de seguridad completa al 100%.

Usando las herramientas de desarrollo web de Google Chrome, miramos lo que hacía el script java, ¡y descubrimos que estaban usando una lista de palabras defectuosa de alrededor de 50000 palabras! El mnemónico que se usa hoy en día con las semillas de recuperación de cartera de blockchain.com solo usa 2048 palabras diferentes. También descubrimos que usaron dos listas de palabras diferentes para descifrar sus carteras en 2014. Una para calcular la suma de verificación y la otra para calcular la ID y la contraseña de la cartera. Entonces, ¿qué otro uso tenía la longitud del mnemónico?

Las semillas con más palabras eran para contraseñas más largas …
Así que volvamos a Miguel y su amigo. Las 17 palabras nos dieron una suma de verificación incorrecta, por lo que decidimos echar un vistazo a la página GITHUB de blockchain.com donde almacenan todos sus códigos fuente.
Desafortunadamente, el código para las cartera V1 ya no estaba disponible, así que tuvimos que buscarlo en otro sitio, sólo sabiendo el nombre de la lista de palabras más grande del snapshot de archive.org de 2014.

Google, a veces, puede ser de gran ayuda. Encontramos un Github oculto con el código fuente de la cartera anterior usando esa lista de palabras más grande, pero las 17 palabras todavía nos daban una suma de verificación incorrecta.
Así que decidimos escribir una fuerza bruta mnemotécnica usando GPU´s (una fuerza bruta para los mnemónicos de Trezor usando 2048 palabras fue un verdadero reto de romper, necesitábamos crear una fuerza bruta con 50000 variaciones de cada palabra).

Entonces, teníamos 17 palabras. Cada palabra puede tener 50000 combinaciones.
Luego, 3 de las palabras eran una suma de verificación de una lista de palabras totalmente diferente.
En lugar de preocuparnos por la cantidad de combinaciones, decidimos examinar lo que nos daría cada grupo de palabras. Conseguimos recuperar la palabra Jesp y 1980, que formaban parte de las pistas. Con eso supimos que estábamos bien encaminados.
Otro lote de palabras nos dio 0301, que era un mes y una fecha de cumpleaños, que también estaba en la lista de pistas.

Así que decidimos poner al azar palabras de la lista de 50000 palabras donde el grupo de palabras nos dio caracteres raros que no eran en inglés (las pistas eran todos caracteres numéricos o nombres de palabras en inglés)

Pero 300 líneas de código más tarde …

Knockeado!

Logramos encontrar la combinación correcta de palabras, resultó que al amigo de Miguel le faltaba una palabra.
Ahora la suma de verificación era correcta usando una combinación de 18 palabras, y pudimos descifrar wallet.aes.json con la contraseña que encontró nuestra herramienta personalizada.

¡La apuesta de la UFC ganó, y recuperamos el Bitcoin de 2014!
Debemos agradecérselo a Max de KeychainX PRO (https://keychainx.com) que vio el Tweet y se comunicó con Miguel en nuestro nombre.

LECCIÓN APRENDIDA.

Aunque muchos afirman que no hay nemotécnicos de 15, 17, 19 o 21 palabras, y que ya no es posible usarlos o descifrarlos, les demostramos que estaban equivocados. Hay varios mnemónicos de números impares utilizados en las primeras carteras de blockchain.info y es posible recuperarlos.