domingo, 4 de octubre de 2009

Ataque man in the middle con ettercap...

Probando en: Ubuntu9.04

¿Funciona ésto en Windows?: Recomiendo trabajar sobre Linux.
Bueno, probablemente muchos ya conoscan Wireshark, uno de los analizadores de protocolos más famosos con el cual podemos “analizar” el tráfico que se genera en nuestra red. Pero… muchos tal vez han querido probarlo en redes switcheados, lo dejan corriendo y al regresar se dan cuenta de que solo han capturado un monton de paquetes Broadcast. Pues bien, la razón de ésto es que en una red switcheada la comunicación en la red tiene que pasar por el switch (o router) a diferencia de en la redes donde antes había hubs.

¿Entonces es imposible capturar tráfico de una red así?
No, la verdad es que solo hay que agregar unos pasos más a solo abrir el Wireshark y empezar a analizar protocolos, necesitamos realizar un ataque MitM para que el tráfico pase a través de nuestra máquina y de ahí ya podamos analizarlo.
Ah si, y no importa si estás conectado por cable o inalámbrico, el concepto en si es el mismo.
Ok, esto suena bien para un administrador y suena mucho mejor para un atacante, así que empecemos a platicar sobre el tema y veamos si llegamos a alguna conclusión interesante.
Bueno, primero definamos algunos conceptos con definiciones Wikipedia :) así me ahorraré algo de trabajo jeje. Lo que buscamos es ir uniendo términos, para que no solo hagamos el ataque a la copy-paste o click por aqui y por allá si no que sepamso realmente lo que está pasando.

¿Qué es un ataque Man-in-the-Middle?

Un ataque man-in-the-middle (MitM o intermediario, en castellano) es un ataque en el que el enemigo adquiere la capacidad de leer, insertar y modificar a voluntad, los mensajes entre dos partes sin que ninguna de ellas conozca que el enlace entre ellos ha sido violado. El atacante debe ser capaz de observar e interceptar mensajes entre las dos víctimas.

¿Qué es ARP?

ARP son las siglas en inglés de Address Resolution Protocol (Protocolo de resolución de direcciones).Es un protocolo de nivel de red responsable de encontrar la dirección hardware (Ethernet MAC) que corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de difusión de la red (broadcast (MAC = ff ff ff ff ff ff)) que contiene la dirección IP por la que se pregunta, y se espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde.
Cada máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga. ARP permite a la dirección de Internet ser independiente de la dirección Ethernet, pero esto sólo funciona si todas las máquinas lo soportan.ARP está documentado en el RFC (Request For Comments) 826.El protocolo RARP realiza la operación inversa.
En Ethernet, la capa de enlace trabaja con direcciones físicas. El protocolo ARP se encarga de traducir las direcciones IP a direcciones MAC (direcciones físicas).Para realizar ésta conversión, el nivel de enlace utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como una dirección física MAC.

¿Qué es ARP Poisoning?

El ARP Spoofing, también conocido como ARP Poisoning o ARP Poison Routing, es una técnica usada para infiltrarse en una red Ethernet conmutada (basada en switch y no en hubs), que puede permitir al atacante husmear paquetes de datos en la LAN (red de área local), modificar el tráfico, o incluso detener el tráfico (conocido como DoS: Denegación de Servicio).
El principio del ARP Spoofing es enviar mensajes ARP falsos (falsificados, o spoofed) a la Ethernet. Normalmente la finalidad es asociar la dirección MAC del atacante con la dirección IP de otro nodo (el nodo atacado), como por ejemplo la puerta de enlace predeterminada (gateway). Cualquier tráfico dirigido a la dirección IP de ese nodo, será erróneamente enviado al atacante, en lugar de a su destino real.
El atacante, puede entonces elegir, entre reenviar el tráfico a la puerta de enlace predeterminada real (ataque pasivo o escucha), o modificar los datos antes de reenviarlos (ataque activo). El atacante puede incluso lanzar un ataque de tipo DoS (Denegación de Servicio) contra una víctima, asociando una dirección MAC inexistente con la dirección IP de la puerta de enlace predeterminada de la víctima.EL ataque de ARP Spoofing puede ser ejecutado desde una máquina controlada (el atacante ha conseguido previamente hacerse con el control de la misma: intrusión), un Jack Box, o bien la máquina del atacante está conectada directamente a la LAN Ethernet.

SWITCH <——— > Atacante <——- > Víctima

Bueno, ¿y la víctima se dará cuenta?

No, realmente no saben que están siendo snifeados. Pero, si revisan los cachés arp de las máquinas podrían ver si hay dos hosts con la misma dirección MAC y pues ahí si se dan cuenta de que algo raro pasa :O
Tiene lógica entonces… lo que haremos será envenenar las tablas ARP … para esto crearemos paquetes que mandaremos a la víctima y esperaremos que ésta modificque su tabla. Pero, entonces necesitaremos trabajar con un sniffer (proceso para analizar el tráfico en una red) activo y aquí es donde entra ettercap.
OJO! Vamos a generar tráfico con esto, por lo que un administrador de red despierto podría notar que algo “raro” pasa. De hecho a resumidas cuentas, la magia radica en que Ettercap generará muchos mensajes ARP (de ahí que se genera tanto tráfico, nada es gratis) con la idea de que lleguen antes que los del switch.

Paso 1. Instalación de Ettercap y Wireshark

Si no está en nuestros repositorios ir a: http://ettercap.sourceforge.net/
En nuestro caso, estamos en Ubuntu y la versión más reciente de Ettercap está en los repositorios, si queremos la interfaz visual hacemos:
# sudo aptitude install ettercap-gtk
Mmmm… también wireshark está en los repositorios… asi que no tiene caso seguir en este paso jeje.
Aah, pero no olvidemos habilitar el envío de paquetes, para que si nos llegan paquetes que no estén destinados a nosotros, los envie de todas formas, osea que trabaje como ruteador (buscamos no detener el flujo de datos):
# echo 1 > /proc/sys/net/ipv4/ip_forward

Paso 2. Trabajando con Ettercap

Bueno, para empezar el Sniffing nos vamos al menu Sniff > Unified sniffing … y seleccionamos la interfaz de red que queremos poner en modo monitor (la que quiere captar el tráfico).






Ok… una vez hecho ésto vemos que nuestro menú cambia y nos da más opciones, recomiendo ir preparando el terreno para que tengamos un panorama amplio de lo que se está capturando de tráfico.
Menús que vamos a activar:
Hosts > Host lists
View > Connections
View > Profiles
View > Statistics

Bueno, ya una vez que tengamos preparada la mesa, pues empezamos a hacer el Sniffing, para ésto nos vamos al menú: Start > Start Sniffing
Bueno… ahorita solo estamos capturando Broadcast y el tráfico que nosotros generamos (por decir si navegamos por Internet, etc). Lo cual está bien, pues estamos viendo que máquinas hay en la red, si quieres acelerar el proceso, puedes aventar un Ping Sweep con Nmap o abrir el Angry IP Scanner y barrer toda la red. De hecho, el mismo Ettercap cuenta con una opción para escanear hosts en el menú: Hosts > Scan for Hosts.

Ejemplo con Nmap:

# nmap -sP 192.168.1.0/24

En la pantalla del Ettercap checamos que tenemos en los perfiles:



Esas son las máquinas que nos interesan, les explico que hay en mi red:
192.168.1.254 > Un modem de Infinitum, con el que me conecto a Internet (2wire)
192.168.1.64 > Mi máquina conectada a la wireless
192.168.1.68 > La máquina de prueba (víctima)
Ok, ahora hay que planear quien será la máquina víctima… en nuestro caso será 192.168.1.68 y el otro target será el modem (router, switch, como le quieran llamar, que aunque en teoría no es lo mismo para un fin práctico aceleramos proceso).
Bueno, ahora pasemos a la magia del ataque.

Paso 3. ARP Poisoning

Ok … vamos bien… ya tenemos poblada nuestra lista de Profiles, ahora en esa misma ventana damos click en Convert to Host List para poblar nuestra pestaña de Host List. En Host List podemos ver las direcciones IP + MAC Address (la teoría cobra sentido, no?).



Bueno, pues elegimos a nuestra víctima como Target 1 (mi caso 192.168.1.68) y como Target 2 el router (192.168.1.254). Ahora solo basta con ir al menú Mitm> ARP Poisoning y seleccionamos la primera opción: Sniff Remote Connections. Damos un vistazo a la pestaña de Connections y nos damos cuenta que ya estamos capturando tráfico de la máquina víctima :)
Bueno, pero en lo personal no me gusta cómo se muestra el tráfico en Ettercap (aunque vaya, es como una navaja suiza, dense oportunidad de checar todas las opciones con las que cuenta) así que utilizaremos en vez para analizar el tráfico al buen Wireshark. Ojo! No cerramos Ettercap y corremos Wireshark como root (también Ettercap debe estar corriendo como root).

Paso 4. Analizando con Wireshark

Bueno, abrimos Wireshark, vamos al menú: Capture > Interfaces

 

 Pero… bueno, a mi gusto no es tan interesante a veces capturar TOOOODO, así que en esa parte donde elegimos la interfaz, nos vamos a Options y daremos el siguiente filtro para solo tomar TCP que es lo que por lo general nos interesa mas… le damos en Start. Otro buen filtro podría ser “tcp port http”.

 

ES TODO

ANEXO LA INSTALACION DE ETTERCAP Y WIRESHARK

# apt-get install ettercap-gtk
# apt-get install wireshark

PARA EJECUTARLOS COMO ROOT

$ sudo ettercap -G
$ sudo wireshark

ACLARO QUE EL TEXTO NO LO ESCRIBI YO PERO YA LO PROBE Y FUNCIONA ES POR ESO QUE DECIDI SOLO COPIARLO TAL VES LO DEPURE EN ALGUN MOMENTO PERO NO HOY ESTOY REALMENTE CANSADO ESPERO LES SIRVA Y EN EL TITULO LES DEJO EL ENLACE AL POST ORIGINAL.





No hay comentarios: