Protocolo FTP (File Transfer Protocol)
FTP es el protocolo clásico para transferir archivos entre un cliente y un servidor en redes TCP/IP. Nació en una Internet sin adversarios y por eso no cifra nada: el usuario, la contraseña y el contenido de los ficheros viajan en claro. Sigue funcionando en todas partes, y ese es exactamente el problema.
Cómo funciona: un canal para las órdenes y otro para los datos
FTP trabaja en el nivel de aplicación y separa lo que casi ningún otro protocolo separa: las órdenes van por una conexión y los ficheros por otra. El canal de control se abre contra el puerto 21 y por ahí viajan la autenticación y los comandos: listar un directorio, crear una carpeta, pedir un fichero. El contenido no pasa por ahí.
Para los datos se abre una segunda conexión, y hay dos formas de hacerlo. En modo activo el servidor es quien conecta hacia el cliente, tradicionalmente desde el puerto 20. En modo pasivo es el cliente quien conecta, hacia un puerto alto que el servidor le indica. La distinción no es un detalle de manual: el modo activo obliga a abrir puertos de entrada en el lado del cliente, y por eso convive mal con cualquier cortafuegos moderno.
Esa arquitectura de dos canales explica buena parte de sus problemas operativos. Un cortafuegos que solo ve el canal de control no sabe qué puerto se va a negociar para los datos, así que o inspecciona el protocolo o acaba con reglas más anchas de lo que nadie querría.
Por qué FTP es hoy un hallazgo y no una instalación
No cifra. Ni las credenciales ni el contenido. Cualquiera con visibilidad sobre el camino, y eso incluye una red wifi compartida o un equipo comprometido en la misma red, lee el usuario y la contraseña tal cual y se lleva los ficheros de paso. Es el ejemplo de manual de por qué existe el cifrado en tránsito.
Tampoco protege la integridad. Sin cifrado no hay forma de detectar que alguien ha modificado lo que va por el cable, así que un adversario en medio puede alterar un fichero en vuelo. Cuando lo que se transfiere es una copia de seguridad, un instalador o un fichero de configuración, eso deja de ser un problema de confidencialidad y pasa a ser una vía de entrada.
Su autenticación es la que era: usuario y contraseña, sin segundo factor y sin nada que impida repetir intentos. Es autenticación heredada de libro, y por eso aguanta mal un ataque de fuerza bruta o una campaña de password spraying contra usuarios previsibles.
Y luego está el acceso anónimo, que el protocolo contempla y que muchas instalaciones dejan activo sin querer. Un FTP anónimo con permiso de escritura es un directorio público en el que cualquiera puede dejar lo que quiera, dentro de tu red.
FTPS y SFTP no son lo mismo, y la diferencia importa
Se confunden constantemente porque los nombres se parecen, y no comparten ni el diseño ni los puertos.
FTPS es FTP con TLS por encima. Sigue siendo el mismo protocolo, con sus dos canales y su negociación de puertos, envuelto en cifrado. Resuelve la confidencialidad y hereda toda la incomodidad de red del original, incluida la parte que hace sufrir a los cortafuegos.
SFTP es otro protocolo distinto. No es FTP metido en un túnel: es un subsistema de SSH que viaja por la misma conexión y el mismo puerto que una sesión SSH normal. Un solo canal, cifrado desde el primer byte, y con la posibilidad de autenticar por clave en vez de por contraseña. Es lo que se recomienda por defecto, y es también lo que hace que su exposición sea la exposición de SSH, ni más ni menos.
Si hay que elegir una regla corta: SFTP cuando se pueda, FTPS cuando el otro extremo no acepte otra cosa, FTP a secas nunca.
Qué se mira en un FTP durante un pentesting
Lo primero, si está donde no debería. Un servicio FTP publicado en Internet aparece en el reconocimiento antes que casi nada, porque el banner del puerto 21 dice qué software y qué versión atiende, y con eso ya se puede buscar si esa versión tiene un CVE conocido.
Después, el acceso anónimo y los permisos. Si se puede entrar sin credenciales, la pregunta siguiente es si además se puede escribir, y si lo que se escribe acaba en un sitio que alguien ejecuta después. Ese encadenamiento es la forma habitual de convertir un FTP mal configurado en ejecución remota de código.
Y en un test interno, la escucha. Si el FTP se usa entre máquinas de la misma red y alguien ya está dentro, las credenciales se recogen sin explotar nada: solo hay que estar en el camino. De ahí suele salir una cuenta de servicio reutilizada en otros sitios, que es lo que de verdad se estaba buscando.
Cómo se retira sin romper lo que cuelga de él
Nadie mantiene un FTP por gusto: sigue vivo porque hay un proceso que depende de él, y casi siempre es un proceso viejo que nadie quiere tocar. Así que primero se busca quién lo usa de verdad, con registros y no con suposiciones.
Migrar a SFTP suele ser directo para lo que hacen personas y bastante menos directo para lo que hacen máquinas, porque cambia la forma de autenticar y hay que gestionar claves. Ese trabajo entra en gestión de secretos, y saltárselo es cambiar una contraseña en claro por una clave privada guardada en el mismo sitio donde estaba la contraseña.
Mientras la migración avanza, lo que reduce el daño es la red: sacar el servicio de Internet, limitarlo por origen, ponerlo detrás de una segmentación que lo aísle del resto y controlar lo que sale con filtrado de salida. Ninguna de esas medidas arregla el protocolo; todas reducen a quién se lo estás ofreciendo.
Dónde aparece esto en un test de intrusión
Un pentesting externo mira lo que tu empresa publica hacia Internet, y un FTP expuesto es de los hallazgos que aparecen en la primera pasada. Lo que se entrega no es que el puerto esté abierto, que eso lo dice cualquier escáner: es qué se consigue con él, probado y reproducible.
Y si el FTP vive puertas adentro, la pregunta cambia de sitio y se responde desde dentro de la red, que es de lo que va el pentesting interno.