FTP Port (21)
Introduction
El Protocolo de Transferencia de Archivos (FTP) es un protocolo de red estándar utilizado para transferir archivos entre computadoras. También permite realizar operaciones sobre directorios y archivos, como cambiar el directorio de trabajo, listar archivos, renombrar o eliminar carpetas y archivos. Por defecto, FTP escucha en el puerto TCP/21.
Para atacar un servidor FTP, podemos abusar de una mala configuración, privilegios excesivos, vulnerabilidades conocidas o incluso descubrir nuevas vulnerabilidades. Por eso, una vez que tengamos acceso al servicio FTP, debemos revisar el contenido de los directorios y buscar información sensible o crítica, como ya vimos antes.
El protocolo está diseñado para permitir descargas y subidas mediante comandos, lo que permite la transferencia de archivos entre servidores y clientes. El usuario tiene acceso a un sistema de gestión de archivos proporcionado por el sistema operativo. Los archivos pueden almacenarse en carpetas, las cuales a su vez pueden estar dentro de otras carpetas, generando así una estructura jerárquica de directorios.
Muchas empresas utilizan este servicio como parte de sus procesos de desarrollo de software o sitios web.
Enumeration
Los scripts por defecto de Nmap (-sC
) incluyen el script ftp-anon
, que verifica si un servidor FTP permite inicios de sesión anónimos. La opción de enumeración de versiones -sV
proporciona información interesante sobre los servicios FTP, como el banner del servicio, que a menudo incluye el nombre y la versión del servidor.
Podemos usar el cliente ftp
o nc
(netcat) para interactuar con el servicio FTP. Por defecto, FTP se ejecuta en el puerto TCP 21.
Nmap
Misconfigurations
Como ya comentamos, la autenticación anónima puede estar configurada en distintos servicios como FTP. Para acceder con un inicio de sesión anónimo, simplemente se usa el usuario anonymous
y sin necesidad de contraseña. Esto puede ser muy peligroso para la empresa si los permisos de lectura y escritura no están correctamente configurados en el servicio FTP.
Con un acceso anónimo mal configurado, la empresa podría haber dejado información sensible expuesta en carpetas accesibles, permitiendo que cualquier usuario pueda:
descargar archivos confidenciales, o incluso
subir scripts maliciosos
Si combinamos esto con vulnerabilidades como path traversal en una aplicación web, podríamos localizar el archivo subido y ejecutarlo como código, por ejemplo como PHP.
Anonymous Authentication
Una vez que obtenemos acceso al servidor FTP con credenciales anónimas, podemos comenzar a buscar información interesante.
Comandos útiles:
ls
ycd
→ para navegar por los directorios, igual que en Linuxget archivo.txt
→ descarga un archivomget *
→ descarga múltiples archivosput archivo.txt
→ sube un archivomput *
→ sube varios archivos
Puedes usar el comando help
dentro de la sesión FTP para ver más opciones disponibles.
Attacking FTP
Brute Forcing
Si no hay autenticación anónima disponible, también podemos realizar un ataque de fuerza bruta contra el servicio FTP usando listas de nombres de usuario y contraseñas predefinidas.
Brute Forcing with Medusa
Existen muchas herramientas para hacer fuerza bruta, pero vamos a ver una muy común: Medusa.
Con Medusa:
-u
especifica un único usuario-U
es para un archivo con varios usuarios-P
indica un archivo con contraseñas-M
define el módulo o protocolo a atacar (en este caso,ftp
)-h
es el host o IP del objetivo
Nota: aunque es posible encontrar servicios vulnerables a fuerza bruta, hoy en día la mayoría de aplicaciones implementan mecanismos de protección. Un método más efectivo suele ser el Password Spraying.
Brute Forcing with Hydra
Con Hydra:
-l
especifica un único usuario-L
es para un archivo con varios usuarios-p
indica una contraseña única-P
indica un archivo con contraseñasftp://10.129.42.197
es el host o IP del objetivo
FTP Bounce Attack
Un FTP bounce attack es un ataque de red que aprovecha servidores FTP para enviar tráfico saliente hacia otro dispositivo dentro de la red. El atacante utiliza el comando PORT para engañar la conexión FTP y hacer que ejecute comandos o recopile información desde un dispositivo diferente al servidor original.
Imaginemos que estamos atacando un servidor FTP llamado FTP_DMZ que está expuesto a internet. Dentro de la misma red, hay otro dispositivo llamado Internal_DMZ, que no está expuesto públicamente. Podemos usar la conexión al servidor FTP_DMZ para escanear Internal_DMZ mediante un ataque FTP Bounce y descubrir qué puertos tiene abiertos. Luego, podremos usar esa información para preparar futuros ataques contra la infraestructura.
La opción -b
de Nmap permite realizar este tipo de ataque:
Aunque la mayoría de servidores FTP modernos tienen protecciones activas por defecto para evitar este tipo de ataque, si estas características están mal configuradas, el servidor podría quedar vulnerable a un FTP Bounce.
Última actualización