Inicio > Cracking, Hacking, Networking > Wireless Hacking – Ataques contra WEP – Ataque de Fragmentación – Parte X

Wireless Hacking – Ataques contra WEP – Ataque de Fragmentación – Parte X


El ataque de fragmentación es una técnica que le permite a un atacante generar e inyectar paquetes cifrados en una red WEP sin la necesidad de conocer la clave, solamente es necesario capturar un paquete cifrado en la red y posteriormente aplicar este ataque. Para comprender correctamente como funciona, nuevamente se parte de los conceptos que se han explicado anteriormente en la publicación correspondiente a “Cracking WEP” de esta serie de publicaciones. No obstante, antes de continuar, es importante entender el concepto de “Fragmentación” que es aplicable no solamente a las redes inalámbricas, sino también a las redes cableadas.

Que es la Framentación?

Cuando se desea transmitir cualquier paquete sobre un canal de comunicación existe un limite de tamaño para todos los paquetes que transitan, este limite es conocido como MTU (Unidad Máxima de Transferencia por sus siglas en ingles). Todos los paquetes que viajan en una red, deben respetar esta unidad para que puedan transitar por la red. Sin embargo, que ocurre cuando un paquete de datos necesita transferir un número de bytes superior a los que están permitidos en la medida MTU? Dichos paquetes son fragmentados en piezas más pequeñas y enviados de forma independiente a su correspondiente destino. Todos estos “trozos” del frame completo son recolectados por el cliente y posteriormente son recompuestos. Para que el cliente pueda conocer el orden de cada uno de los fragmentos y de esta forma poder construir el frame original completo, se basa en dos campos en cada uno de los paquetes que son vitales para que este proceso pueda llevarse a cabo, estos campos son “Sequence Control” y “More Flags” si el lector ha seguido esta serie de publicaciones, probablemente recordará que en la parte 3 (http://thehackerway.com/2012/03/23/wireless-hacking-terminologia-y-estructura-de-paquetes-wireless-parte-iii/), se ha hablado sobre la estructura de los paquetes wireless, en donde se menciono estos dos campos. El campo “Sequence Control” es una de las estructuras principales del paquete, mientras que el campo “More Flags” se encuentra localizado al interior de la estructura “Frame Control” tal como se enseña en la siguiente imagen:

Como puede apreciarse en la imagen anterior, los las estructuras “Frame Control” y “Sequence Control” son las que se utilizan para la fragmentación de paquetes, donde en primer termino, el campo “Sequence Number” tiene un valor constante para todos los fragmentos enviados mientras que el “Fragment Number” tiene un valor variable, ya que identifica la posición del fragmento, esto quiere decir simplemente que el fragmento “3” se debe recomponer justo antes que el fragmento “4” simplemente es una medida de control que permite definir el orden de cada uno de los fragmentos. Por otro lado el campo “More Flags” le indica al receptor si existen más fragmentos para terminar la transferencia del frame entero o si por el contrario, hacen falta más paquetes antes de completar la entrega, este campo siempre tiene el valor de “1” indicando que existen más fragmentos en transito, solamente asume un valor de “0” cuando se trata del ultimo fragmento que compone un paquete entero, una vez que dicho fragmento llega al receptor, este puede proceder a recomponer el paquete utilizando cada uno de los fragmentos recibidos. Pero y esto como “encaja” en un ataque contra una red inalámbrica?

Como funciona el Ataque de Fragmentación?

Como se recordará, el algoritmo utilizado para el cifrado WEP es el RC4 y se basa en un procesamiento de XOR entre el “KeyStream” y el texto plano. Partiendo de esto, en el mundo de la criptografía existe un ataque para descifrar un texto cifrado partiendo del conocimiento de una fracción del mensaje original en texto plano, es decir, es que es posible descifrar un paquete cifrado con WEP (el cual ha llevado a cabo un procesamiento de “XORing”) simplemente conociendo una parte del mensaje original (antes de cifrar). Como se ha indicado anteriormente, el cifrado WEP se basa en un proceso de XOR entre el KeyStream (la clave) y el texto plano, el cual es un procedimiento perfectamente reversible conociendo uno de los elementos involucrados, como por ejemplo el texto plano o la clave WEP. Ahora bien, el objetivo del ataque de fragmentación es obtener el KeyStream utilizado para cifrar un paquete, este KeyStream es también conocido como PRGA (Pseudo Random Generation Algorithm) el cual posteriormente puede ser empleado para construir cualquier tipo de paquete que será perfectamente valido para el AP. Evidentemente estos paquetes pueden ser útiles para llevar a cabo ataques de inyección que posteriormente podrán servir para crackear la clave WEP de un AP.

Ahora se procede a explicar como funciona este ataque comenzando por el principio.

  1. En primer lugar es necesario capturar un paquete WEP valido, el cual contenga el header “LLC” (Logical-Link Control) este campo esta compuesto por una sección que es estática (es común en todos los paquetes aunque estos estén cifrados) y otra que es la parte que corresponde al protocolo del paquete (ARP, DNS, IP, etc.) Este encabezado del paquete se encuentra localizado en los primeros 8 bytes del paquete, por lo tanto se puede inferir que se conocen los 8 primeros bytes del paquete en texto plano, partiendo de este hecho se puede realizar lo que en criptografía se conoce como “Known plain text Attack”

  2. Con los primeros 8 bytes del paquete asumiendo que se tratan del LLC header y con el paquete cifrado que se ha capturado, se ejecuta una operación de XOR lo que dará como resultado el KeyStream (PRGA) con un tamaño de 8 bytes. Es posible obtener 8 bytes del keystream ejecutando una operación de XORing entre un paquete cifrado con el texto plano conocido del LLC Header.

  3. Se cuenta con 8 bytes del KeyStream y con su correspondiente IV que se encuentra en texto plano en cada paquete. Ahora es posible tomar 4 bytes de datos, 4 bytes para el ICV y ejecutar el proceso de “XORing” entre este paquete y el KeyStream generado, esto dará como resultado un pequeño paquete de 4 bytes de datos y 4 bytes correspondientes al ICV (estos 4 bytes en el ICV son requeridos en todos los paquetes que acepta un AP o un cliente con WEP) este pequeño paquete es perfectamente valido, puede ser enviado y aceptado sin ningún problema por cualquier integrante de la red (cliente o AP). Sin embargo, en un tamaño máximo de 4 bytes para datos es muy poco lo que se puede enviar.

  4. Ahora bien, el paquete que realmente se desea inyectar en la red posiblemente contendrá una longitud mucho mayor a 4 bytes, por este motivo se utiliza la técnica de “Fragmentación” para dividir el paquete que se desea inyectar en pequeños fragmentos de 4 bytes de datos (a los que posteriormente se les adicionarán los bytes correspondientes al ICV). Sin embargo, para ello es importante tener en cuenta que la técnica de fragmentación solamente admite un máximo de 16 fragmentos, con lo cual, solamente será posible enviar 64 bytes de información (dado que solamente se pueden transmitir 4 bytes de datos por fragmento enviado) este tamaño será suficiente para realizar ataques de inyección y recolección de ICV para posteriormente realizar el crackeo de la clave WEP.

Ahora bien, todo el procedimiento anterior, puede explicarse en la siguiente imagen.

Como se aplica el conocimiento anterior en un ejemplo practico? Es posible aplicar este ataque contra una red wifi con WEP utilizando la suite de herramientas de aircrack-ng, para ello se puede utilizar el siguiente comando:

>aireplay-ng –fragment -b 00:19:70:56:48:97 mon0

Use this packet ?

Size: 308, FromDS: 0, ToDS: 1 (WEP)

BSSID = 00:19:70:56:48:97

Dest. MAC = FF:FF:FF:FF:FF:ED

Source MAC = 4C:0F:6E:E9:7F:16

0x0000: 0841 3a01 0019 7056 4897 4c0f 6ee9 7f16 .A:…pVH.L.n..

0x0010: ffff ffff ffed 044a 32e8 0b00 9ec7 d32a …….J2……*

0x0020: 26af bf1c a351 71b9 600b 989f ca8b d602 &….Qq.`…….

0x0030: cbb3 1075 c046 e729 c790 e3bf e9c4 a3fa …u.F.)……..

0x0040: b8c6 a0a5 0574 56d8 ce76 cf22 575c 94ba …..tV..v.”W\..

0x0050: c44e 23d4 5985 8335 c616 8fc8 ec4e d757 .N#.Y..5…..N.W

0x0060: ebdb de54 eef0 39b5 60fd 587d 9d8d 95e1 …T..9.`.X}….

