share

CRACKING DE CONTRASEÑAS CON JOHN THE RIPPER

CONTRASEÑAS

Para el cracking de contraseñas se utilizan máquinas especiales, muy potentes que tienen varios procesadores y tarjetas gráficas trabajando en paralelo, con mucha memoria RAM. Estas máquinas son herramientas muy usadas en auditoría de seguridad, para saber la seguridad de las contraseñas del cliente.

En la empresa auditada se suele suministrar información adicional al auditor para comprobar el cumplimiento normativo de contraseñas. Con esta información se acorta mucho el proceso de cracking.

Para el cracking de contraseñas , tenemos 2 herramientas básicas:

  1. John the ripper / Johnny
  2. Hastag

Hastag es una herramienta profesional de alto nivel que no funciona si no se usa en máquinas superpotentes.

Ahora hay que aprender algo muy importante, y es como funcionan las contraseñas en los equipos informáticos. Las contraseñas no se almacenan en texto plano en los sistemas. Si hay algo que tiene que estar ultra encriptado es una contraseña. Al fin y al cabo, el funcionamiento de las contraseñas debe ser que el usuario teclea la suya y el sistema compara lo tecleado, para lo cual, las contraseñas se han de almacenar encriptadas como es lógico.

¿Cómo se almacena una contraseña?. Utilizando una función, llamada función hash que las codifica. Existen varias funciones hash.

  1. MDS (en desuso)
  2. SHA (existen varios tipos)
  3. LM (de windows, implementación chapucera)
  4. NTLM (mejora sobre LM)
  5. Hash de Linux

Una función hash ha de cumplir las siguientes propiedades:

  1. La cadena de salida ha de ser de longitud fija
  2. No existe función inversa. Tomando el hash no se puede obtener la contraseña.
  3. Una entrada solo puede producir una salid. Es pues una aplicación biyectiva.

Se dice que hay una colisión de hash cuando dos entradas distintas producen la misma salida. Una función de hash que no presenta colisiones es:

SHA-2-512

Cuando el usuario mete su contraseña, por ejemplo «pepe» el sistema calcula la función de hash para «pepe», lo cual ha de ser una cadena. Esta se compara con una tabla del sistema operativo, alojada en un archivo que es público y se puede consultar, y que básicamente tiene dos entradas.

USUARIO         HASH DE SU CONTRASEÑA

La aparición de la contraseña en el sistema sólo ocurre cuando el usuario la teclea, y ahí está el peligro sobre todo cuando se utilizan técnicas de ingeniería social para engañar al usuario.

PLANTEAMIENTO DE UN ATAQUE CON JOHN THE RIPPER

La idea es la siguiente: de una máquina Linux Mint vamos a tomar el archivo de contraseñas y vamos a intentar crackearlo con John the Ripper. Para ello lo copiamos en un pendrive y lo llevamos a alguna de nuestras máquinas de ataque como por ejemplo Kali o Parrot.

Para los que os estéis introduciendo en el mundo del hacking, tenéis que saber que lo primero que necesitáis es un portátil con el laboratorio. Bueno, mas que hacking, vamos a decir seguridad informática. Pues bien, necesitáis un portátil con lo que se llama el laboratorio, es decir el conjunto de máquinas virtuales y utilidades que vamos a instalar para desarrollar nuestra actividad de aprendizaje. Mi laboratorio personal se puede ver aquí.

En primer lugar hay que saber donde están y como se llaman los archivos de usuarios/contraseñas en Linux:

usuarios -> /etc/passwd

hash -> /etc/shadow

La idea para crackear es copiar el archivo shadow en un pendrive y luego pasarle el john, no al archivo del pendrive, sino a una copia de este que nos llevaremos a una carpeta de la máquina atacante. Esto es así porque el john marca archivos crakeados y no pueden volver a crakearse. Por eso, para probar, lo haremos siempre con copias.

Los modos de trabajo de John the Ripper son:

  1. single
  2. wordlist
  3. incrmental

Single, usa determinadas funciones dentro del john para acortar los crakeos por fuerza bruta.

Wordlist es el mejor método porque usa un diccionario

Incremental, utiliza las dos técnicas anteriores.

Existe otra herramienta llamada hydra que crakea por fuerza bruta un servidor web.

Johnny es una versión gráfica de John the Ripper. Para ejecutarla, abrimos un terminal desde Parrot o Kali y tecleamos:

> johnny

John de Ripper es una herramienta CLI o Command Line Interface, y se ejecuta en un terminal.

La idea es no tener que usar nunca el ataque por fuerza bruta, porque salvo que tengamos unas máquinas muy potentes, los tiempos se nos van de las manos.

Existen dos herramientas auxiliares para ayudarnos a crakear contraseñas con el john.

una es el crunch, que sirve para crear diccionarios, y la otra es un archivo CHARSET.LST que delimita el ámbito del ataque ahorrando así tiempo, siempre y cuando tengamos pistas sobre la estructura de las contraseñas.

Pero eso ya será en otro post. Os dejo un vídeo con la manera práctica de usar el john.