Saltar al contenido
cd ..
HTBEXP-0001
RESUELTA

Blocky

Linux Fácil 12 min de lectura
WordPressJavaSSH
ZEZenthikjun 2026

Writeup en video

Recorrido completo de Blocky: del reconocimiento a la raíz, paso a paso.

Blocky — HackTheBox

Writeup de la máquina Blocky (HackTheBox · Linux · Fácil) por c4skd. Del reconocimiento a la intrusión, paso a paso. Las IPs reales se omiten a propósito (<IP HTB>): reemplazalas por la IP de tu instancia.

Fase 1 · Recopilación de información (OSINT)

Lo primero fue comprobar si la máquina estaba activa dentro de la red. Para eso envié un único paquete ICMP con ping:

ping -c 1 <IP HTB>

Ping a la máquina

Fase 2 · Escaneo y enumeración

Hacemos un escaneo con nmap para ver qué puertos están abiertos:

nmap -p- --open --min-rate 5000 -n -Pn -v -sS <IP HTB>

Escaneo de todos los puertos

Nos indica que están abiertos los puertos 21, 22, 80, 25565. Ahora hacemos un escaneo más específico para saber qué corre en cada uno:

nmap -p21,22,80,25565 --min-rate 5000 -n -Pn -v -sCV <IP HTB>

Escaneo de servicios y versiones

Esto dio información interesante: hay un servidor de Minecraft corriendo en el puerto 25565 (el que se usa para eso) y se está aplicando virtual hosting en el puerto 80. Toca agregar la IP en /etc/hosts para que nuestra máquina sepa a dónde resolver:

Agregando blocky.htb a /etc/hosts

Con esto podemos empezar a enumerar el puerto 80.

Sitio web — portada

Sitio web — entrada

Lo primero que vemos es un post:

Posts
Posted on July 2, 2017
Welcome to BlockyCraft!

Welcome everyone. The site and server are still under construction so don't
expect too much right now!

We are currently developing a wiki system for the server and a core plugin to
track player stats and stuff. Lots of great stuff planned for the future :)

El sitio está en construcción y están desarrollando una wiki y un core plugin que registra estadísticas del jugador, entre otras cosas. Listar ese plugin podría ser interesante.

Otro dato: abajo se indica que el sitio corre sobre WordPress, cosa que también nos confirmó la extensión Wappalyzer.

WordPress detectado por Wappalyzer

Como no hay mucho más con qué interactuar, hacemos fuzzing de directorios para encontrar dónde seguir buscando:

ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt:FUZZ -u http://blocky.htb/FUZZ -t 500

Fuzzing de directorios con ffuf

El escaneo detectó varios directorios:

plugins        # 200 OK
wp-includes    # 200 OK
javascript     # 200 OK
wp-admin       # 200 OK
phpmyadmin     # 200 OK
wiki           # 301
wp-content     # 301

Si abrimos /plugins vemos dos archivos .jar. Los descargamos para analizarlos a fondo:

Archivos .jar en /plugins

Para examinarlos cómodamente usamos jd-gui, una herramienta para abrir archivos .jar de forma visual:

Decompilando el .jar con jd-gui

Credencial en texto plano dentro del plugin

El plugin está en desarrollo y almacena la credencial en texto plano — una mala práctica que nos permite empezar a movernos lateralmente.

Volviendo a las rutas del fuzzing, hay una interesante: phpmyadmin. La revisamos:

Panel de phpMyAdmin

Probamos con las credenciales encontradas y ganamos acceso al panel de administración:

Login en phpMyAdmin

Dentro del panel

En la base de datos de WordPress hay un usuario Notch y una contraseña que podríamos usar para conectarnos por SSH:

Usuario Notch en la base de datos

Con esa contraseña no entra, pero probando la credencial que ya teníamos del plugin ingresamos por SSH sin problema. Acá completamos la primera parte de la máquina y encontramos la flag de usuario:

Flag de usuario

Fase 3 · Escalada de privilegios

Empezamos viendo en qué grupos estamos con id:

id

Salida del comando id

Estamos en el grupo sudo, así que solo hay que migrar al usuario administrador; nos pedirá nuestra propia contraseña:

sudo su

Escalada con sudo su

Y esa sería la intrusión de la máquina. 🚩

Máquina comprometida

Lecciones

  • Nunca guardes credenciales en texto plano dentro del código (el .jar del plugin las exponía). Usá variables de entorno o un gestor de secretos.
  • No reutilices contraseñas entre servicios: la misma credencial servía para phpMyAdmin y para SSH.
  • Reduce la superficie expuesta: phpmyadmin y los .jar no deberían ser accesibles públicamente.
  • Principio de mínimo privilegio: tener al usuario de servicio en el grupo sudo convirtió un foothold en root directo.