Move - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | El Pingüino de Mario |
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.
Durante el escaneo, descubrimos que los siguientes puertos están activos:
22(SSH)80(HTTP)3000(Grafana) A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, además de obtener más información sobre los servicios asociados a esos puertos.
nmap -p 22,80,3000 -sCV 172.17.0.2 -oG targeted
Exploración Web
En el puerto 80, lo que observamos es la página por defecto de Apache.
Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles 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- Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.-u http://172.17.0.2/Especifica la URL objetivo que deseas escanear en busca de directorios.-wEspecifica que diccionario queremos usar-xPara indicar que tipo de extension queremos que nos encuentre
Encontramos una ruta llamada maintenance.html, que parece contener una ruta interesante: /tmp/pass.txt.
Vamos a revisar el puerto 3000.
Observamos que contiene una instalación de Grafana versión 8.3.0. Vamos a investigar si tiene alguna vulnerabilidad conocida.
Al parecer sí la tiene, así que buscamos el exploit utilizando searchsploit:
searchsploit grafana 8.3.0
Como podemos ver, existe un exploit disponible para nuestra versión. Lo copiamos a nuestra carpeta:
locate multiple/webapps/50581.py
cp /usr/share/exploitdb/exploits/multiple/webapps/50581.py exploit.py
Intrusion
Ejecutamos el exploit
python3 exploit.py -H http://172.17.0.2:3000
Vemos que hay un usuario llamado freddy. Como antes hemos visto la ruta /tmp/pass.txt, vamos a ver qué contiene.
Parece ser una contraseña. Vamos a intentar acceder a través de ssh con el usuario freddy:
ssh freddy@172.17.0.2
Escalada de Privilegios
Al ejecutar sudo -l, vemos que podemos ejecutar python3 como root en un archivo en /opt/maintenance.py.Utilizando GTFOBins sabemos cómo explotar estos binarios.
Al ver que permisos tiene ese archivo vemos que somos dueño del archivo por lo que podemos cambiar su contenido.
ls -la /opt/maintenance.py
Vamos a generar una shell:
Luego lo ejecutamos:
sudo /usr/bin/python3 /opt/maintenance.py
Ahora ya somos root.