Cada vez es mas importante dejar atrás los protocolos no seguros de Internet y comenzar a utilizar los protocolos seguros que cifren nuestras conexiones y nuestros datos de acceso a los sistemas. El protocolo FTP, lleva muchas décadas entre nosotros y aunque se sigue utilizando en sistemas donde la privacidad no importa, si que se recomienda en sistemas donde los datos son sensibles y donde queremos proteger los datos de acceso de los usuarios.
Seguid leyendo y os enseñaré cómo podéis obtener el usuario y la contraseña de los usuarios FTPs que viajan por vuestra red...
¿QUÉ ES FTP?
El Protocolo de transferencia de archivos (en inglés File Transfer Protocol o FTP) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.
El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos.
Con FTP, las credenciales viajan en texto plano
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
- Un equipo con Wireshark (En este tutorial Windows 10)
- Otro PC (En este tutorial GNU/Linux Debian, pero vale cualquier otro)
- Conexión de ambos equipos en la misma red
2.- ESQUEMA DE RED
Para seguir este tutorial, es necesario tener montada una red similar a la que se ve en la siguiente imagen. Todas las conexiones web deberán pasar por nuestro equipo Mikrotik para poder realizar el filtrado de las páginas webs. Básicamente los PCs clientes deben salir a través de un equipo Mikrotik o cualquier otro equipo corriendo RouterOS y hacer NAT de las conexiones. Seguid el siguiente tutorial si necesitáis realizar una configuración desde cero: Cómo compartir Internet con Mikrotik y RouterOS:
Esquema de Red
3.- DESCARGA E INSTALACIÓN DE WIRESHARK
Lo primero que tenemos que hacer es descargar Wireshark en el equipo donde queremos sniffar el tráfico de la red. En este tutorial, instalaremos Wireshark en un Windows 10 64bits. Para ello, abriremos la página Web Oficial de Wireshark y en Downloads/Descargas seleccionaremos nuestra plataforma https://www.wireshark.org/#download:
Descarga de Wireshark
Una vez descargado el instalador, haremos doble Click en el fichero para comenzar la instalación:
Bienvenid@ a Wireshark
El siguiente paso será aceptar la licencia del programa:
Licencia Wireshark
En el listado de componentes, seleccionaremos todos ellos y haremos click en "Next":
Componentes de Wireshark
Si queremos añadir accesos directos al menú de inicio, escritorio etc... seleccionaremos los que queramos en a siguiente pantalla:
Accesos directos en Wireshark
Seleccionaremos el directorio de instalación. Lo normal es dejarlo por defecto pero se puede cambiar si es necesario:
Directorio de instalación
Instalaremos Npcap ya que es necesario para Wireshark:
Install Npcap
Si queremos capturar trafico a través de una interfaz de red con adaptador USB, marcaremos la casilla siguiente. En caso contrario, la dejaremos desmarcada y haremos click en "Install":
Install USBPcap
Una vez finalizados los pasos anteriores, comenzará la instalación de Wireshark:
Instalando Wireshark
Instalando Npcap, haremos click en "I Agree":
Instalar Npcap
Marcaremos las casillas que queramos instalar. Por defecto no marcaremos ninguna y continuaremos la instalación:
Instalando Npcap
Una vez terminada la instalación de Npcap y Wireshark veremos un mensaje de Instalación Completa:
Instalación completa
Ahora es momento de reiniciar el equipo. No es obligatorio pero si se recomienda:
Reiniciar PC
4.- SNIFFAR TRÁFICO DE RED
Ahora necesitamos abrir Wireshark e ir al menú de "Capture->Options":
Opciones Wireshark
Seleccionaremos la interfaz de red por la que queremos sniffar el tráfico. En este ejemplo, al estar conectado por Wi-Fi a la red, seleccionaremos y activaremos el modo Promiscuo solo en la interfaz Wi-Fi:
Activar modo promiscuo
El protocolo FTP envía los datos de conexión a través de TCP y utilizando el puerto 21. Para evitar que nos salga todo el tráfico de la red, añadiremos un filtro "tcp.port == 21" y haremos click en el icono azul para comenzar a capturar tráfico:
Filtro Wireshark
Ahora, desde el otro equipo de la red, abriremos un cliente de FTP y probaremos a conectar a cualquier servidor de Internet. En este ejemplo, se ve un intento de acceso a un servidor llamado ftp.ctv.es, aunque la conexión da error es suficiente para capturar el usuario y contraseña:
raul@debian:~$ ftp ftp.ctv.es
Connected to web.comtenidos.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 19:38. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (ftp.ctv.es:raul): Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
331 User Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. OK. Password required
Password:
530 Login authentication failed
Login failed.
En la siguiente imagen, se puede ver perfectamente como capturamos satisfactoriamente el usuario y contraseña del equipo remoto:
Tiempo real Wireshark
Si queremos ver toda la trama TCP de la conexión, iremos a una parte de la trama, por ejemplo, donde se ve el nombre de usuario, botón derecho "Follow->TCP Stream":
Seguir trama TCP
En la siguiente imagen se puede ver toda la trama TCP con la conexión FTP del usuario:
Trama TCP
5.- ¿CÓMO PODEMOS EVITAR QUE VEAN NUESTRO USUARIO Y CONTRASEÑA ?
La solución es fácil, tan solo tenemos que usan la "S" ( FTP + SSL/TLS) ó mejor aún SFTP (FTP sobre SSH). La mayoría de los clientes gráficos ya tienen estas opciones disponibles.
ENJOY!