Laboratorios: Hacking - Técnicas y contramedidas - Ataques por fuerza bruta (Brute Force) III
Continuemos entonces con la tercera práctica del laboratorio sobre brute force.
Recordemos antes la definicion:
En criptografía, se denomina ataque de fuerza bruta a la forma de recuperar una clave probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso.
Práctica 47 - John The Ripper para fuerza bruta a contraseñas “hasheadas” de Windows
Herramienta: John the Ripper - Windows, Linux
Prerequisitos: Contraseña “hasheada”
Contramedidas: Complejidad de contraseñas, políticas robustas de contraseñas
Descripción: John the Ripper es un programa de criptografía que aplica fuerza bruta para descifrar contraseñas. Es capaz de romper varios algoritmos de cifrado o hash, como DES, SHA-1 y otros.
Es una herramienta de seguridad muy popular, ya que permite a los administradores de sistemas comprobar que las contraseñas de los usuarios son suficientemente buenas.
John the Ripper es capaz de autodetectar el tipo de cifrado de entre muchos disponibles, y se puede personalizar su algoritmo de prueba de contraseñas. Eso ha hecho que sea uno de los más usados en este campo.
Características:
- Optimizado para muchos modelos de procesador.
- Funciona en muchas arquitecturas y sistemas operativos.
- Ataques de diccionario y por fuerza bruta.
- Muy personalizable (es software libre).
- Permite definir el rango de letras que se usará para construir las palabras, y las longitudes.
- Permite parar el proceso, y continuarlo más adelante.
- Permite incluir reglas en el diccionario para decir cómo han de hacerse las variaciones tipográficas.
- Se puede automatizar; por ejemplo, ponerlo en cron.
Procedimiento: Descargar y ejecutar la herramienta (John the Ripper usa un ataque por diccionario: tiene un diccionario con palabras que pueden ser contraseñas típicas, y las va probando todas. Para cada palabra, la cifra y la compara con el hash a descifrar. Si coinciden, es que la palabra era la correcta.
Esto funciona bien porque la mayor parte de las contraseñas que usa la gente son palabras de diccionario. Pero John the Ripper también prueba con variaciones de estas palabras: les añade números, signos, mayúsculas y minúsculas, cambia letras, combina palabras, etc.
Además ofrece el típico sistema de fuerza bruta en el que se prueban todas las combinaciones posibles, sean palabras o no. Éste es el sistema más lento, y usado sólo en casos concretos, ya que los sistemas anteriores (el ataque por diccionario) ya permiten descubrir muy rápidamente las contraseñas débiles.)
Veamos:
Descargamos la herramienta desde la web oficial del proyecto
Después de descargar, descomprimimos el archivo y accedemos a el desde la línea de comandos
En una ventana paralela abriremos una línea de comandos para hacer uso de la herramienta PwDump, con ella extraeremos los hashes de las contraseñas de Windows a auditar. (Método utilizado caso de no tener el archivo de contraseñas hasheadas).
En este caso auditaré las contraseñas almacenadas en mi equipo local. (en próximos laboratorios tocaremos más a fondo el uso de la herramienta pwdump). Además guardaremos el resultado en un archivo de texto plano llamado “passwords_hash.txt”
Verificamos el resultado del dump de passwords abriendo el archivo de texto plano
Luego de tener el archivo de contraseñas “hasheadas” (requisito de este laboratorio), procedemos a auditar las contraseñas mediante ataque de diccionario (recomendado en primera instancia).
john-386 –wordlist=password.lst passwords_hash.txt
El tiempo en realizar este tipo de ataques depende de la longitud del diccionario, sumado a las reglas que le asignemos (Mayusculas, mínusculas, etc), generalmente es muy corto. (muy diferente a un ataque de fuerza bruta por combinación donde auditará con todas las combinaciones posibles de letras, números, signos, etc.)
Pasamos luego a ordenarle a la herramienta que nos muestre los resultados:
Contundentes !!! (los resultados dependen de la personalización del archivo diccionario que tengamos, recomiendo utilizar palabras comunes como primera medida y luego ir aumentando la complejidad con base a los resultados obtenidos)
Las contraseñas desencriptadas serán mostradas en pantalla, los datos irán separados del signo (:).
- Nombre de usuario
- Contraseña
- ID del usuario
Es importante recordar que los usuarios llevan ligados un ID único, siendo el más importante el (500, administrador), puesto que el nombre de usuario (ej. Administrador), puede ser renombrado como vimos en: “Laboratorio: Hacking - Técnicas y contramedidas - Enumeración del objetivo I”
Veamos ahora como llevar a cabo esta auditoría desde Linux (BackTrack).
Dejamos de lado la instalación de John the Ripper, pues esta herramienta viene incluída en la distribución (motivo por el cual escogí esta distro para los laboratorios), aunque la instalación no varía mucho de otras herramientas (descomprimir, make generic)
Nos ubicamos en la carpeta contenedora de la herramienta john the ripper (usr/local/john) y allí guardamos una copia del archivo de contraseñas “hasheadas” (passwords_hash.txt)
Ejecutamos ahora la herramienta, utilizando un diccionario (password.lst)
Podemos “reforzar” el análisis con la orden john -i passwords_hash.txt (fuerza bruta)
Finalmente le decimos a la herramienta que nos muestre en pantalla los resultados de la auditoría (john -show passwords_hash.txt)
Al igual que en Windows la auditoria no demoró más de 2 segundos.
Taller individual:
Darle a las contraseñas de Windows un alto grado de complejidad y llevar a cabo una auditoria de las mismas.
Consultar y determinar otros usos de la herramienta John The Ripper.
Próxima sesión: Ataques por fuerza bruta (brute Force) IV