domingo, 18 de mayo de 2008

comandos de interes III: John

Hoy he asistido a un seminario de seguridad en sistemas linux, y hemos estado jugueteando con una herramienta muy potente y muy popular para romper ficheros de password en diferentes encriptaciones. Este artículo no está escrito para que hagais un mal uso de la herramienta, sino que esta orientado a que podais comprobar lo dificil o fácil que lo tendría un atacante para romper los password que usas o en el caso de que administres máquinas, los password de tus usuarios.

Jonh The Ripper password cracker

John the Ripper es un crackeador de claves muy rápido, está disponible en muchos Unix, DOS, Hasefroch32, BeOS y OpenVMS. Su principal función es un detectar claves débiles de Unix, pero puede analizar claves hash de varios sabores Unix, Kerberos AFS y Hasefroch NT/2000/XP LM hashes, y otros muchos parches disponibles en la Red.

En este momento John NO se puede ejecutar en paralelo, por lo que la efectividad de la resolución de la clave se ve limitada a la capacidad del PC en el que se ejecuta, el autor asegura que está trabajando en ello. Un proyecto muy interesante en cuanto al procesado en paralelo y la obtención de claves es http://www.cisiar.org/proyectos/cisilia/home_es.php este puede resolver contraseñas de Hasefroch NT/2000/XP ó Samba y Unix mediante los algoritmos DES/MD4 y MD5 respectivamente, lo único que necesita para poder funcionar es un clúster y el software que está en la web (apenas 1Mega), y con la facilidad de montar un clúster con knoppix-clúster puede ser una opción cuando te juntes con los amigos en red Lan.

Obteniendo el John

  • En http://www.openwall.com/Owl/ venden el CD oficial de OpenWall "Owl CD's" o bien lo puedes descargar de la misma web, donde vienen muchas de las soluciones que provee openwall para la seguridad.




  • Debian GNU/Linux, EnGarde Linux, Gentoo Linux, Mandrake Linux, y SuSE Linux. Hay colecciones de ports/packages para FreeBSD, NetBSD, y OpenBSD.



Importante: Normalmente las instalaciones de binarios o paquetes (Debian...) NO tienen los parches incorporados, esto significa que no están todas las posibles funcionalidades del John. Los parches son estos:

Los puedes descargar de aquí, la aplicación del parche elegido requiere necesariamente de las sources del john y su posterior instalación, únicamente debes descomprimir el parche en /src (en el código fuente del Jonh) y aplicar el parche como viene indicado en el FAQ del parche.

Usando el John

Las configuraciones se guardan en /usr/share/john/ y el programa debe ejecutarse como root (al menos en Debian).
Los ficheros *.chr y el john.conf son necesarios para que funcione el programa, cuando lo instalé desde el código fuente estos ficheros no estaban, los tuve que pillar de la instalación del binario.


Existen tres formas de aplicar el John:

  • WordList (archivo de palabras): Este es el modo más simple, todo lo que necesitas hacer es especificar un archivo que contenga una palabra por línea.




john -wordfile:NOMBRE_FICHERO FICHERO_PASSWORD

o bien puedes añadirle -rules para que "juegue" con las palabras del diccionario

john -w:FICHERO_DICCIONARIO -rules FICHERO_PASSWORD

  • SigleCrack: Este es el modo con el que deberías comenzar a crackear. Este modo intentará usar la información de login/GECOS



john -single FICHERO_PASSWORD

  • Incremental (fuerza bruta): El más potente, ya que probará todas las combinaciones de caracteres posibles. Necesitas indicar la longitud de la clave y los juegos de caracteres.





john -i FICHERO_PASSWORD

puedes especificar que caracteres usará con este método y la longitud, las configuraciones están en el fichero john.conf en la sección [incremental:MODO]

john -i:Alpha FICHERO_PASSWORD (a..z - 26 caracteres)
john -i:All FICHERO_PASSWORD (todo - 95 caracteres)
john -i:Digits FICHERO_PASSWORD (0..9 - 10caracteres)

  • Externo: Mediante funciones en un sublenguaje de C podrás crear palabras que luego usará John.




john -external:NOMBRE_MODO FICHERO_PASSWORD

Detalles

Una vez finalizado la operación, las claves obtenidas se guardan en john.pot, para visualizarlas:
john -show FICHERO_PASSWORD

Para seguir con un crackeo pausado se hace con:
john -restore FICHERO_PASSWORD

Es importante indicar al john que tipo de crackeo quieres efectuar con -format:
john -i:alpha -format:NT
FICHERO_PASSWORD (prueba de 5 a 8 caracteres con a...z para claves de Hasefroch NT/2000/XP, debes tener el parche al respecto).

Es importante que si obtienes la clave le informes al usuario de que posee una clave débil y debe cambiarla, para esta posibilidad el john trae mailer que permite mandar un mail al usuario afectado.

En $:/usr/share/doc/john# tienes toda la documentación al respecto en perfecto inglés, si te parece un poco liosa y prefieres leerlo en español puedes mirar aquí.

No hay comentarios: