Blocky Write-Up

Fecha de lanzamiento21 Jul 2017
EstadoRetirada
DificultadEasy
PlataformaLinux
IP10.10.10.37

Información de la máquina


RECONOCIMIENTO

Vemos que nmap nos reporta que hay cuatro puertos abiertos en la máquina, 21, 22, 80 y 25565.

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn -oG allPorts 10.10.10.37
nmap -sCV -p21,22,80,25565 -oN targeted 10.10.10.37

Enumeración FTP

En este caso, nmap no nos ha reportado que podamos iniciar sesión de forma anónima en el servidor FTP. Actualmente no tenemos credenciales válidas así que tenemos que descartar esta vía.

Realizando una búsqueda de exploits para la versión que esta corriendo (ProFTPD 1.3.5A), pero no existe ningún exploit para esa versión que podamos correr sin habernos autenticado antes.

Parece ser que el servidor FTP no es la vía principal de entrada y lo dejaremos de momento para volver en caso de que obtengamos credenciales válidas.

Enumeración Web

Corriendo la herramienta WhatWeb, observamos en las cabeceras de respuesta un código 302 que nos redirige a blocky.htb. Nuestra máquina no sabe como resolver ese dominio, por lo que vamos a tener que añadirlo al archivo /etc/hosts.

Volviendo a correr la herramienta, podemos ver que se está usando WordPress como gestor de contenido, y tenemos también la versión:

Realizando fuerza bruta de directorios con herramientas como wfuzz y gobuster, descubrimos los siguientes:

wfuzz -c --hc=404 -t 100 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://blocky.htb/FUZZ/ -f wfuzz.txt

gobuster dir -u http://blocky.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories-lowercase.txt -t 100 -r -o fuzzinggo.txt

Analizando estos directorios, encontramos dentro de /plugins dos archivos con extensión .jar. Nos los vamos a descargar para poder analizarlos de forma local.

Vamos a abrir el primero con la herramienta jd-gui (podemos installarla mediante apt install jd-gui). Vemos que es un archivo pequeño que contiene únicamente una clase, con una serie de Strings declaradas. Tenemos entonces un posible usuario y contraseña que vamos a guardarnos.

Además, sabiendo que es un WordPress, existe una herramienta de escaneo de vulnerabilidades de WordPress llamada wpscan. Si la corremos, además de ver que existen numerosos plugins vulnerables, nos reporta un nombre de usuario: Notch.

wpscan --url http://blocky.htb -e vp,u

Con esta información, ya podemos obtener una shell de diferentes formas. Vamos a ver la más sencilla.

EXPLOTACIÓN

Conexión SSH

Sabemos que tenemos un usuario a nivel de WordPress llamado Notch, pero no tenemos constancia de que este usuario exista a nivel de sistema. Si observamos la versión de SSH, vemos que es OpenSSH 7.2p2. Si buscamos exploits para esta versión, vemos un script en Python que nos permite verificar si un usuario existe en el sistema o no.

Nos vamos a copiar este exploit y vamos a ejecutarlo. Podemos verificar que efectivamente, NOTCH es un usuario válido a nivel de sistema.

Si utilizamos la contraseña filtrada por el archivo .jar , vemos que podemos obtener una sesión como el usuario Notch.

sshpass -p 8YsqfCTnvxAUeduzjNSXe22 ssh notch@10.10.10.37

La escalada es muy, muy sencilla. Vemos que estamos dentro del grupo SUDO. Y además conocemos la contraseña del usuario. Únicamente tenemos que escalar privilegios otorgando la contraseña del usuario Notch.

Ya tenemos máximos privilegios en el sistema y podemos ver la información de las dos flags de HTB y reportarlas.

Jorge Escrito por: