No es ningún secreto para nadie que WEP se encuentra desaconsejado y es “relativamente fácil” de crackear, es por esta razón que resulta sumamente atractivo para los “script kiddies” conocer las herramientas que permiten aprovecharse de estas vulnerabilidades y obtener “la contraseña” de una forma fácil, sin esfuerzo y con el mínimo conocimiento necesario. Nuevamente, la intención de esta serie de entradas es intentar explicar de la forma más clara posible, cual es el transfondo de los ataques más comunes y en que consiste realmente la vulnerabilidad que se esta aprovechando, el beneficio de este estudio permite tener una visión un poco más global de como funcionan las vulnerabilidades relacionadas con entornos inalámbricos. A continuación se describe una de las técnicas de ataque más comunes: Caffe Latte.

Caffe-Latte

Se trata de una vulnerabilidad que apareció en el año 2007 y “rompió” el paradigma que existía hasta ese momento sobre la necesidad de que un atacante se encontrara cerca del AP para conseguir romper con una clave WEP, dado que se utilizo (y actualmente se sigue utilizando) como un ataque del tipo “Client-Site” donde no hace falta que el atacante tenga señal del AP para que este pueda ejecutar ataques contra el cliente.

Consiste básicamente, en la capacidad que tienen algunos clientes (ordenadores portátiles o terminales móviles) de realizar conexiones de forma automática contra un AP conocido almacenando internamente la clave WEP para realizar la conexión. En este orden de ideas un atacante conociendo el SSID del AP que frecuentemente utiliza un determinado cliente, puede crear un Fake AP con ese mismo SSID, de este modo el cliente realizará la conexión con dicho “Fake AP” creyendo que se trata del AP original dado que coincide con el SSID almacenado. El Fake del atacante en este punto recibirá una petición de autenticación y como se recordará de anteriores entradas, un AP valido enviará un “Reto” que es simplemente un texto cifrado con la clave compartida y que el cliente debe descifrar, en este caso, el AP del atacante enviará “cualquier reto” e independiente de la respuesta que envíe el cliente sobre dicho reto, el AP retornará un paquete de “Autenticación Valida” y posteriormente se realizará el intercambio de los correspondientes paquetes de asociación. Sí, aquí existe un grave problema que es intrínseco al mecanismo de cifrado WEP este es: NO existe un mecanismo de autenticación mutua, SOLAMENTE el cliente se autentica con el AP, pero el AP no se “autentica” con el cliente, por lo tanto, el cliente no puede garantizar en ningún momento que el AP es quien dice ser. Hasta este punto no se ha conseguido nada, solamente que un cliente se autentique con un AP falso y que envíe paquetes a este en formato cifrado con una clave que es desconocida para el AP, con lo cual no podrá hacer nada con ellos. Justo en este punto es donde realmente entra en juego el ataque Caffe-Latte, el cual se lleva a cabo en los siguientes pasos:

  1. El AP puede (o no) tener un servicio DHCP asociado y en ejecución para la asignación dinámica de una dirección IP valida para los clientes que se conecten a este, en cualquiera de los casos, el cliente siempre enviará un paquete DHCP solicitando una nueva dirección IP valida.
  2. Suponiendo que el AP no cuente con un servicio DHCP en ejecución, las peticiones enviadas por el cliente para que se le asigne una dirección IP terminarán en un Timeout, con lo cual el cliente se verá obligado a utilizar una dirección IP estática por medio del servicio de auto-configuración de red del cliente (todos los sistemas operativos lo tienen).
  3. La dirección IP estática que el cliente selecciona, tiene que ser informada al AP para evitar inconsistencias con otros clientes en el mismo segmento de red, por este motivo el cliente de forma automática envía un mensaje “Gratuitous ARP” al AP para notificar la nueva la dirección que ahora usará el cliente. Como se recordará, lo único que se necesita para romper una clave WEP, son paquetes cifrados con la clave compartida, una vez se recolectan suficientes paquetes, es posible intentar realizar un proceso de crackeo (como se verá más adelante). Sabiendo esto, la metodología del Caffe Latte attack intenta inyectar este paquete ARP recibido por el cliente y posteriormente “reinyectarlo” en la red un número indefinido de veces, esto produce la siguiente situación:
    1. Cliente envía paquete ARP con lo siguiente: “Mi dirección IP es 10.10.10.10” informando al AP la dirección que ha tomado.
    2. El AP captura dicho paquete (que se encuentra cifrado con la clave WEP valida) y como se recordará de la entrada anterior, se comienza a realizar la Modificación e Inyección del mensaje en red ejecutando el correspondiente procedimiento de “XORing” del paquete, con un ICV y CRC32 valido, (Recordar que el paquete ARP recibido por el cliente esta cifrado con la clave WEP y por lo tanto no es posible verlo en texto claro sin conocer dicha clave, por este motivo el proceso de “XORing” ha sido necesario, tal como se explico en la publicación anterior). Una vez creado el paquete cifrado y valido, el AP falso intenta inyectarlo en la red con lo siguiente: “Quien tiene la dirección IP 10.10.10.10 desde 10.10.10.50?” AQUÍ esta la “magia” del Caffe Latte Attack! El paquete que el AP ha modificado, solamente ha cambiado en el sentido de los campos del paquete, en concreto, los campos correspondientes al origen (Source IP y Source MAC del paquete original del cliente) ahora son los campos TARGET del nuevo paquete inyectado y los campos de origen han sido calculados simplemente ejecutando el proceso de “XORing” (que como se puede apreciar, solamente han afectado al Bit menos significativo de la dirección IP, por ende la misma dirección IP es valida para el segmento de red que el cliente ha seleccionado en su “auto configuración” en este ejemplo 10.10.10.<BIT_MENOS_SIGNIFICATIVO>). Este paquete se va a “repetir” de forma indefinida y el cliente, como el lector ya imaginará, siempre responderá a dicha petición ARP indicando que “él tiene la dirección 10.10.10.10)El concepto global se puede apreciar mejor en la siguiente imagen:
    3. Finalmente, cuando se recolecten suficientes IV como resultado del proceso de inyección del paquete ARP, se puede proceder a ejecutar un proceso de crackeo offline utilizando herramientas como Aircrack-ng.

