Skip to main content
Ataques de fuerza bruta con John the Ripper

Ataques de fuerza bruta con John the Ripper

John the Ripper es una herramienta utilizada para desencriptar contraseñas por fuerza bruta. Por defecto se basa en un diccionario de contraseñas propio aunque podemos descargar o crear uno propio y lanzarlo con el mismo.

Bienvenidos a un nuevo post en Bytemind. En el caso de hoy les vamos a enseñar una herramienta muy potente llamada John the Ripper.

 

¿Qué es John the Ripper?

John the Ripper es una herramienta utilizada para desencriptar contraseñas por fuerza bruta. Por defecto se basa en un diccionario de contraseñas propio aunque podemos descargar o crear uno propio y lanzarlo con el mismo.

Para encontrar una contraseña, lógicamente, es necesario que esta se encuentre en el diccionario, los cuales suelen basarse en las más usadas por los usuarios, aunque, podemos crear el nuestro personalizado como ya vimos en un post anterior con crunch.

La fuerza bruta consiste en probar con diferentes claves de forma reiterada hasta dar con la correcta.

En este caso, vamos a realizar un ejemplo sobre un usuario creado en nuestra propia máquina, ya que atacar a una máquina que no sea de nuestra propiedad es ilegal.

 

Instalación de John the Ripper

Por defecto, si utilizais Kali Linux, como es nuestro caso ya viene instalada por defecto. Si no es el caso podéis instalarla según vuestra distribución de la siguiente forma.

En el caso de distribuciones basadas en debian, como lo es ubuntu, tan sólo es necesario lanzar el siguiente comando:

 

En caso de utilizar distribuciones basadas en Red Hat, se deberá realizar la instalación del mismo mediante snap, a través de los siguientes comandos:

Instalamos epel si no lo tenemos:

Instalamos snap:

Habilitamos el socket de snap:

Creamos un enlace simbólico a snap en la raíz:

Y finalmente instalamos john:

 

Antes de empezar

Antes de continuar utilizando la herramienta, lo primero que deberemos de hacer es comprobar que funciona correctamente en nuestro sistema, para ello lanzaremos el siguiente comando:

Tardará un rato en completarse, y una vez realizado veremos una salida similar a la siguiente:

Ataques de fuerza bruta con John the Ripper

Completado el test podemos comenzar a realizar las pruebas que teníamos previstas, pero vamos a ver la ayuda del comando y algunas opciones antes de continuar.

La ayuda del mismo podemos verla mediante el siguiente comando:

 

 

Prueba 1: Crackeo de contraseña de usuario en linux por fuerza bruta

Una vez instalada y testeada la herramienta podemos empezar por un caso real, por ejemplo, cargar directamente el archivo “/etc/shadow” y probar a descifrar contraseñas. Pero, para este caso de ejemplo, vamos a crear un fichero con la clave de un usuario muy simple para hacer de forma rápida esta prueba.

Para realizar la prueba vamos a crear un fichero de texto en el directorio que deseemos e incluiremos en el mismo el siguiente contenido:

Ahora ejecutaremos john sobre el fichero que acabamos de crear:

El comando tardará un rato dependiendo de la complejidad de la contraseña y veremos al final un resultado similar al siguiente:

 

Obtenida la contraseña podemos verla utilizando el siguiente comando:

Como podemos apreciar, hemos descifrado la contraseña “example” del usuario indicado en el fichero de contraseñas.

 

Prueba 2: Crackeo de contraseña de usuario en linux por ataque de diccionario

Crearemos entonces un diccionario para realizar el ataque, en nuestro caso hemos hecho un diccionario muy simple que incluye el siguiente contenido:

Ahora ejecutaremos john de nuevo con la opción –wordlist para indicarle que utilice el diccionario que acabamos de crear, quedando el comando de la siguiente forma:

Y al igual que en el anterior caso, pasado un tiempo nos encontrará la contraseña del fichero que podremos ver con el comando:

 

Y esto ha sido todo por el momento, como hemos visto John es una herramienta muy potente y que puede resultar muy útil en según que casos. Pero como siempre menciono, esto sólo se indica con fines educativos, no nos hacemos responsables de cualquier acto ilegal cometido con la ayuda de las entradas realizadas en este blog.

Si tienen dudas o desean exponer sus propias opiniones al respecto tienen a su disposición la sección de comentarios.

 

