Como sacar contraseñas de ficheros con John the Ripper Jumbo en Windows
Como sacar contraseñas de ficheros con John the Ripper Jumbo en Windows
¡Hola a todos de nuevo! Es un placer estar aquí con vosotros una vez más para compartir más conceptos de seguridad informática. En esta ocasión vamos a ver como se le puede hacer un ataque de fuerza bruta a un fichero para sacarle la contraseña con el software John the Ripper en su edición Jumbo. Este software funciona tanto en Linux como en Windows, aunque para este artículo usaremos solamente los binarios de Windows.
Conseguiremos sacar la contraseña de un fichero ZIP y también la de mi certificado digital, y al final del artículo sacaremos las contraseñas de dos ordenadores Windows a través de los hashes NTLM que conseguimos en el artículo anterior:
Pero antes de nada…
¡Aviso!
¡Aviso!
Veamos una breve introducción para entender de qué trata todo esto…
¿Que tienen de especial los Ataques de Fuerza Bruta?
¿Que tienen de especial los Ataques de Fuerza Bruta?
Pues que, de forma teórica, con la fuerza bruta se pueden obtener todas las contraseñas, es decir, no importa lo larga, compleja, oscura, arcana o retorcida que sea tu contraseña, que al final se puede sacar por la fuerza.
¿Cómo funcionan?
¿Cómo funcionan?
Consisten en probar todas las combinaciones posibles hasta hallar con la contraseña correcta. En la mayoría de casos (contraseñas de más de 8 caracteres) la fuerza bruta pura y dura empieza a ser costosa, y se prueban solo unas pocas combinaciones de caracteres, que es lo que se conoce como ataque de fuerza bruta por diccionario. Un diccionario no es más que un fichero de texto con una sola palabra en cada línea. En este artículo realizaremos ataques con diccionario.
¿Qué voy a mostrar?
¿Qué voy a mostrar?
1) Por un lado, el peligro que conlleva usar una contraseña común o débil para proteger un fichero, ya que sería muy fácil para otra persona obtener la contraseña usando un software de fuerza bruta que se puede descargar cualquiera, como por ejemplo John the Ripper.
2) Por otro lado, mostrar como este software puede servir de ayuda para recuperar una contraseña que se le haya puesto a un fichero y que luego no se recuerde, para no tener que estar probando una contraseña detrás de otra directamente sobre el fichero.
Si queréis saber cómo se pueden hacer ataques de fuerza bruta sobre servicios de red tipo FTP, SSH, HTTP… , os recuerdo que el compañero Dark publicó un artículo utilizando herramientas como Hydra o Medusa.
¿Más información?
¿Más información?
Para mayor información sobre los ataques de fuerza bruta, definiciones técnicas, limites teóricos, otro software disponible, etc., os remito al artículo en inglés de la Wikipedia: https://en.wikipedia.org/wiki/Brute-force_attack
John the Ripper Jumbo in Action
John the Ripper Jumbo in Action
Para poder sacar contraseñas de ficheros necesitamos descargar los binarios de la última versión JUMBO para Windows (ahora mismo es la 1.8.0) desde su página web: http://www.openwall.com/john/
NOTA: Este programa es totalmente legal, pero existe cierto tipo de malware que lo descarga y utiliza para extraer contraseñas de un sistema. Por tanto, la descarga de este fichero puede ser bloqueada por un proveedor de Internet, puede ser identificada como una amenaza por un detector de intrusos, y hasta puede hacer saltar un antivirus configurado con un alto nivel de paranoia.
Una vez que lo tenemos descargado hay que descomprimir el fichero. De su contenido usaremos lo que hay en la carpeta “run”.
Battle 1:
Battle 1:
John VS Archivos ZIP
John VS Archivos ZIP
Con John the Ripper podemos intentar recuperar la contraseña de un fichero ZIP utilizando la fuerza bruta. Para ver un ejemplo podemos comprimir un fichero cualquiera.
1) Crear un fichero de texto:
2) Comprimirlo con contraseña:
Para ello usaré el software 7-ZIP: https://www.7-zip.org/download.html
Dejaré todos los parámetros por defecto y lo protegeré con una contraseña débil, por ejemplo “password”.
El proceso para obtener la contraseña por fuerza bruta del fichero recién creado FLAG.zip es el siguiente:
1) Extraer la contraseña en formato “john”:
En este caso las “pinzas” que usaremos para la extracción de contraseñas en bruto, o “conversión a formato john”, será el ejecutable zip2john.
Para ello se le pasa el ejecutable zip2john.exe al fichero FLAG.zip, y la salida se guarda en un fichero con extensión .john, aunque la extensión podría ser cualquiera.
El comando utilizado es:
zip2john.exe FLAG.zip > FLAG.john
(Sí, mi consola de Windows es verde. Le da un rollo … pizarril)
zip2john.exe FLAG.zip > FLAG.john
El fichero resultante FLAG.john contiene la contraseña en formato “john”, es decir, el formato que necesita John the Ripper para poder hacerle el ataque de fuerza bruta.
Si encontramos que el fichero .john resultante está vacío después de la ejecución, es porque el proceso de extracción ha fallado y no se ha conseguido sacar ninguna contraseña del fichero.
2) Usar la fuerza bruta sobre la contraseña en formato “john”:
Para ello se le pasa el ejecutable john.exe al fichero FLAG.john.
El comando utilizado:
john.exe FLAG.john
john.exe FLAG.john
Veamos como lo ha hecho: El comando john.exe utiliza el diccionario de palabras que tiene por defecto, llamado “password.lst”, y la palabra “password” está de las primeras.
Podéis revisar este fichero para haceros una idea de lo que es una contraseña débil o de uso común. Veamos otro ejemplo de cómo se puede sacar una contraseña de un fichero, utilizando un (mi) certificado digital.
Battle 2:
Battle 2:
John VS Certificados Digitales
John VS Certificados Digitales
True story: en serio, de verdad se me ha olvidado la contraseña de mi certificado digital, así que le he realizado un pequeño ataque de fuerza bruta para intentar recuperarla.
El proceso siempre es el mismo, remember:
1) Extraer la contraseña en formato “john”:
Uso el ejecutable pfx2john.exe sobre mi certificado digital, Arquillo.p12 (Un fichero .p12 es lo mismo que un .pfx), y la salida se guarda en un fichero con extensión .john.
El comando utilizado es:
pfx2john.exe Arquillo.p12 > Arquillo.john
pfx2john.exe Arquillo.p12 > Arquillo.john
2) Usar la fuerza bruta sobre la contraseña en formato “john”:
Para ello se le pasa el ejecutable john.exe al fichero Arquillo.john.
El comando utilizado:
john.exe Arquillo.john
john.exe Arquillo.john
¿No encuentra la contraseña? MENOS MAL que no la ha encontrado, porque eso indicaría que mi contraseña está dentro del fichero password.lst de John the Ripper, y que cualquiera que utilice este software podría sacarme la contraseña.
3) …en este caso necesito un paso adicional para encontrar mi contraseña:
Voy a añadir al fichero password.lst todas las contraseñas que recuerde haber usado alguna vez.
Una vez que añado mis contraseñas al final del fichero password.lst vuelvo a ejecutar john.exe sobre el fichero Arquillo.john, y en esta ocasión SÍ que encuentra la contraseña de mi certificado digital, la cual oculto en color rojo por razones evidentes.
¡¡La tenemos!! ¡¡Siiiiiiiiiiiiiiiiuuuuuuhhhhh!!
Y después de esta orgía de fuerza bruta sobre ficheros, vamos a finalizar por donde lo dejamos en el último artículo, sacando unas (mis) contraseñas de Windows.
Battle 3:
Battle 3:
John VS Contraseñas de Windows
John VS Contraseñas de Windows
En el artículo del Bad PDF conseguimos sacar el usuario y el hash de la contraseña de 2 PCs Windows de forma remota, utilizando una vulnerabilidad reciente en los ficheros PDF, que se suma a la lista de vulnerabilidades sin parchear que a día de hoy tienen estos ficheros.
Estas contraseñas fueron recibidas por Responder, que guardó las contraseñas en formato “john” en ficheros de texto, y por tanto no es necesario el paso 1 (Extraer las contraseñas en formato “john”). El ejecutable john.exe lee los ficheros de texto, detecta que son hashes en formato NTLM y realiza el ataque de fuerza bruta.
Manos a la obra: utilizo entonces el ejecutable john.exe directamente sobre los ficheros con los hashes. Como ya he añadido mis contraseñas habituales al fichero password.lst, John the Ripper las encuentra rápidamente.
1) La contraseña del primer PC
El comando utilizado:
john.exe SMB-NTLMv2-SSP-192.168.8.100.txt
john.exe SMB-NTLMv2-SSP-192.168.8.100.txt
2) La contraseña del segundo PC
El comando utilizado:
john.exe SMBv2-NTLMv2-SSP-192.168.8.103.txt
john.exe SMBv2-NTLMv2-SSP-192.168.8.103.txt
¿Qué otras posibilidades tiene este software?
¿Qué otras posibilidades tiene este software?
Echadle un vistazo a la carpeta “run” y veréis todos los formatos que se pueden convertir a formato “john”. Algunos conversores son ejecutables “exe” (como zip2john.exe y pfx2john.exe) y otros son scripts “py” que solo se pueden ejecutar si se tiene instalado Python.
Si sois programadores de Python podéis colaborar en la creación y mantenimiento del proyecto John the Ripper en su repositorio de GitHub: https://github.com/magnumripper/JohnTheRipper
¿Y si no sabemos nada de la contraseña?
¿Y si no sabemos nada de la contraseña?
Aquí es donde viene la verdadera magia de la fuerza bruta. Hemos visto el uso básico de John the Ripper con el diccionario básico “password.lst”, pero se pueden usar otros distintos con la opción “-w otrodiccionario.txt”. Para encontrar contraseñas total o parcialmente desconocidas existen multitud de opciones, técnicas y diccionarios específicos y genéricos que se pueden encontrar en Internet. Muchos de estos diccionarios han sido creados a partir de fallas de seguridad en empresas donde se han visto expuestas las contraseñas de los usuarios.
Por ejemplo, se pueden encontrar algunos diccionarios dentro de las listas del proyecto SecLists de OWASP:
Hasta pronto
y…
y…