Ahora bien, es posible utilizar Aircrack para llevar a cabo este ataque de una forma rápida y sencilla, solamente es necesario utilizar el comando airbase-ng de dicha suite utilizando la opción “-L” la cual se encarga de activar el modo “Caffe Latte” y ejecutar de forma automática todos los pasos que se han descrito anteriormente, solamente es necesario establecer un SSID que de antemano se sepa que es utilizado por un cliente determinado y que además cuenta con clientes que probablemente puedan tener configuración de conexión automática.

>airbase-ng -c 3 –eesid MACDONALDS_WIFI mon0 -L -x 15

Con el comando anterior, solamente basta esperar a que un cliente utilice dicho SSID para conectarse, una vez esto ocurra, solamente será necesario esperar unos segundos para recibir el paquete “Gratuitous ARP” por parte del cliente y Aircrack-ng comenzará de forma automática con todo el proceso explicado anteriormente. Lo que ocurrirá “detrás de escenas” será que el AP falso enviará constantemente paquetes ARP y el cliente responderá de la misma forma a dichas peticiones. Paralelamente se puede iniciar la herramienta airodump-ng para capturar dichos paquetes (y sus correspondientes IV)

>airodump-ng – –channel 3 – –write CaffeLatte mon0

Ahora, solamente es necesario esperar y ver como la columna de datos crece de f forma considerable para el SSID “MACDONADS_WIFI” (este es solamente un ejemplo) y posteriormente ejecutar aircrack-ng con el fichero PCAP generado.

Ahora bien, probar este tipo de ataque probablemente resulte sencillo para el lector, n no obstante los conceptos teóricos expuestos en esta publicación son lo que realmente resultan interesantes dado que en ocasiones se suele indicar como funcionan comandos de aircrack-ng, pero en pocas ocasiones se suele explicar en que consisten los ataques que se llevan a cabo y que vulnerabilidades se están explotando. Espero que en esta publicación (así como en las anteriores y en las venideras) el aporte realmente significativo sea el de comprender realmente que es lo que estamos “explotando” y que proceso se lleva a cabo.