El ejemplo de este ataque que vamos a ver es ARP spoofing o ARP poisoning, que consiste en envenenar la tabla ARP de la víctima, haciéndola creer que se comunica con el servidor, cuando en realidad envía la información al atacante.
Para ello vamos a emplear Cain & Abel (o simplemente Cain, disponible en su web oficial), que es una herramienta para la recuperación de contraseñas y que presenta múltiples funcionalidades a parte de la que vamos a mostrar.
Mi entorno de la primera prueba contendrá 3 máquinas virtuales en el rango 172.17.0.0/16:
- Windows Server 2008 R2 - 172.17.0.1/16 - el servidor ftp (con FileZilla Server).
- Windows 7 Ultimate - 172.17.0.2/16 - la víctima que se va a conectar al servidor.
- Windows 8.1 Pro - 172.17.0.3/16 - el "malo", con Cain.
1. Instalación de Cain & Abel
Una vez descargado, abrimos el instalador. El proceso de instalación no tiene ninguna complejidad:
Mantengo el directorio de instalación por defecto y espero a que se extraigan los archivos:
Para poder "esnifar" el tráfico de nuestra red, es decir, utilizarla en modo monitor, tendremos que instalar WinPcap:
Una vez instalado, abrimos el programa y entramos en la ventana de Configuración:
Aquí marcamos la casilla Start Sniffer on startup con el fin de escanear la red al abrir el programa:
Ya deberíamos poder visualizar las redes detectadas y los hosts que estas contienen:
2. FileZilla Server y prueba con Wireshark
Si estamos en el cliente o servidor que interviene en la comunicación, podemos interceptar los paquetes directamente, sin necesidad de recurrir al Man in the middle. Aquí una pequeña prueba.
Instalo FileZilla Server en mi máquina Windows 2008 R2 y lo abro:
Añado un usuario para poder conectarme desde el cliente (no nos olvidamos de establecerle un directorio home):
Desde la máquina cliente (Windows 7 en mi caso), voy a iniciar el escaneo (filtrando el tráfico ftp), y al intervenir esta máquina en la comunicación, podremos captar los paquetes directamente, sin tener que realizar ningún ataque:
Y desde la misma máquina me conecto a nuestro servidor ftp:
Y ya tenemos los paquetes con las credenciales de nuesto usuario capturados:
3. ARP Spoofing con Cain (en Windows 8.1)
Ahora bien, si queremos hacer lo mismo, pero desde otra máquina que no interviene en la comuncación entre el cliente y servidor, tendremos que realizar el ataque Man in the middle, concretamente ARP Spoofing.
Abrimos Cain y vamos a la pestaña Sniffer. Pulsamos el botón indicado para ver las @IP registradas en la red:
En la siguiente ventana podemos elegir el rango a escanear. Sólamente voy a analizar las @IP del servidor y cliente que vamos a atacar:
Aquí vamos a establecer los hosts entre los que nos vamos a meter para interceptar el tráfico. Elegimos uno en la parte izquierda, y en la derecha, una vez que allí aparezca. El programa nos avisa de si nuestro equipo no rinde igual que un router, podría entorpecer la conexión entre los hosts o incluso producir una denegación del servicio (al no redirigir los paquetes a sus destinatarios legítimos suficientemente rápido).
Para iniciar el ataque ARP Spoofing, pulsamos sobre el icono amarillo:
Su estado cambiará de Idle a Poisoning:
Ahora me voy a conectar al servidor ftp desde la máquina Windows 7:
Y veré que en la pestaña inferior Passwords tenemos una contraseña nueva, que es la que acabo de introducir:
En esta prueba atacamos tanto al cliente como al servidor -envenenando sus tablas ARP-, hecho que podemos demostrar visualizando sus tablas ARP.
Cliente (172.17.0.2):
Servidor (172.17.0.1):
Recordemos que la @IP del "malo" es 172.17.0.3, y, como podemos ver, el cliente asocia su dirección física con la @IP del servidor y el sevidor la asocia con @IP del cliente. Es por eso que aparece 2 veces en cada tabla.
4. DNS Spoofing
Mi servidor DNS (172.17.0.1) resuelve el nombre asir2.com a sí mismo. Mediante este ataque conseguiremos que lo resuelva a otra @IP, por ejemplo a la del atacante. Este ataque, al igual que el anterior, es un Man in the middle y es muy sencillo realizarlo.
Primero tendremos que envenenar la tabla ARP de nuestra víctima (máquina Windows 7). Para ello, al igual que antes, seleccionamos el servidor (DNS, en este caso el mismo que antes) y el cliente, que también va a ser el mismo:
Pulsamos el botón amarillo para iniciar el envenenamiento:
Ahora seleccionaremos "ARP-DNS" y añadiremos una entrada nueva. Aquí es donde vamos a especificar qué nombre vamos a spoofear y a qué dirección IP:
Para finalizar, una pequeña prueba desde la máquina Windows 7. Con un ping compruebo que asir2.com ahora se resuelve a 172.17.0.3, en vez de a 172.17.0.1. Si no es así, ejecutamos ipconfig /flushdns para limpiar la caché DNS del cliente:
5. ARP Spoofing con Ettercap (en Kali Linux)
Ettercap es una herramienta de seguridad gratuita y de código abierto, que permite realizar ataques Man in the middle en redes locales (LAN). Viene preinstalado en Kali, por lo que omitiré el proceso de su instalación.
En esta prueba, la @IP del "malo" va a ser 172.17.0.5/16, mientras que las del cliente y servidor se mantienen (172.17.0.2/16 y 172.17.0.1/16).
Iniciamos Unified sniffing y seleccionamos nuestra interfaz, para poder escanear los hosts de la red a continuación:
Comenzamos el escaneo de los hosts seleccionando la opción correspondiente (Hosts -> Scan for hosts):
Puede tardar un rato, dependiendo del tamaño de nuestra red. Al final se añadirán los hosts detectados a la lista:
Abrimos la lista de hosts desde el menú o utilizando el atajo de teclado (Ctrl + H):
A continuación seleccionaremos los objetivos del ataque, es decir, los hosts entre la comunicación de los cuales nos vamos a meter:
Desde el menú principal del programa abrimos Mitm -> ARP posoning, marcamos la casilla Sniff remote connections y aceptamos para iniciar el ataque:
Para asegurarnos de que el ataque ha sido exitoso, podemos visualizar las tablas arp de las víctimas. La tabla arp del cliente:
La tabla arp del servidor:
Abrimos Wireshark en Kali, iniciamos el escaneo y desde la máquina cliente (172.17.0.2) nos conectamos al servidor ftp (172.17.0.1):
Y, efectivamente, logramos captar los paquetes con las credenciales que viajan entre las 2 máquinas víctimas:
6. Medidas contra este tipo de ataques
- Emplear herramientas como ARPWatch (en Linux) o DecaffeinatID (en Windows) que permiten realizar un seguimiento de nuestra tabla arp, avisándonos si aparecen @MAC duplicadas.
- Utilizar entradas ARP estáticas. En sistemas Windows lo permite el comando netsh interface ipv4 add neighbors "Nombre de nuestra conexión" "Dirección IP" "Dirección MAC".
- Y, por supuesto, siempre cuando sea posible evitar que personas no autorizadas se conecten a nuestra red.
No hay comentarios:
Publicar un comentario