Inicio > Hacking, Networking, Services - Software > Wireless Hacking – Terminologia y Estructura de paquetes Wireless – Parte III

Wireless Hacking – Terminologia y Estructura de paquetes Wireless – Parte III


Esta entrada, es una de las más importantes en esta serie, dado que afianza los conceptos teóricos que se deben conocer en profundidad antes de comenzar a hablar sobre temas avanzados sobre seguridad en redes inalámbricas, se hará en primer termino énfasis en en los entornos de red inalámbricos y las arquitecturas de red relacionadas, posteriormente se hablará sobre el contenido de los headers de un paquete wireless que difiere un poco de como son los paquetes ethernet.

AP: Como se ha indicado anteriormente es el Access Point o punto de acceso que brinda determinados servicios relacionados con la conectividad en una red centralizada. Es un elemento bastante común en redes inalámbricas donde existen clientes que se conectan a dicho AP para conseguir una salida a internet, dado que normalmente los AP están soportados con servicios DHCP que asignan de forma dinámica direcciones IP a los clientes que se conectan.

STA: Estación inalámbrica, se refiere a un ordenador o dispositivo móvil con facilidades de conexión wifi

BSS: Se trata de una estructura básica de servicios (Basic Service Set) que contiene entidades que se comunican entre si, se dividen en dos categorías,

  • BSS de Infraestructura: Escenario típico en el que existen un conjunto de clientes y un AP que brida servicios de conectividad.
  • BSS Independiente o AD-HOC: Escenario en el que no existe un AP centralizado, en lugar de esto, existe un conjunto de nodos (clientes) que se conectan entre si e intercambian paquetes de datos entre ellos.

BSSID: Se trata del identificador que asume un BSS que lo identifica de forma única, en el caso de un BSS centralizado (Clientes – AP) este valor es equivalente a la MAC del AP, en el caso de un BSS descentralizado (AD-HOC) este valor se genera aleatoriamente utilizando la MAC del primer cliente que ha iniciado la conexión con otros clientes.

ESS: Partiendo de la definición de BSS, un ESS es un conjunto de BSS conectados entre si (Extended Service Set)

DS: (Distribution System) es el conector de la arquitectura de red empleada para conectar AP’s que se encuentran localizados en diferentes BSS y que permite establecer la estructura base para crear ESS.

WDS: (Wireless Distribution System) se trata de un sistema que permite la interconexión entre varios AP, sirviendo como “relay” entre múltiples puntos de acceso. Frecuentemente este tipo mecanismos son empleados para la ampliación de la cobertura de redes inalámbricas.

ESTRUCTURA DE LOS HEADER DE UN PAQUETE WIRELESS

A continuación se detallan los campos que contiene un paquete WLAN que viaja en un entorno de red inalámbrico, los paquetes en una red inalámbricas son muy similares a los paquetes que viajan en una red ethernet, la siguiente imagen enseña cuales son los campos que contienen y la longitud máxima de cada una de esta “fracciones” del paquete.

Ahora bien, todos los headers de un paquete determinado, desde el segmento correspondiente al “Destination Address” hasta el “Frame Body” inclusive, puede o no aparecer en un paquete wireless, dependiendo del tipo de tipo y sub-tipo del paquete capturado, tal como se pudo apreciar en la entrada anterior, existen 3 tipos de paquetes, Management, Control y Data, los cuales a su vez tienen una serie de subtipos determinados, la combinación de estos tipo y sus correspondientes subtipos determinan la aparición de algunos de los segmentos del paquete wireless o su ausencia.

Es importante anotar que todos los demás segmentos aparecerán siempre de forma obligatoria independiente del tipo de paquete (Management, Control, Data), es decir, los campos “Frame Control”, “Duration ID”, Source Address” y “FCS” siempre vienen incluidos en un paquete wireless.

Frame Control:

Este fragmento del paquete contiene información muchísima información sobre el paquete capturado, de hecho el campo frame control, se encuentra dividido en pequeñas estructuras de información que componen el campo entero (recordar que su tamaño es de 2 Bytes) el contenido de las estructuras de este campo y sus correspondientes tamaños en bits es el siguiente

  1. Protocol: También puede verse como “Version” y básicamente es un campo que identifica el estándar actual según la IEEE para el paquete wlan, por defecto su valor siempre es 0, no obstante, este valor podría cambiar en un futuro si una nueva versión es liberada y no es compatible con la versión anterior.
  2. Type / SubType Identifica el tipo de paquete, los valores de este campo pueden ser Management, Control o Data. Por otro lado SubTyperepresenta el identificador del subtipo relacionado con el campo “Type”.
  3. To DS / From DS: Estos dos campos que tienen un valor de un bit cada uno (0 o 1) indica el origen y el destino del paquete, la combinación de los posibles valores de estos dos campos definen el sentido del paquete de la siguiente forma:
    TO DS FROM DS SIGNIFICADO
    0 0 Indica que el paquete viaja de STA a STA (AD-HOC) lo que indica que el paquete viaja sobre un BSS independiente, También se establecen estos valores cuando se trata de Frames de Control o Management, (ver el campo “Type”). Dado lo anterior, solamente puede afirmarse que se trata de un paquete entre dos STA o una red AD-HOC cuando el tipo de paquete sea de datos, Type=“Data”.
    0 1 Indica que el paquete ha “salido” o proviene de un Sistema de distribución (DS), un ejemplo de esta combinación es cuando un AP envía el paquete a un cliente wireless
    1 0 Indica que el paquete va “dirigido” hacia un Sistema de distribución (DS), un ejemplo de esta combinación es cuando un cliente wireless (ordenador o dispositivo móvil) envía el paquete a un AP.
    1 1 Indica que se esta utilizando un WDS.
  4. More Frags: Indica si existen más fragmentos de este frame que deben ser “recompuestos” esto normalmente ocurre cuando el tamaño del campo “Frame Control” no es suficiente para cubrir todos los datos que se están enviando (recordar que este campo tiene un tamaño de 2 bytes), este Flag solamente es aplicable a frames Data y Management y normalmente indica que un paquete esta siendo fragmentado dado su tamaño y se esta enviando por pequeñas partes. Este campo tiene un valor de 0 cuando se trata del último fragmento enviado o cuando simplemente no se ha fragmentado el paquete. Este campo tiene una estrecha relación con el la estructura Sequence Control localizada en los headers del paquete, dicha estructura se encuentra subdividida en dos campos Sequence Number y Fragment Number de los cuales, el primero indica el número de secuencia y es un valor fijo para todos los fragmentos enviados y el segundo es un valor variable que identifica el número de fragmento enviado, el cual posteriormente será utilizado para recomponer en orden cada uno de los fragmentos recibidos. Todos estos conceptos se verán en un nivel de detalle mucho mayor en proximas publicaciones cuando se trate el tema de “Ataques de fragmentación”.
  5. Retry: Indica si el frame actual es una retransmisión de un fragmento previamente transmitido, solamente es aplicable a los frames Management y Data. Es útil para que el receptor reconozca transmisiones duplicadas de frames.
  6. Power mgmt: Indica el modo de administración de poder (active o save) que tendrá el cliente (STA) después de la transmisión del frame.
  7. More Data: Indica que existen más frames en el buffer del cliente que serán enviados al destino.
  8. Protected Frame: Indica que el frame esta cifrado utilizando alguno de los mecanismos de protección disponibles para tal fin, como por ejemplo WEP o WPA/WPA. Es aplicable a frames de tipo DATA y Management de tipo Auth. El valor de 0 indica que no existe cifrado alguno.
  9. Order: Indica si el frame esta siendo enviado usando la clase de “Orden Estricto” como se define en el estándar o no.

DURATION/ID

Este campo puede asumir uno de dos valores, Duration o ID dependiendo de una serie de factores, en primer lugar se introduce un nuevo concepto que es NAV (Network Allocation Vector), NAV es simplemente una medición que determina la cantidad mínima (normalmente micro/nano segundos) de tiempo que un cliente (STA) necesita esperar antes de intentar una transmisión. Por ejemplo, partiendo del supuesto que existe una red donde existen N clientes conectados a un AP, los cuales transmiten información a dicho AP utilizando, evidentemente, el mismo canal de transmisión, cuando uno de estos clientes se encuentra transmitiendo datos al AP, utiliza el valor de NAV para hacerle saber a los demás clientes que deben esperar como mínimo dicha cantidad de tiempo antes de intentar realizar una transmisión.

Por otro lado el campo ID es utilizando cuando el tipo de subtipo del frame es Power-Save (Poll Message).

DESTINATION – SOURCE – BSSID

Se trata simplemente de las direcciones MAC del destino, origen y BSSID (ver en párrafos anteriores como se determina el valor del BSSID) estos campos no aparecen en todos los paquetes wireless, solamente aparecerán en función al tipo y subtipo del paquete.

SEQUENCE CONTROL

Se trata de un campo que se encuentra subdividido en dos valores, estos son número de secuencia y número de fragmento. El número de secuencia es básicamente el número de secuencia del paquete transmitido por una entidad wireless y el número de fragmento es el número de fragmento del paquete (en el caso de que el paquete sea un fragmento), como se ha visto anteriormente en el campo More Frags del Frame Control, es posible que un frame se encuentre fragmentado en varias “piezas” o no, en función a este valor, el número de fragmento del Sequence Control tendrá un valor superior a cero, en el caso de que el frame no este fragmentado el valor será 0. Ademas, el valor de Sequence Control siempre asumirá un valor fijo para todos los fragmentos enviados, mientras que el valor de Fragment Number tendrá un valor único para cada fragmento.

QoS CONTROL

Este campo indica la calidad del servicio entre las entidades wireless que participan en la comunicación.

FRAME BODY

Se trata del header que mayor información puede contener, dado que en su interior se almacena el payload entero del paquete, es decir, los datos que se están trasmitiendo al destinatario de la comunicación. Por otro lado, también es posible que contenga información relacionada con el tipo y subtipo del paquete cuando se manejan frames del tipo Management.

Normalmente cuando un paquete es capturado desde wireshark y este es de tipo Management, este campo se encuentra contenido en el nodo “IEEE 802.11 wireless LAN management frame” y contiene dos nodos adicionales que son “Fixed Parameters” y “Tagged Parameters” estos campos contienen bastante información que es útil para comprender en profundidad detalles sobre el entorno de red y los participantes en la comunicación.

FCS (Frame Check Sequence)

Este campo almacena el resultado del chequeo de redundancia cíclica del frame entero (CRC) con el fin de verificar que el contenido del paquete es correcto.

FLUJO DE PAQUETES ENTRE CLIENTE Y ACCESS POINT

Cuando un cliente encuentra un AP en su área, el procedimiento de conexión, autenticación, intercambio de paquetes y posterior desconexión sigue un flujo de paquetes que difiere de la forma en la que lo hacen los clientes de una red cableada, la razón de esto es precisamente por las características propias de una red inalámbrica, en la que juegan múltiples factores relacionados principalmente con el entorno, los AP y los clientes se vuelven accesibles e inaccesibles de forma constante, además la intensidad de la frecuencia con la que se comunican las distintas entidades en un entorno inalámbrico se ve afectada frecuentemente por obstáculos e interferencias en el aire.

Dado este escenario, el intercambio de paquetes intercambiados entre cliente y AP tienen la siguiente estructura
El diagrama anterior, resulta fácil de entender, ya que resume de forma clara cuales son los diferentes estados en los que se encuentra un cliente antes de tener acceso a un AP. Como puede verse en el estado 1, un cliente solamente tiene conocimiento del AP gracias a los Beacon Frames que este envía como señales Broadcast, no obstante el cliente aun no tiene ningún tipo de relación con dicho AP. En el estado 2, el cliente realiza el proceso de autenticación con el AP, sin embargo aun no se encuentra asociado con el mismo. En el estado 3 se lleva a cabo el proceso de asociación del cliente con el AP (después de una autenticación exitosa). La asociación es el proceso mediante el cual, el AP reconoce al cliente, en este punto si el AP utiliza un servicio DHCP, se le asignará de forma automática una dirección IP a dicho cliente, en el caso contrario (dirección IP estática) el enviará su dirección IP asignada de forma automatica por el dispositivo al AP, este a su vez registrará dicha dirección en su tabla de direcciones interna (normalmente utilizando protocolo ARP).

Finalmente, en cualquiera de los estados anteriores puede existir una notificación de “DeAutenticacion” la cual indica a ambas partes (AP y Cliente) que la asociación se ha perdido, lo que puede deberse a muchísimas causas, normalmente asociadas con la conectividad, en tales casos, dependiendo de la configuración del cliente, se enviaran paquetes de re-asociación indicándole al AP que se debe iniciar nuevamente el proceso de asociación con entre ambas partes. Este escenario puede generar una denegación de servicio de una forma muy fácil, ya que cualquiera puede generar dichos paquetes de DeAutenticacion entre la comunicación de un cliente y un AP. Esto se verá con mayor detalle en próximas publicaciones.

  1. julio 29, 2012 en 9:06 pm | #1

    Hola man, NAV es NA “Vector”, yo se que lo sabes, Error de tipeo sin duda.
    Abrazo.
    Leon!!!

  1. abril 20, 2012 en 5:02 pm | #1
Disculpa, debes iniciar sesión para escribir un comentario.
Seguir

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

Únete a otros 777 seguidores

%d personas les gusta esto: