home..

Hacking en Directorio Activo - Exfiltración en carpetas compartidas con Hashes NTLM

Si solo quieres los comandos, te dejo el GitBook.

En una auditora reciente, me encontré con el escenario en donde se obtuvieron Hashes NTLM de un usuario Administrador local, el cual era utilizado por el departamento de soporte para poder atender fallas y solicitudes.

Dicho usuario se encontraba varios equipos utilizando la misma contraseña, sin embargo, debido al User Acces Control, no era posible la ejecución remota de comandos; recordé que en la empresa donde trabaje antes un compañero/amigo tuvo un caso similar, el Usuario y Hash eran validos en varios servidores, pero sin ejecución de comandos y se dejo en, hasta ahí, no se puede hacer más.

Pero... realmente hay varias cosas que pueden ser utiles.


Ejecución Remota de Comandos

Este es el escenario perfecto para cualquier PenetrationTester, obtienes un Pwn3d! lo cual significa que puedes ejecutar comandos remotos en el sistema víctima.

crackmapexec smb 172.16.18.3 -u Administrator -H fcdc65703dd2b0bd789977f1f3eeaecf -x 'ipconfig' --exec-method wmiexec

Sin embargo, puede darse el caso en donde únicamente nos aparezca que el acceso es correcto [+], sin poder ejecutar comando dentro del sistema.


Busqueda de Carpetas Compartidas

En un entorno de directorio activo, es casi seguro encontrar carpetas compartidas en los dispositivos de usuarios e incluso servidores, teniendo el acceso de un usuario de dominio o un administrador local, a pesar de no tener ejecución remota de comandos, aun es posible acceder a los recursos compartidos utilizando estas credenciales.

Haciendo uso de Crackmapexec y la flag --shares, es posible realizar un barrido con el usuario y contraseña|Hash, para identificar si existen carpetas compartidas y a cuales se tiene acceso.

crackmapexec smb 172.16.18.0/24 -u lcarreto -H 07F9517EE5EC7AF77A0186C5CF6C2D26:F26A7BB31A9481C9DFBC5E538023F53D --shares

En lo personal recomiendo hacer dos cambios al comando anterior, primero, no realizar este tipo pruebas con Hashes a segmentos completos de red, en lugar de ello realizarlo a las IPs que se encontraron en una fase de reconocimiento; Suponiendo que en un segmento 172.16.18.0/23 solo existan 10 host activos, se enviaran 500 paquetes en un par de segundos, lo cual podría alertar sobre un comportamiento anómala dentro de la red, pero si se utiliza un archivo con las 10 IPs, se realizara relativamente poco ruido en la red.

Segundo, utilizar la flag -t numero_hilos y utilizar un numero bajo de hilos o paquetes enviados en paralelo, si en el reconocimiento se detectaron 300 IPs se enviaran una gran cantidad de paquetes por segundo, al realizar esto el barrido sera mucho mas lento, pero seria menos probable el ser detectados o generar alertas.

crackmapexec -t 1 smb ips.txt -u lcarreto -H 07F9517EE5EC7AF77A0186C5CF6C2D26:F26A7BB31A9481C9DFBC5E538023F53D --shares

Hasta ahora todo parece ir muy bien, sin embargo, es posible encontrar una gran cantidad de carpetas en las cuales, algunas seran carpetas por defecto como IPC$, PRINT$,FAX$ en donde es poco probable encontrar información relevante y en otras no se tendrá permisos de lectura o escritura.

Sin embargo, es posible hacer uso de Bash para poder limpiar la salida que devuelve crackmapexec, utilizando grep y el parámetro -v se pueden eliminar carpetas como IPC$ y Print$, una vez eliminados estos recursos se puede filtrar por aquellos en donde se tengan permisos de lectura o escritura con el parámetro grep -i -E 'read|write', lo cual nos dara una salida mucha mas limpia.

crackmapexec -t 1 smb ips.txt -u lcarreto -H 07F9517EE5EC7AF77A0186C5CF6C2D26:F26A7BB31A9481C9DFBC5E538023F53D --shares  | grep -v 'IPC\$' | grep -i -E 'read|write'


Acceso a Carpetas Compartidas

Teniendo las carpetas a las cuales se puede acceder, quedaría realizar una revisión manual a carpetas con nombres interesantes como Backups, escaneos, etc, en la imagen anterior se observa que existe una carpeta llamada backups a la cual se tiene acceso de lectura.

La herramienta smbclient tiene la opción de acceder a carpetas utilizando el Hash NTcon el parametro --pw-nt-hash, lo cual permite acceder a dichas carpetas compartidas y a sus archivos.

smbclient //172.16.18.3/Backups -U lcarreto --pw-nt-hash F26A7BB31A9481C9DFBC5E538023F53D -W eagle.local

Como se menciono al inicio, en un ambiente de directorio es casi seguro encontrarse con una gran cantidad de usuarios o servidores con carpetas compartidas, en donde a pesar no tener ejecución de comandos, es posible tener acceso a las carpetas compartidas para extraer información sensible para la organización.

Recomendaciones

Happy Hacking!! L.C

© 2024 L. C.   •  Powered by Soopr   •  Theme  Moonwalk