Recuperación de Wallets Cripto

Ataque de diccionario offline: cómo recuperar tu frase semilla de Monero paso a paso

Introducción

Perder la frase semilla de una cartera Monero es una de las situaciones más angustiosas para cualquier usuario de criptomonedas. A diferencia de una contraseña olvidada, la semilla es la única llave maestra que controla tus fondos. Sin ella, el acceso se vuelve imposible... a menos que recurras a técnicas forenses como el ataque de diccionario offline.

Este artículo explica qué es un ataque de diccionario offline, cómo aplicarlo específicamente para recuperar una frase semilla de Monero y qué herramientas y precauciones debes considerar. El objetivo no es enseñarte a robar carteras ajenas, sino a recuperar tu propia semilla cuando la memoria falla o los apuntes se han perdido parcialmente.

Advertencia legal y ética: Utiliza estas técnicas únicamente en carteras de tu propiedad. Atacar carteras de terceros sin consentimiento es ilegal y contrario a la ética.

¿Qué es un ataque de diccionario offline y por qué funciona con Monero?

Un ataque de diccionario offline consiste en probar sistemáticamente una lista de palabras candidatas (un diccionario) contra un objetivo criptográfico, sin conexión a internet. En el contexto de Monero, el objetivo es reconstruir una frase semilla de 25 palabras (formato mnemónico BIP39 o Monero nativo) que genere la misma clave privada que la cartera original.

Monero utiliza un esquema de derivación de claves basado en Keccak-256 y Curve25519, pero la semilla mnemónica sigue un estándar similar a BIP39: cada palabra representa 11 bits de entropía. Si conoces parcialmente tu semilla (por ejemplo, 20 de 25 palabras, o sabes que una palabra es una de cuatro posibles), un ataque de diccionario dirigido puede probar combinaciones de las palabras faltantes.

¿Cuándo es viable?

  • Conoces la mayoría de las palabras (más del 80%).
  • Sospechas que una o dos palabras están mal escritas o pertenecen a un conjunto reducido (nombres propios, números, etc.).
  • Tienes una lista de posibles palabras extraídas de tus notas o recuerdos.
  • Posees la dirección pública o una clave de vista para verificar rápidamente si la semilla candidata es correcta.

Limitaciones

  • Si no recuerdas ninguna palabra, el espacio de búsqueda es de 2048^25, imposible de recorrer.
  • Cada intento requiere derivar claves y verificar contra la dirección, lo que consume CPU/GPU.
  • Monero usa 25 palabras (a diferencia de las 12-24 de Bitcoin), lo que añade una palabra de checksum.

Herramientas y metodología para el ataque offline

ataque de diccionario offline

Existen herramientas de código abierto diseñadas para recuperación de semillas. Las más relevantes para Monero son:

  • Monero Seed Recovery (scripts en Python)
  • BTCRecover (soporta Monero con el plugin adecuado)
  • Hashcat (modo 26600 para Monero, pero requiere adaptación)
  • John the Ripper (con formatos personalizados)

Paso 1: Reúne toda la información posible

Antes de lanzar cualquier ataque, documenta:

  • Palabras que recuerdas con certeza.
  • Posiciones de las palabras dudosas.
  • Lista de palabras candidatas para cada posición (puedes generar variaciones de una palabra mal escrita).
  • Dirección pública de la cartera (para verificación).
  • Si tienes la clave de vista privada, mejor: permite verificar sin necesidad de la clave de gasto.

Paso 2: Construye el diccionario personalizado

No uses el diccionario completo de 2048 palabras para cada posición. Crea un diccionario reducido por posición:

  • Si sabes que la palabra 5 es "apple" o "apricot", incluye solo esas dos.
  • Si sospechas que una palabra está mal escrita, incluye variaciones fonéticas o de teclado.
  • Si recuerdas que la palabra 12 empieza por "ca", filtra el diccionario BIP39 por ese prefijo.

Paso 3: Ejecuta el ataque offline

Usa una herramienta como monero-seed-recovery o un script personalizado en Python con la librería monero o mnemonic. El flujo típico es:

ataque de diccionario offline

  1. Generar combinaciones de las palabras faltantes.
  2. Derivar la clave privada de gasto (o la clave de vista).
  3. Comparar con la dirección pública o con la clave de vista conocida.
  4. Si coincide, has recuperado la semilla.

Ejemplo simplificado en pseudocódigo:

from monero.seed import Seed
from monero.wallet import Wallet

palabras_conocidas = ["...", "..."]  # 20 palabras
candidatas_posicion_21 = ["apple", "apricot", "banana"]
candidatas_posicion_22 = ["cat", "dog"]

direccion_objetivo = "48..."

for w21 in candidatas_posicion_21:
    for w22 in candidatas_posicion_22:
        semilla = " ".join(palabras_conocidas + [w21, w22] + ["...", "...", "..."])
        try:
            seed = Seed(semilla)
            wallet = Wallet(seed)
            if wallet.address() == direccion_objetivo:
                print(f"¡Semilla encontrada! {semilla}")
                break
        except:

![ataque de diccionario offline](/assets/upload/12/5d95bdfa8499401e904368952195cb63_800_600.jpg)

            continue

Paso 4: Optimiza con GPU

Si el espacio de búsqueda es grande (millones de combinaciones), usar CPU es lento. Puedes adaptar Hashcat o John the Ripper para que trabajen con el algoritmo de derivación de Monero. Ten en cuenta que Monero es memory-hard (usa CryptoNight), lo que dificulta la aceleración por GPU, pero para semillas mnemónicas la derivación es más ligera (solo Keccak y Curve25519).

Consideraciones de seguridad y buenas prácticas

Realizar un ataque de diccionario offline requiere un entorno seguro. Sigue estas recomendaciones:

  • Aísla el equipo: Usa una máquina virtual o un ordenador sin conexión a internet (air-gapped).
  • Nunca introduzcas la semilla en un sitio web o en una herramienta online. Todo debe ser local.
  • Verifica las herramientas: Descarga solo de repositorios oficiales y revisa el código.
  • Haz copias de seguridad: Antes de manipular cualquier cartera, asegúrate de tener una copia de la dirección y, si es posible, de la clave de vista.
  • No compartas tu semilla ni siquiera en foros de ayuda. Si necesitas asistencia, pide que te guíen sin revelar tus palabras.

Consejo: Si finalmente recuperas la semilla, transfiere los fondos a una cartera nueva y guarda la nueva semilla en múltiples ubicaciones seguras (papel, metal, etc.).

Conclusión

El ataque de diccionario offline es una técnica forense poderosa para recuperar frases semilla de Monero cuando se tiene información parcial. No es una solución mágica: requiere paciencia, una buena estrategia de reducción del espacio de búsqueda y un entorno seguro. Si sigues los pasos descritos y utilizas las herramientas adecuadas, puedes recuperar el acceso a tus fondos sin depender de terceros.

Recuerda que la mejor defensa es la prevención: guarda tu semilla en múltiples copias físicas, nunca la digitalices en dispositivos conectados y verifica periódicamente que puedes restaurar tu cartera. La seguridad de tus Monero está en tus manos.


Este artículo tiene fines educativos. El autor no se hace responsable del uso indebido de las técnicas descritas.