Skip to content

HackZones

This content is not available in your language yet.

Este documento detalla la resolución completa de la máquina HackZones, desarrollada por d1se0 para DockerLabs y clasificada con un nivel de dificultad Medio.

El objetivo es guiar paso a paso el proceso de compromiso del sistema:

  1. Reconocimiento: Descubrimiento de servicios expuestos y enumeración del sitio web.
  2. Explotación: Carga de una reverse shell a través de una funcionalidad vulnerable de subida de archivos.
  3. Escalada de privilegios: Extracción de credenciales internas y abuso de configuraciones inseguras de sudo para obtener acceso a root.

Todo el procedimiento se realizó en un entorno aislado de DockerLabs.


AtributoValor
NombreHackZones
Autord1se0
DificultadMedio
Fecha17/11/2024
PlataformaDockerLabs

Descomprimimos y desplegamos la máquina:

Ventana de terminal
unzip HackZones.zip
sudo bash auto_deploy.sh HackZones.tar

IP asignada


Ventana de terminal
mkdir -p HackZones/{content,exploits,nmap,gobuster,scripts}
cd HackZones

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

Puertos abiertos encontrados:

  • 22/tcp — SSH
  • 53/tcp — DNS
  • 80/tcp — HTTP

Puertos abiertos


Ejecutamos un escaneo inicial con Feroxbuster:

Ventana de terminal
feroxbuster -u http://172.17.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt

Aunque no se revelan rutas interesantes, el archivo index muestra un dominio interno: hackzones.hl. Lo agregamos en /etc/hosts:

Ventana de terminal
echo "172.17.0.2 hackzones.hl" | sudo tee -a /etc/hosts

Con esto realizamos un segundo escaneo:

Ventana de terminal
feroxbuster -u http://hackzones.hl/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt

Feroxbuster result

Rutas relevantes:

  • /index — Página principal informativa content of index

  • /uploads — Directorio accesible públicamente

  • /dashboard.html — Panel de usuario con opción para subir imagen de perfil content of dashboard


Realizamos un intento de transferencia de zona:

Ventana de terminal
dig axfr @172.17.0.2 hackzone.hl

El servidor permite la operación, pero únicamente revela una flag y no información útil para la explotación.


En el dashboard se permite subir una imagen de perfil, sin ninguna validación de tipo o contenido. Esto permite cargar un archivo PHP malicioso para obtener ejecución remota.

Creamos shell.php con una reverse shell en PHP y lo subimos como si fuera una foto de perfil.

Luego verificamos su ubicación en /uploads:

shell subida

Activamos el listener:

Ventana de terminal
nc -nlvp 443

Hacemos clic sobre el archivo y obtenemos una shell como www-data:

reverse shell



Dentro de /var/www/html/supermegaultrasecrefolder encontramos el script secret.sh:

file

El contenido indica que debe ejecutarse como root:

run secret.sh

El script revela una contraseña válida para el usuario mrrobot. Probamos acceso:

id mrrobot

Acceso correcto.


Revisamos permisos:

Ventana de terminal
sudo -l

sudo -l

Se permite ejecutar cat como root, lo que ya sería suficiente para leer /etc/shadow.

Sin embargo, encontramos un archivo interesante:

ls -l SistemUpdate

Leyendo el archivo:

credenciales de root

El archivo contiene directamente las credenciales de root.

Iniciamos sesión:

Ventana de terminal
su root

su root

Confirmamos privilegios:

id root


  1. Validación inexistente en la subida de archivos, permitiendo ejecución remota de código.
  2. Transferencia de zona DNS habilitada, exponiendo información interna.
  3. Credenciales almacenadas en texto plano dentro de archivos del sistema.
  4. Permisos de sudo mal configurados, permitiendo a un usuario leer archivos críticos con cat.
  5. Script sensible (secret.sh) accesible desde el servidor web, revelando contraseñas.

  • Implementar validación estricta en subida de archivos (MIME, extensión, contenido).
  • Deshabilitar AXFR o restringirlo a servidores autorizados.
  • Almacenar credenciales cifradas o utilizar un vault seguro.
  • Revisar y restringir permisos en sudoers.
  • Mover archivos sensibles fuera del directorio web.
  • Implementar logging y monitoreo para detectar actividad sospechosa.