14 thoughts on “Ataques de fuerza bruta con John the Ripper

    1. Hola Antonio,

      En ese caso puedes utilizar el script de bitcoin2john.py incluido en el mismo repositorio de github para extraer el hash, te lo pongo como ejemplo

      ./bitcoin2john.py wallet.dat > hash.txt

      Y posteriormente utilizar john junto con tu diccionario para intentar obtener la clave.

      Saludos

  1. Hola,
    estoy intentando sacar la contrasena de una maquina virtual encriptada de VMware, utilice el vmx2john.py para generar el hash pero luego al intentar correr john hash.txt me arroja:
    Using default input encoding: UTF-8
    No password hashes loaded (see FAQ)
    Con otros hashes de archivos rar o zip si me detecta y hace el proceso normal.
    Agradecere alguna ayuda, Saludos!!

    1. Hola Jesús,

      En este caso te recomendaría revisar el formato de hash que te ha devuelvo vmx2john
      Para ello puedes utilizar la opción –list=format-all-details para ver un ejemplo del formato que debería tener el hash, te dejo un ejemplo a continuación

      $ john --list=format-all-details|grep vmx
      Format label vmx
      Example ciphertext $vmx$1$0$0$10000$514fb565d74db333352661023874f07d$81dc8986e299d55dee724198a572619b87de0b96501dd2285fbe928c831446fb92c056e02e6ca0119213e9cf094222c0e4d0df6f014615c915412cb0c892d4528070ead0d2443d0c457a7db445fd17b060899033a5c69d43315abd3d262ad3570379c12c97fc2490d7a42b04f99a24386f27aa56

      Otra opción es que utilices hashcat para ello, el cual tiene un modo para vmware

      $ hashcat --help|grep -i vm
      27400 | VMware VMX (PBKDF2-HMAC-SHA1 + AES-256-CBC) | Full-Disk Encryption (FDE)

      Con hashcat un ejemplo de como debería ser el comando sería este:
      $ hashcat -m 27400 hash.txt DICTIONARY

      Espero haber sido de ayuda y si sigue dando problemas no dudes en preguntar de nuevo.

      Saludos

      1. Hola de nuevo. Primero muchas gracias por tu respuesta!!

        No me es muy familiar trabajar con linux por lo que estoy desde windows, pero obtengo el mismo problema al intentar desde una maquina virtual con Kali-linux.
        El resultado de vmx2john es yo diria correcto ya que se parece al ejemplo que pone john.
        ————————-
        este.vmx-Windows XP Professional:$vmx$1$0$0$1000$b’54f78d090dc99cfc5e5a384afa977ad5’$b’3974d5f028dacae4f1b295646a4c4353e4656faab3be229743632b9c2146825a7df2e43a5d525cdb21e391e5767827a57dbf36cebff0bb40c41bfb7ffec5dd97b6c162a9dac729aba78960ce2564f28ec071e38fd79f09e5cff7fe820309bbe139238e9a40b6eb8fb91985e6850748ff0d75db41′
        ————————-
        La VM es mia asi que no hay problema con postear el hash, olvide la contrasena jaja pero se que debe tener entre 6 y 8 caracteres

        Si john lograra leer el hash ya solo trataria con prefijos y/o bruteforce.

        Vi por ahi que podia ser la version de jonh pero tengo la ultima tanto en win como en linux, la john-1.9.0-jumbo-1

        El hash lo copie tal cual me lo genero vmx2john.py por lo que si lo copias a un archivo deberia de funcionarte supongo a ver que te marca
        Hashcat no entiendo bien como funciona por lo que de momento lo dejo como ultima opcion.
        Gracias!

        1. Hola Jesús,

          El problema viene por el formato que tiene el hash, es decir, el mismo ha incluido, para definir cada parte, el valor entre b” para indicar que son bytes.
          Acabo de revisar y probar el mismo, y aunque no tengo el diccionario adecuado eliminando esos caracteres permite tanto a john como a hashcat poder leer correctamente el hash y tratar de crackearlo.
          De todas formas te dejo aquí el hash sin los caracteres que indico
          vmx-Windows XP Professional:$vmx$1$0$0$1000$54f78d090dc99cfc5e5a384afa977ad5$3974d5f028dacae4f1b295646a4c4353e4656faab3be229743632b9c2146825a7df2e43a5d525cdb21e391e5767827a57dbf36cebff0bb40c41bfb7ffec5dd97b6c162a9dac729aba78960ce2564f28ec071e38fd79f09e5cff7fe820309bbe139238e9a40b6eb8fb91985e6850748ff0d75db41

          Prueba con el mismo y cualquier cosa estamos aqui para ayudarte en lo posible.

          Saludos

          1. Nuevamente Muchas gracias por tu respuesta
            Se logró!!! por lo menos una de las 2 maquinas que olvide jajaja pero es la mas importante.
            efectivamente al retirar esas “B” y los apostrofes ya me la reconoció el john.
            termine utilizando una sintaxis tipo:
            john -1=’werlkj123′ –mask=?1?1?1?1?1?1?1 hash.txt donde (werlkj123) son los caracteres que mas probablemente habría utilizado, para limitar el tiempo de la búsqueda.
            Solo por hacer una prueba también probé con otra maquina virtual de vmware encriptada de la cual si recuerdo la contraseña y de igual forma funcionó remover las “B”.
            Gracias y por cierto me voy a ocupar en tomar tu curso de python.
            saludos!!!

          2. Hola Jesús,

            Perfecto, buen trabajo, me alegro de que al final consiguieras obtener las credenciales.
            Gracias a ti por leernos y cualquier duda que tengas no dudes en preguntarnos.

            Saludos

  2. Buenas tardes.
    Estoy haciendo un laboratorio para cifrar las contraseñas con los pasos indicados anteriormente, cuando ejecuto el jhon me sale el siguiente mensaje.

    # john –wordlist=passwd.lst passwd.txt
    Using default input encoding: UTF-8
    No password hashes loaded (see FAQ)

    ya revise la versiòn del s.o y se encuentra en 1.9.0

    Muchas gracias

    1. Hola Javier,

      Cual es el contenido del fichero passwd.txt, tal vez el hash existente en el fichero esté mal formado y sea la razón por la que no está detectando el mismo.

      Saludos

    1. Hola Saul,

      En ese caso puedes utilizar el script de bitcoin2john.py incluido en el mismo repositorio de github para extraer el hash, te lo pongo como ejemplo

      ./bitcoin2john.py wallet.dat > hash.txt

      Y posteriormente utilizar john junto con tu diccionario para intentar obtener la clave.

      Saludos

  3. Estoy utilizando una VM de cisco@labvm: estoy tratando de ingresar el comando cd ~/Downloads/john-1.8.0/run y no lo reconoce. Es para un ejercicio de Cisco, soy nuevo en este tema, pero deseo aprender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.