Talent DockerLabs (Intermediate)
Contexto de la maquina
Trayectoria Talent

Descripción
Talent es una máquina Linux vulnerable que expone un servicio web basado en WordPress. El escenario comienza con una fase de enumeración del CMS donde se identifican usuarios y plugins instalados. Posteriormente se descubre que uno de los plugins instalados es vulnerable, lo que permite comprometer la sesión del usuario administrador.
Una vez obtenido acceso administrativo al panel de WordPress, se consigue ejecución remota de código mediante modificación de archivos del tema, lo que permite obtener una reverse shell como www-data. A partir de ahí, se abusa de una configuración insegura en sudo que permite ejecutar python3 como otro usuario, y finalmente se explota una mala configuración de permisos sobre un script ejecutable como root para escalar privilegios.
Objetivo del reto
El objetivo es comprometer completamente la máquina mediante:
Explotación de una vulnerabilidad en un plugin de WordPress.
Obtención de una reverse shell en el servidor.
Escalada lateral a otros usuarios del sistema.
Escalada final de privilegios hasta
root.
Tipo de máquina
Linux
Web (WordPress)
Escalada de privilegios mediante
sudoy permisos inseguros en el sistema.
Habilidades y técnicas evaluadas
Enumeración de servicios con Nmap.
Reconocimiento de CMS WordPress.
Uso de WPScan para enumeración de usuarios y plugins.
Explotación de vulnerabilidades en plugins de WordPress.
Secuestro de sesión mediante cookies.
Ejecución remota de código desde el panel de WordPress.
Obtención y estabilización de reverse shell.
Escalada lateral mediante configuraciones inseguras de
sudo.Escalada de privilegios mediante permisos de escritura en scripts ejecutados como
root.
Análisis de vulnerabilidades




Instalación
Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
Info:
Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.
Escaneo de puertos
Info:
Observamos que únicamente el puerto 80 está abierto, ejecutando un servidor Apache 2.4.41 en Ubuntu, y además el propio escaneo revela que el sitio está basado en WordPress 6.9.1.
Por lo tanto, accedemos al servicio web desde el navegador:
Respuesta:

wpscan (Wordpress)

Al inspeccionar el sitio web observamos que se trata de una instalación aparentemente estándar de WordPress.
Para continuar con la enumeración utilizamos la herramienta WPScan, especializada en auditorías de seguridad sobre WordPress.
Esta herramienta permite:
Enumerar usuarios
Detectar plugins
Identificar versiones vulnerables
Buscar configuraciones inseguras
Ejecutamos los siguientes comandos:
Respuesta:
Veremos que nos ha encontrado un usuario llamado admin, pero sobre todo vemos bastante interesante un plugin que nos ha detectado llamado pie-register, vamos a ver si hay alguna vulnerabilidad con la version que menciona dicho plugin pie-register v3.7.1.0.
CVE-2025-34077
Tras investigar un poco, encontramos que existe una vulnerabilidad identificada como CVE-2025-34077.
Esta vulnerabilidad afecta a versiones anteriores a la 3.7.1.4 del plugin Pie Register, por lo que la versión instalada (3.7.1.0) es vulnerable.
La explotación de esta vulnerabilidad permite secuestrar la sesión del administrador, obteniendo las cookies de autenticación del usuario admin.
PoC disponible en:
Exploit PoC:
URL = Exploit PoC GitHub CVE-2025-34077
Clonamos el repositorio:
Ejecutamos el exploit:
Respuesta:
El exploit ha funcionado correctamente y hemos obtenido las cookies de sesión del usuario administrador.
Esto nos permite suplantar la sesión del admin sin conocer su contraseña.
Agrega las cookies con los valores obtenidos:
Nombre:
wordpress_a2a379b8590d3431d7153bb3b68da0dfValor:
admin%7C1772886002%7CcRy3kxU0WMILzGXKM4LmPhAcItN3pivZLylXXE7BPSR%7C3c58bdb9acf33f2294f8f094bda39f31d17cb0080659b5d4eda41b6d6ed6d92bNombre:
wordpress_logged_in_a2a379b8590d3431d7153bb3b68da0dfValor:
admin%7C1772886002%7CcRy3kxU0WMILzGXKM4LmPhAcItN3pivZLylXXE7BPSR%7Cb4bb40d299b226cbf695f0fd5f9c7b6ea0cddf5d223c1ce0e9c7ecbd3be1c041
Debe quedar de la siguiente forma:

