Crackea contraseñas rápidamente usando John the Ripper

John the Ripper es uno de los programas más famosos y utilizados para crackear contraseñas en sistemas operativos Windows, Linux y también MacOS. Este programa es de código abierto y está orientado específicamente a crackear contraseñas por fuerza bruta y también por diccionario, es capaz de crackear los hashes de las contraseñas muy rápido (depende de la potencia del procesador de tu ordenador), y su utilización es realmente sencilla. Hoy en RedesZone os vamos a explicar todo sobre John the Ripper, uno de los programas más usados para crackear contraseñas.

¿Qué es John the Ripper?

Para aquellos que aún no lo conozcan, John the Ripper es una herramienta de crackeo de contraseñas escrita en C y muy utilizada por los analistas de seguridad para comprobar la robustez de una clave frente a ataques de fuerza bruta. Este programa es capaz de romper los hashes MD5, SHA-1 y otros muchos ampliamente utilizados en el mundo informático. Este programa es capaz de detectar de forma automática el tipo de hash que estamos crackeando, con el objetivo de facilitar al usuario su crackeo sin necesidad de preocuparse por el tipo de hash que está intentando «romper».

Algunas características muy importantes de este programa es que está optimizado para muchos modelos de procesadores, funciona en muchas arquitecturas de PC y también en diferentes sistemas operativos, no obstante, generalmente se utiliza en sistemas operativos basados en Linux, de hecho, las principales distribuciones Linux orientadas al pentesting y a la seguridad informática ya incorporan de forma predeterminada este programa.

Este programa es muy personalizable, nos permite definir la longitud a probar de una contraseña, para generar todas las combinaciones posibles y lograr el objetivo de crackear el hash. También nos permite configurar qué rango de letras, números o símbolos podemos probar para descifrar la contraseña, además, también permite incluir reglas para decidir cómo deben hacerse las diferentes variaciones.

John the Ripper permite pausar el crackeo de la contraseña y continuarlo en otro momento, esto es algo ideal por si tenemos que apagar nuestro PC o servidor, además, se puede automatizar para empezar a crackear una determinada contraseña al arrancar nuestro ordenador, y todo ello de forma automática sin necesidad de intervención del administrador de sistemas.

Ataques por diccionario

Este programa nos permite crackear contraseñas por diccionario, si nos descargamos uno o varios diccionarios de contraseñas de Internet de varias decenas de GB, la herramienta se encargará de probar todas y cada una de estas claves para intentar crackear el hash de la contraseña. El proceso consiste en generar el hash de cada contraseña, para posteriormente comparar el hash que queremos romper, si el hash es el mismo entonces hemos descubierto la contraseña, si el hash no coincide entonces no es la clave y tendremos que seguir probando. Podremos crackear las contraseñas que estén contenidas en los diccionarios de claves de forma completamente automatizada.

Un aspecto destacable es que no solamente prueba las claves de los diccionarios, sino que también añade números, mayúsculas, minúsculas y símbolos a las palabras que le ponemos como «entrada», además, también es capaz de combinar palabras para probar aún más combinaciones de contraseñas y dar con la clave utilizada.

Ataque de fuerza bruta

El ataque por fuerza bruta consiste en probar todas las combinaciones de letras, números y símbolos de una clave con una determinada longitud. Este método es el más lento porque probará todas las combinaciones, y puede tardar horas, días e incluso años en crackear contraseñas con una cierta longitud. Por lo general, crackear una contraseña de más de 12 caracteres nos llevará muchísimo tiempo haciéndolo por fuerza bruta, por tanto, debes tenerlo muy en cuenta.

Este programa nos permite configurar este ataque de fuerza bruta, le indicaremos que pruebe solo letras, letras y números, e incluso añadir símbolos. Cuantos más caracteres de «entrada» tengamos, más tardará en probar todas las combinaciones de contraseñas posibles, por lo que deberemos tenerlo muy en cuenta a la hora de configurar la entrada.

Una vez que ya conocemos qué es John the Ripper y sus dos modos de funcionamiento, vamos a ver cómo puede utilizar un administrador de sistemas este programa para comprobar la seguridad de la clave del equipo. De esta forma, comprobaremos si somos vulnerables a un ataque de fuerza bruta o diccionario por parte de un pirata informático que busca obtener acceso remoto (o local) al mismo.

Instalación y prueba de rendimiento

Actualmente este programa está disponible en todos los repositorios de las principales distribuciones de sistemas operativos Linux, por tanto, lo podremos instalar de forma fácil y rápida sin problemas. En caso de que no esté disponible para tu distribución, siempre vas a poder añadirlo posteriormente editando el archivo de los repositorios. En este tutorial vamos a hacer uso de un sistema operativo Ubuntu para la instalación del programa.

sudo apt install john

John The Ripper Crackear Contraseñas tutorial foto 1Una vez instalada la herramienta en nuestro sistema operativo, ya podremos utilizarla y empezar a crackear contraseñas, no obstante, sería muy recomendable antes de empezar a crackear claves, realizar una prueba rápida de velocidad de nuestro ordenador.

Probar el rendimiento en nuestro PC

