// 01
Contexto
FirstHacking es la máquina de iniciación de DockerLabs, pensada como primer contacto con un pentest real de principio a fin: desplegar el objetivo, escanear, identificar un servicio vulnerable y explotarlo hasta obtener acceso de root. Lo que se aprende aquí no es una técnica compleja, sino el flujo de trabajo completo que se repetirá en máquinas mucho más difíciles.
// NOTA
Etapa histórica — CVE-2011-2523: el 30 de junio de 2011, el código fuente oficial de vsftpd 2.3.4 alojado en el servidor de descargas del proyecto fue comprometido y sustituido por una versión troyanizada. Cualquiera que descargara el tarball entre esa fecha y el 3 de julio de 2011 (cuando se detectó y retiró) obtenía un backdoor oculto en el binario. Quince años después, esa versión sigue usándose deliberadamente en laboratorios y CTFs como ejercicio clásico de explotación de servicios.
// 02
Reconocimiento
// NOTA
Un único puerto abierto, el 21 (FTP), corriendo exactamente la versión vsftpd 2.3.4. Ese número de versión es la señal de alarma: coincide con el tarball troyanizado de 2011.
// 03
Explotación
El backdoor de vsftpd 2.3.4 se activa de una forma muy particular: si el nombre de usuario que se envía al servidor FTP contiene la secuencia de caracteres :) (un emoticono), el código malicioso insertado en el binario abre, en segundo plano, un listener en el puerto 6200 que entrega una shell de sistema sin pedir ninguna autenticación adicional.
// NOTA
No importa si la contraseña es correcta o si la conexión FTP se cae después: el solo hecho de enviar un usuario con :) ya disparó el backdoor en el puerto 6200 del lado del servidor.
// CVE-2011-2523 — ANÁLISIS DEL BACKDOOR
Disparador: el binario troyanizado inspecciona cada USER enviado al FTP; si contiene la secuencia :), ejecuta la carga maliciosa oculta.
Acción: abre un nuevo socket que escucha en el puerto 6200/TCP y le asocia /bin/sh, sin pedir ninguna autenticación.
Privilegios: vsftpd corre como root para poder enlazar el puerto 21 (< 1024), así que la shell del 6200 hereda ese UID 0.
Resultado: quien conozca el gatillo obtiene una shell de root remota, sin contraseña y sin necesidad de tocar el canal FTP legítimo.
// 04
Acceso y escalada
// NOTA
El primer intento puede fallar si el backdoor todavía no terminó de inicializarse tras el paso anterior. Basta con reintentar.
No hace falta ninguna escalada de privilegios adicional: el backdoor entrega una shell directamente como root, lo que convierte a esta máquina en un ejemplo perfecto de por qué una sola versión desactualizada puede comprometer un sistema completo sin pasos intermedios.
// 05
Referencia de comandos
- -sV → Detecta la versión exacta de cada servicio abierto.
- -p- → Escanea los 65535 puertos TCP, no solo los 1000 habituales.
- --min-rate 5000 → Envía ≥ 5000 paquetes/s para acelerar el escaneo.
- USER …:) → Un nombre de usuario que contenga
:)activa el backdoor.
- 6200 → Puerto que abre el backdoor de vsftpd 2.3.4.
- reintentar → El primer intento puede fallar si el listener aún no está listo.
- whoami → Confirma el usuario de la shell actual (root).
- ls -la → Lista todo, incluidos los archivos ocultos, con permisos y metadatos.
// 06
Glosario
CVE-2011-2523 es el backdoor de vsftpd 2.3.4.// 07
Curiosidades
- El backdoor de vsftpd 2.3.4 estuvo disponible para descarga pública durante apenas unos días en 2011, pero como el código fuente comprometido quedó replicado en mirrors y repositorios, la versión troyanizada siguió circulando mucho después del incidente original.
- El gatillo del backdoor es deliberadamente absurdo: basta con que el nombre de usuario contenga el emoticono
:)para que el servidor abra una shell root en el puerto 6200, sin validar nada más. - A pesar de ser una vulnerabilidad de 2011, vsftpd 2.3.4 sigue siendo una de las máquinas de entrenamiento más usadas en plataformas como DockerLabs, HackTheBox (Metasploitable2) y TryHackMe, precisamente porque ilustra de forma muy clara el riesgo de ejecutar software desactualizado o de fuentes no verificadas.
// 08
Resumen
nmap descubre vsftpd 2.3.4 en el puerto 21 → se identifica como la versión troyanizada (CVE-2011-2523) → se envía un usuario FTP con :) para activar el backdoor → se conecta con netcat al puerto 6200 → se obtiene una shell directa como root, sin necesidad de escalada de privilegios.