Una vez añadidas, recargamos la página.
Ahora veremos que el sistema nos reconoce como el usuario admin.

Si accedemos al perfil del usuario, veremos que tenemos acceso al panel de administración de WordPress.

Escalate user www-data

Una vez obtenido acceso al panel de administración de WordPress, podemos aprovechar la capacidad de editar archivos del tema activo para ejecutar código en el servidor.
Nos dirigimos a la siguiente ruta dentro del panel:
Dentro de esta sección, en el panel derecho seleccionaremos el archivo:
Este archivo forma parte del tema activo y se ejecuta dentro del contexto del servidor web, por lo que es un buen punto para inyectar código PHP malicioso.
Añadiremos al inicio del archivo la siguiente línea de PHP, que establecerá una reverse shell hacia nuestra máquina atacante:

Antes de guardar los cambios, debemos ponernos a la escucha desde nuestra máquina atacante utilizando netcat.
Una vez estemos a la escucha, pulsamos el botón Update File para guardar el archivo modificado.
Si volvemos a la terminal donde tenemos el listener activo, veremos que se establece una conexión entrante desde la máquina víctima:
Esto confirma que hemos obtenido acceso remoto al sistema como el usuario del servidor web www-data, sin embargo, la shell obtenida es bastante limitada, por lo que procederemos a sanitizarla para convertirla en una TTY interactiva funcional.
Sanitización de shell (TTY)
Con esto ya podremos leer la flag del usuario. (/home/flag.txt)
flag.txt
Escalate user bobby

Si hacemos sudo -l veremos lo siguiente:
Observamos algo interesante:
El usuario www-data puede ejecutar /usr/bin/python3 como el usuario bobby sin necesidad de contraseña.
Sin embargo, si comprobamos la existencia del binario:
Respuesta:
Esto indica que el binario no está instalado en el sistema, lo que impide aprovechar directamente este privilegio.
Además, desde la shell obtenida no tenemos permisos para escribir en /usr/bin, por lo que no podemos crear el binario manualmente.
Para solucionar esto, desde nuestro host manipularemos el contenedor Docker que está ejecutando la máquina vulnerable.
Primero identificamos el contenedor activo y una vez obtenido el ID del contenedor, ejecutamos el comando a ejecutar dentro del contenedor:
Esto instalará Python dentro del contenedor.
Ahora volvemos a la shell donde tenemos acceso como www-data y comprobamos nuevamente:
Respuesta:
Ahora el binario ya existe, por lo que podemos aprovechar el privilegio sudo.
Ejecutamos:
Respuesta:
Con esto hemos conseguido escalar privilegios y obtener una shell como el usuario bobby.
Escalate Privileges

Si hacemos sudo -l veremos lo siguiente:
Esto significa que bobby puede ejecutar el script /opt/backup.py como root utilizando python3.
Procedemos a inspeccionar el contenido del script.
backup.py
A simple vista, el script implementa un sistema de backups que comprime diferentes directorios del sistema utilizando tar.gz.
El código no presenta vulnerabilidades evidentes como command injection, por lo que analizamos el entorno donde se encuentra el archivo.
Listamos los permisos del directorio:
Observamos algo crítico:
Esto significa que cualquier usuario tiene permisos de escritura sobre el directorio /opt.
Por lo tanto, podemos modificar o reemplazar el script que será ejecutado como root.
Aprovechando esto, eliminaremos el script original y crearemos uno nuevo con el mismo nombre que nos otorgue una shell como root.
Ahora ejecutamos el script utilizando el privilegio sudo:
Respuesta:
Con esto hemos obtenido una shell como root, completando la escalada de privilegios.
Por lo tanto, damos por comprometida la máquina.
Last updated