Introducción A Los Ataques Man in The Middle
Introducción A Los Ataques Man in The Middle
Introducción A Los Ataques Man in The Middle
LOS
ATAQUES
MAN
IN
THE
MIDDLE
Hoy en da cuando se habla de realizar un ataque MITM en redes LAN a todos se nos viene a la cabeza el trmino ARP Poisoning. La tcnica, a grandes rasgos, consiste en envenenar la cache ARP de un cliente de una red LAN para hacerle creer que la MAC de la puerta de enlace es la direccin MAC del equipo atacante, pudiendo de este modo situar la mquina del atacante en medio de las comunicaciones efectuadas entre el equipo vctima y la puerta de enlace. Con el siguiente grfico sacado de la Wikipedia nos podemos hacer una idea de su funcionamiento:
Figura 1: ARP Poisoning Sin embargo, para detectar estos ataques existen ya infinidad de herramientas como ArpON, Patriot NG. Incluso para Mac OS X, nuestros compaeros de Seguridad Apple hicieron un script basado en nmap y arp_cop para detectar tambin los ataques man in the middle. Sin embargo, existe otra forma muy sencilla de realizar un ataque MITM en redes LAN utilizando el protocolo DHCP. El Protocolo DHCP DHCP (sigla en ingls de Dynamic Host Configuration Protocol - Protocolo de configuracin dinmica de host) es un protocolo de red que permite a los clientes de una red IP obtener sus parmetros de configuracin automticamente. Se trata de un protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinmicas y las va asignando a los clientes conforme stas van estando libres, sabiendo en todo momento quin ha estado en posesin de esa IP, cunto tiempo la ha tenido y a quin se la ha asignado despus.
Figura 2: Comunicacin DHCP Los pasos que definen su funcionamiento son los siguientes: El cliente enva un paquete DISCOVERY para que el servidor DHCP de dicha red de computadoras le asigne una Direccin IP y otros parmetros como la mscara de red o el nombre DNS. A continuacin el servidor DHCP responde con un OFFER en el que suministra una serie de parmetros al cliente, IP, puerta de enlace, DNS, etctera. El cliente selecciona los parmetros que le interesan y con un REQUEST solicita estos parmetros al servidor. Por ltimo el servidor reconoce que se ha reservado correctamente los parmetros solicitados con un DHCP ACK y se los enva al cliente. Una vez que conocemos como funciona el protocolo, cmo podemos aprovecharlo para realizar ataques MITM? Servidor DHCP falso: Roge DHCP Server Una opcin es configurar un servidor DHCP falso, por ejemplo con el demonio dhcp3 de Linux. De esta forma cuando el cliente enva un DISCOVERY responden con un OFFER tanto el DHCP real como el servidor DHCP que hemos montado en Linux. Pero a quin hace caso el cliente? Pues al que consiga enviar antes al cliente la respuesta DHCP OFFER, unas veces puede ser nuestro servicio dhcp3, otras el servidor DHCP real. Para realizar esto de una forma sencilla se puede utilizar el programa Ghost Phisher. ste monta un servidor DHCP falso utilizando el servicio dhcp3, tambin permite montar un servidor DNS que resuelva determinadas direcciones o todas
hacia una IP que le indiquemos. Lo malo de este ataque es que podemos detectar fcilmente que existen 2 servidores DHCP. Con Wireshark mismamente podemos ver que responden a las peticiones DHCP dos direcciones IP distintas:
Figura 3: DCHP Offer desde distintas direcciones IP Otro de los problemas es que necesitamos conocer a priori el rango de direcciones IP vlidas y podra darse el caso de que nuestro servidor DHCP asigne direcciones IP que ya se encuentras asignadas a otros usuarios. DHCP ACK Injection Attack
Figura 4: DHCP ACK Injection attack Existe otro posible ataque. Dado que toda la comunicacin DHCP se realiza enviando los paquetes a la direccin MAC de broadcast FF:FF:FF:FF:FF:FF todos los clientes de la LAN reciben los paquetes DHCP. As que existe la posibilidad de que un atacante monitorice los intercambios DHCP y en un determinado punto de la comunicacin enve un paquete especialmente formado para modificar su comportamiento. Uno de los puntos donde nos interesara intervenir es cuando el servidor reconoce
con un DHCP ACK la configuracin del cliente. Primero se tiene que escuchar toda la comunicacin poniendo atencin en el paquete REQUEST donde el cliente solicita la IP, DNS, Gateway de aquellos datos que anteriormente le ha ofrecido el servidor DHCP. Una vez recibido el REQUEST podramos responder con un ACK como lo hara el servidor DHCP real pero estableciendo la configuracin a nuestro antojo. Ventajas e Inconvenientes de DHCP Injection Attack La ventaja de este ataque es que no se necesita conocer el rango de direcciones IP vlidas ni que direcciones estn libres y cuales ocupadas. Dejamos que el servidor DHCP real nos d toda esta informacin y solo se interviene en la fase final, en el reconocimiento que da el servidor sobre la configuracin seleccionada. Otra ventaja es que es ms difcil de detectar a da de hoy que los ataques ARPSPoofing. Solo se enva un paquete y este puede ser enviado con la IP spoofeada del servidor DHCP, y sera necesario que existieran reglas que validasen todos los paquetes DHCP de la red. El problema como en el anterior escenario es que respondera tanto el atacante como el servidor DHCP real y el cliente solo har caso al primero de ellos que responda. Algunas veces ser ms rpido el servidor DHCP otras nuestro programa. DHCP ACK Injector Para automatizar este ataque en Informatica64 hemos desarrollado una aplicacin en C#, es necesario tener instalado el .NET Framework 3.5. Aqu podemos ver su aspecto:
En Wireshark la comunicacin DHCP de un cliente que solicita una nueva direccin IP se ve as:
Figura 6: Captura de Wireshark con el DHCP Injection Attack En rojo se han remarcado los dos paquetes ACK, el falso y a continuacin el verdadero. La IP es la misma lo nico que vara es la direccin MAC de origen del paquete ya que a los routers no les gusta mucho reenviar paquetes con su propia direccin MAC. Ntese que la diferencia entre el primer y el segundo ACK es de escasos 750 ms. Es importante responder lo ms rpido posible. En los detalles del protocolo DHCP podemos ver los datos falsos enviados en nuestro paquete ACK.
Figura 7: Detalles del paquete DHCP modificado DHCP ACK Injector se ha desarrollado este mismo programa en C y, aunque ha sido desarrollado para Windows haciendo uso de WinPcap, creemos que no tendr que ser muy complicado migrarlo a Linux, as que es probable que lo portemos.