Antes de empezar con el crackeo de las contraseñas podemos lanzar un sencillo test de rendimiento donde se pondrá a prueba nuestro hardware. De esta manera, podremos saber la velocidad con la que la herramienta probará claves con diferentes tipos de cifrado utilizando el 100% de nuestra CPU. Para ello simplemente abrimos un terminal Linux y tecleamos:

john --test

John The Ripper Crackear Contraseñas tutorial foto 2Como podemos ver, se llevan a cabo una serie de tests donde se medirá el rendimiento, esto nos puede dar una idea en general de la potencia de procesamiento de nuestro ordenador, con el objetivo de probar todas las combinaciones de letras, números y símbolos en el menor tiempo posible.

Crackear contraseñas por fuerza bruta

Una vez instalada la herramienta y realizado el test de rendimiento ya podemos empezar con un caso real. Podemos optar por cargar directamente el archivo «/etc/shadow» que contiene las contraseñas de Linux y crackearlas, sin embargo, en este ejemplo vamos a crear un documento manualmente con un usuario y una contraseña y le indicaremos a John que lo crackee. Vamos a hacer esto por tres razones:

  • Para no comprometer realmente nuestro sistema.
  • Para obtener los resultados lo más rápidamente posible (vamos a utilizar una clave muy simple como ejemplo).
  • Para tener una primera toma de contacto con la herramienta y familiarizarnos con ella.

Para ello creamos un nuevo archivo de texto llamado «password.txt», por ejemplo, en nuestra carpeta personal de Ubuntu con el siguiente contenido:

user:AZl.zWwxIh15Q

A continuación, vamos a indicar a John que empiece a trabajar para crackear la contraseña del archivo anterior. Para ello tecleamos:

john password.txt

La herramienta empezará a trabajar.

John The Ripper Crackear Contraseñas tutorial foto 3Debemos esperar a que esta herramienta consiga crackear la contraseña del anterior archivo. Este proceso puede tardar horas e incluso días según la dificultad de la misma. Cuando el proceso finalice veremos un resultado similar al siguiente.

John The Ripper Crackear Contraseñas tutorial foto 4Nuestra contraseña está crackeada. Para verla simplemente debemos utilizar el comando –show de la siguiente manera:

john --show password.txt

John The Ripper Crackear Contraseñas tutorial foto 5Nuestra contraseña era «example». Ya podemos intentar iniciar sesión en el sistema con el usuario «user» y la contraseña «example», o por lo menos, podríamos hacerlo si hubiéramos trabajado directamente con el fichero /etc/shadow, aunque el tiempo de crackeo hubiera tardado mucho más que varios minutos.

Más adelante veremos cómo utilizar esta misma herramienta, pero para crackear contraseñas utilizando un diccionario como fuente de claves. Para finalizar os vamos a dejar un pequeño reto para practicar con este programa, copiando exactamente un caso práctico de un archivo /etc/shadow:

redeszone:$6$85X6KHD9$10GCEYlO7fVYKh4kIIaiEN37zCB/ROaG1hYmLYane90m1teephQHEhWVx/grdlB/cgg/1cfEuMIt2UUIllQkI.

Una vez que hemos aprendido a crackear contraseñas por fuerza bruta, vamos a probar a crackear contraseñas por diccionario.

Crackear contraseñas usando un diccionario de claves

Al igual que en el tutorial anterior, en este caso vamos a partir de una clave de ejemplo que hemos guardado a mano en un documento llamado «password.txt«:

user:AZl.zWwxIh15Q

A continuación, lo que tenemos que hacer es tener o crear un diccionario de claves personalizado. Podemos descargar estos diccionarios de Internet, pero para hacer las primeras pruebas del programa vamos a crear nosotros un diccionario sencillo, al que llamaremos «passwords.lst» y en el que introduciremos varios valores, cada uno en una línea, pero siendo uno de ellos la palabra «example» (ya que corresponde con nuestra contraseña).

John the Ripper contraseñas diccionario foto 1A continuación, simplemente debemos ejecutar John the Ripper con el parámetro –wordlist= seguido de la ruta de nuestro archivo. Os ponemos un ejemplo con los dos archivos que hemos generado (el de la contraseña cifrada y el diccionario):

john --wordlist=passwords.lst password.txt

John the Ripper contraseñas diccionario foto 2Al tener una clave sencilla y pocas entradas del diccionario, el proceso será prácticamente instantáneo. Ya hemos crackeado, o descifrado, la contraseña. Lo único que nos queda por hacer es utilizar el parámetro –show para que nos muestre el resultado.

john --show password.txt

John the Ripper contraseñas diccionario foto 3Tal y como habéis visto, crackear contraseñas con John the Ripper es realmente sencillo, la rapidez del crackeo dependerá de nuestro procesador, el método empleado para intentar crackear las contraseñas, y también la complejidad y la longitud de la contraseña que queramos crackear. Otro programa que os recomendamos para crackear contraseñas es Hashcat, un programa bastante más avanzado que este programa, pero bastante más complejo de utilizar si no te lees la documentación oficial, además, este programa Hashcat nos permite utilizar la potencia de los procesadores de las tarjetas gráficas (GPU) para probar millones de contraseñas por segundo.