0x0070: 3adb 95d6 cdb9 b15f 23a2 1e60 6587 89bb :……_#..`e…

0x0080: d52a b068 1462 d349 1084 df24 5d9a bc2c .*.h.b.I…$]..,

0x0090: e1b3 cc45 aa7e 742b bf90 4204 1bf4 624c …E.~t+..B…bL

0x00a0: 26ab 4fbc 3f1c 1957 a0a3 b18b d6bc 1add &.O.?..W……..

0x00b0: 2c04 f9d8 3602 5d4d e6c1 38ce 8d1e a405 ,…6.]M..8…..

0x00c0: 64b5 50aa e06a 57fc daac 9ce3 7469 feea d.P..jW…..ti..

0x00d0: 2a5c 5d1e 7c8a b034 24e2 fba6 7f5b 2bbf *\].|..4$…[+.

— CUT —

Use this packet ? y

Saving chosen packet in replay_src-0304-012908.cap

01:29:10 Data packet found!

01:29:10 Sending fragmented packet

01:29:11 Got RELAYED packet!!

01:29:11 Trying to get 384 bytes of a keystream

01:29:11 Got RELAYED packet!!

01:29:11 Trying to get 1500 bytes of a keystream

01:29:11 Not enough acks, repeating…

01:29:11 Trying to get 1500 bytes of a keystream

01:29:11 Got RELAYED packet!!

Saving keystream in fragment-0304-012911.xor

Now you can build a packet with packetforge-ng out of that 1500 bytes keystream

Como puede apreciarse de la salida anterior, se ha capturado un paquete cifrado para el AP indicado en la opción “-b” y posteriormente aircrack-ng ha intentado generar un keystream valido partiendo de las explicaciones que se han dado en párrafos anteriores. Una vez que el ataque ha terminado, se ha generado el PRGA (keystream) el cual se ha almacenado con el nombre de fragment-0304-012911.xor este fichero puede ser utilizado con el fin de generar paquetes que sean perfectamente validos para el cliente o el AP sin conocer la clave WEP para posteriormente ejecutar cualquiera de los ataques de inyección de paquetes explicados en publicaciones anteriores. Para la generación de dichos paquetes se suele utilizar la herramienta packetforge-ng. A continuación se indica el uso de packetforge-ng

Generación de Paquetes utilizando packetforge-ng de Aircrack-ng

Con el fichero generado anteriormente (fichero XOR) es posible construir varios tipos de paquetes y una de las herramientas que se puede utilizar para dicho fin es packetforge-ng. Esta herramienta permite la generación de diferentes tipos de paquetes, tales como ARP, UDP, ICMP o un paquete personalizado. Partiendo del fichero generado anteriormente, puede ejecutarse el siguiente comando:

>packetforge-ng -y fragment-0304-012911.xor -w arp-request –arp -a 00:19:70:56:48:97 -h 4c:0f:6e:e9:7f:16 -k 192.168.1.1 -l 192.168.1.33

NOTA: Esta aplicación no necesita ser instalada de forma independiente, viene ya incluida en “aircrack-ng”.

El comando anterior simplemente ha recibido como parámetro el fichero “xor” resultante del ataque de fragmentación (-y) el nombre que tendrá el paquete creado (-w) el modo, que es este caso es ARP (–arp) la dirección MAC del AP (-a) la dirección MAC del cliente (-h) la dirección IP del AP (-k) la dirección IP del cliente (-l)

Las opciones incluidas en este comando son todas de carácter obligatorio para que el comando funcione correctamente y genere el fichero PCAP correspondiente.

NOTA: Los posibles modos disponibles en packetforge-ng son: –arp, –udp, –icmp, –custom

Una vez termina la ejecución del comando anterior, se podrá ver que se ha generado un nuevo fichero PCAP, el cual podrá ser visualizado utilizando una herramienta como wireshark, no obstante, el contenido se encontrará cifrado con la clave WEP, que hasta este punto se desconoce.

Como ya se ha mencionado este paquete podrá ser utilizado posteriormente para realizar diferentes tipos de ataques de inyección de mensajes (como por ejemplo usando el Hirte Attack) que se explicará en la próxima publicación.

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 932 seguidores

%d personas les gusta esto: