Gracias a Wireshark podemos capturar y leer paquetes que salen y entran a nuestro equipo. Sin embargo, esto podría no ser muy útil en términos de un ataque ofensivo, lo realmente interesante sería poder leer los paquetes de otros equipos en la red para capturar credenciales que vayan viajando en texto plano.
Ampliemos el escenario que planteamos en el artículo anterior: Logramos una intrusión a la máquina de una red local y detectamos que hay un equipo Windows 7 que pertenece al administrador de la red, nuestra máquina Kali y un servidor FTP (En nuestras pruebas usamos Metasploitable 2) al que dicho administrador, hipotéticamente, se loguea constantemente para, por ejemplo, actualizar el sitio de la empresa a la que estamos atacando. Sin duda, querríamos entrar a ese servidor FTP puesto que supondría una gran brecha de seguridad para nuestro cliente.Intentamos un ataque de contraseñas que resulta no ser efectivo, el software del servidor está completamente actualizado y no tiene vulnerabilidades públicas. ¿Qué podemos hacer ahora? Pues bien, sabemos que el protocolo FTP no utiliza conexiones cifradas y que por lo tanto cada vez que el administrador de la red se conecta desde su máquina Windows al servidor FTP las credenciales viajan en texto plano. Así que la conclusión es muy sencilla: debemos interponernos en la comunicación de esas 2 máquinas y capturar todo el tráfico que viaja entre ellas, puesto que así podremos leer las credenciales de acceso al servidor FTP.
El switch de la red solo nos envía paquetes cuando estos van dirigidos a nosotros y en nuestro escenario las credenciales se dirigen desde la máquina Windows hasta el servidor FTP, evidentemente en ninǵún momento pasan por nosotros, así que tendremos que engañar al switch o a la máquina Windows para que crea que los paquetes si van dirigidos a nuestra máquina (Suplantando la identidad de nuestras máquinas objetivo). Vamos a crear un ataque de Man In the Middle (Hombre en el medio) que nos permitirá interceptar y redireccionar el tráfico antes de que llegue a su verdadero destino. La técnica para hacernos pasar por alguna máquina dentro de la red es ARP Cache poisoning (también conocida como ARP Spoofing).
Si queremos ver el ARP Cache actual de nuestra máquina usamos el comando arp.
Ahora, para demostrar que la tabla ARP se actualiza cuando un equipo se conecta a la red y nosotros intentamos conectarnos a él, vamos a levantar una máquina virtual Debian (Ustedes pueden levantar la que quieran) y hacer un escaneo con Nmap (Un intento de conexión a SSH o un ping también funciona) para luego volver a ejecutar el comando arp.
Luego de esa conexión ejecutamos arp y voalá, tenemos al final de la lista a la nueva IP (192.168.1.166) en nuestro ARP Cache
El problema de confiar el direccionamiento ARP es que no tenemos garantía de que la relación IP - MAC sea correcta. Cualquier máquina puede responder a una solicitud ARP que vaya para, por ejemplo, 192.168.1.234, incluso si esta máquina realmente es 192.168.1.9 o alguna otra, de todas formas la máquina victima (La que hace la solicitud ARP) aceptará esta respuesta.
El procedimiento anterior, en pocas palabras, es ARP Cache Poisoning. Enviamos una serie de respuestas ARP que le dicen a nuestra victima que somos otra máquina dentro de la red. Así, cuando la victima envie tráfico dirigido a esa máquina realmente irá directamente hacia nosotros para que lo leamos con nuestro sniffer de tráfico.
Antes de que podamos realizar el ataque debemos habilitar el IP Forwarding en nuestra máquina Kali para poder redireccionar cada paquete a su verdadero destino. Si no habilitamos esto, generaremos una denegación de servicio en la red, donde los clientes legitimos no pueden acceder a los servicios que necesiten.
Para habilitar el IP Forwarding utilizamos el siguiente comando:
Podemos ejecutar nuevamente el comando arp para verificar la MAC de las máquinas que atacaremos y así poder comprobar una vez ejecutado el ataque que, en efecto, las direccionas MAC están cambiando y siendo suplantadas.
192.168.1.234 es la máquina Ubuntu con el servidor FTP y por ahora su MAC es: 08:00:27:f4:a8:06
192.168.1.10 es la máquina Windows que se conecta al FTP y por ahora su MAC es: 08:00:27:22:fd:8b
Una herramienta muy sencilla para ejecutar un ataque ARP Cache poisoning es arpspoof, tan solo tenemos que especificar la interfaz de red que estamos usando (eth0), la IP de nuestra máquina victima y la IP de la máquina que queremos suplantar. Para nuestras pruebas haremos creer a la máquina Ubuntu que somos la máquina Windows, para eso especificamos con -i la interfaz con -t la IP de la victima (192.168.1.234) y como ultimo parametro la IP de la máquina que queremos suplantar (192.168.1.10).
En este momento la máquina Ubuntu piensa que nuestro Kali es la máquina Windows. Ahora, para capturar la otra parte de la conversación vamos a tener que hacerle creer a Windows que somos Ubuntu, para eso en otra terminal utilizamos el comando anterior pero esta vez con -t vamos a especificar la IP de Windows y como último parametro la de Ubuntu
En este momento ya hemos realizado el ataque de ARP Cache poisoning y suplantado las máquinas en ambas direcciones, así que solo hace falta lanzar nuestro sniffer de tráfico (WireShark) seleccionando la interfaz de red (eth0) y esperar a que el administrador se conecte al servidor FTP para que podamos capturar sus credenciales.
Simulamos la conexión desde Windows al FTP
Volvemos a Wireshark en nuestra máquina Kali y aplicamos un filtro para ver paquetes solo del protocolo FTP
En el paquete número 1299 vemos el nombre de usuario enviado (REQUEST: USER msfadmin), en el paquete número 1303 la contraseña (REQUEST: PASS msfadmin) y en el paquete 1305 comprobamos que el Login fue exitoso y por tanto las credenciales son correctas.
Como vemos la captura de tráfico puede llegar a ser muy útil para escalar privilegios dentro de una red local, siempre y cuando hayan servicios que no cifren su información.
Comentarios