Puerto 21: FTP

FTP (File Transfer Protocol) es un protocolo de red estándar utilizado para la transferencia de archivos entre un cliente y un servidor en una red TCP/IP. Opera sobre los puertos 20 y 21, donde el puerto 21 se utiliza para establecer la conexión de control y el puerto 20 para la transferencia de datos.

Descripción de FTP

  • Protocolo: FTP funciona sobre el protocolo TCP, utilizando los puertos 20 y 21.

  • Transferencia de Archivos: Permite la transferencia de archivos entre computadoras, lo que incluye subir y descargar archivos.

  • Modos de Operación: Puede operar en modo activo o pasivo, determinando cómo se establecen las conexiones de datos.

  • Sin Cifrado: Por defecto, FTP no cifra los datos transmitidos, incluyendo nombres de usuario y contraseñas, lo que lo hace vulnerable a la interceptación.

Relevancia en Pentesting

Inseguridad de FTP:

  • Transmisión en Texto Plano: Debido a que FTP transmite credenciales y datos sin cifrar, un atacante que intercepte el tráfico de red puede capturar esta información sensible.

  • Autenticación Débil: Muchos servidores FTP están configurados con credenciales predeterminadas o débiles, lo que facilita el acceso no autorizado.

  • Acceso Anónimo: Algunos servidores FTP permiten acceso anónimo, donde cualquier usuario puede conectarse sin necesidad de autenticación. Esto puede exponer archivos sensibles públicamente.

  • Exposición de Archivos Sensibles: Si no está configurado correctamente, FTP puede permitir el acceso a archivos críticos y confidenciales.

Ejemplo de Escaneo de FTP con Nmap

Para identificar servidores FTP que pueden estar activos y verificar sus configuraciones, se puede utilizar Nmap. El siguiente comando escanea los puertos 21 y 20 (puertos predeterminados de FTP) y ejecuta scripts NSE para obtener más información sobre el servicio.

Comando Nmap

nmap -p 21,20 --script ftp-anon,ftp-bounce,ftp-syst,ftp-brute target-ip-range

Explicación del Comando

  • nmap: Ejecuta el comando Nmap.

  • -p 21,20: Especifica que Nmap debe escanear los puertos 21 y 20, los puertos predeterminados para FTP.

  • --script ftp-anon,ftp-bounce,ftp-syst,ftp-brute: Utiliza scripts NSE para detectar configuraciones y vulnerabilidades en el servicio FTP.

    • ftp-anon: Verifica si el servidor FTP permite acceso anónimo.

    • ftp-bounce: Prueba si el servidor es vulnerable a ataques de rebote FTP.

    • ftp-syst: Recupera información del sistema desde el servidor FTP.

    • ftp-brute: Realiza un ataque de fuerza bruta para encontrar credenciales válidas.

  • target-ip-range: Especifica el rango de direcciones IP que se deben escanear.

Ejemplo de Salida de Nmap

Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-18 12:45 UTC
Nmap scan report for 192.168.1.15
Host is up (0.00042s latency).

PORT   STATE SERVICE
20/tcp open  ftp-data
21/tcp open  ftp
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst:
|   STAT:
|     FTP server status:
|      Connected to 192.168.1.100
|      Logged in as ftp
|      TYPE: ASCII
|      No session timeout
|      No data connection timeout
|      vsFTPd 3.0.3 - secure, fast, stable
|_    End of status
| ftp-bounce:
|   Bounce attack allowed
|_  Security Warning: FTP server allows bounce attacks.
|_ftp-brute: No valid credentials found (1 tested)

Nmap done: 1 IP address (1 host up) scanned in 3.42 seconds

Interpretación de la Salida

  • Host is up: Indica que el sistema objetivo está en línea y responde.

  • 20/tcp open ftp-data: El puerto 20 está abierto y se utiliza para la transferencia de datos FTP.

  • 21/tcp open ftp: El puerto 21 está abierto y se utiliza para la conexión de control FTP.

  • ftp-anon: Indica que el acceso anónimo está permitido, lo que puede permitir a cualquier usuario conectarse sin autenticación.

  • ftp-syst: Proporciona información sobre el sistema del servidor FTP, incluyendo el tipo de servidor y configuraciones.

  • ftp-bounce: Señala que el servidor es vulnerable a ataques de rebote FTP, lo que puede permitir a un atacante utilizar el servidor para escanear otros sistemas.

  • ftp-brute: Intenta encontrar credenciales válidas mediante un ataque de fuerza bruta; en este caso, no se encontraron credenciales válidas.

Última actualización