Mostrando entradas con la etiqueta Wireless. Mostrar todas las entradas
Mostrando entradas con la etiqueta Wireless. Mostrar todas las entradas

11 de noviembre de 2008

WPA-PSK (TKIP) Owned

Hace unos días hablábamos de casos no contemplados y esta mañana me he despertado con uno de ellos. ¿Recordais el ataque Chop-Chop contra cifrados WEP? La suite de aircrack incluye en aireplay un ataque específico “Chop-Chop”, del cual podemos ver un ejemplo aquí.

Resumiendo mucho, este ataque eliminaba un byte de la trama cifrada con WEP y creaba un mensaje válido aplicando una modificación relacionada directamente con el byte sin cifrar. Korek fue el primer hacker en implementar este ataque por inducción. La metodología es sencilla, prueba y error hasta obtener el valor correcto de la trama descifrada (partiendo de ese primer byte que “cortabamos”). Los que habitualmente leéis a Security Art Work (sindicada en este blog) podréis ampliar la información con el proyecto de fin de carrera que Roberto Amado publicó a raíz de la “polémica” suscitada con la roptura de WPA2 valiéndose de GPUs que llegó a meneame, con lo que ello suele significar.

Bien, una variante del Chop-Chop ha permitido obtener una vulnerabilidad nueva en WPA-PSK (TKIP) que, como sabemos, es un WEP modificado que implementa muchas de sus funcionalidades para el cifrado (eso sí, corregidas). Esto ha provocado el primer ataque que no es por “fuerza bruta” ni de denegación de servicio contra WPA. Los requisitos para su ejecución son los siguientes:
  • La red a atacar debe usar TKIP (WPA).
  • IPv4 es necesario, a su vez es necesario conocer la mayor parte de los bytes de la dirección de red. Ejemplo: 192.168.1.X
  • El refresco de claves de TKIP debe ser alto (3600 segundos, indican).
  • La red debe soportar los atributos de QoS que marca el iEEE 802.11e (esto es lo más importante).

Voy a resumir muy brevemente el ataque, intentaré que sea de forma sencilla, por que es bastante complicado. El atacante esnifa tráfico ARP (aircrack los detecta por que tienen una longitud reconocida). Observando y conociendo la direcciones de red de origen y destino que no son cifradas, excepto el último byte (así está implementado) junto con los 8 bytes de MICHAEL y MIC (sirven para comprobar que el paquete no ha sido modificado) y el checksum del ICV y a sabiendas de que el comportamiento de TKIP rechaza los paquetes con:

  • ICV incorrectos.
  • MIC incorrecto à en este caso se asume que ha ocurrido un ataque, si hay más de 2 en 60 segundos se renegocian las claves.
  • TSC inferior al contador actual (WPA incorpora un contador de paquetes para evitar que los viejos sean reenviados, etc.)

Y, sabiendo que si un atacante realiza un ataque en un canal diferente al punto de acceso, por ejemplo, adivinando ese byte que habíamos cortado anteriormente y que está cifrado, el punto de acceso informará de que existe un error de MIC, pero no incrementará el TSC. Luego tras 60 segundos podrá probar otra combinación y, en 12 minutos descifrará 12 bytes de texto plano.

Con ello y realizando un ataque a la inversa al algoritmo MICHAEL el atacante puede obtener la clave MIC usada para proteger los paquetes que son enviados desde el punto de acceso al cliente.

Un lío, lo sé. Pero esto desencadenaría varias vulnerabilidades que harían desaconsejable WPA-PSK (TKIP). Se puede leer en el paper que existe una versión de aircrack que incorpora ya el ataque, pero todavía no está disponible, luego se puede entender conforme se refine este ataque y se creen los correspondientes exploits, que WPA-PSK (TKIP) se encuentra en la milla verde, a la espera de que alguien lo remate con un ejemplo práctico.

Dada la similitud con el Chop-Chop de WEP, no le doy mucho tiempo.

Salu2!

PD: Sé que este Post es muy técnico, pero casi todos los acrónimos utilizados pueden encontrarse fácilmente en Wikipedia, etc. Comprended que tardaría eones en explicarlas todas, y se haría demasiado pesada la entrada. No obstante con las referencias dadas a buen seguro el lector interesado en profundizar podrá hacerlo sin problema.

24 de julio de 2008

Hacking Wireless (II)

(Continua...)

Acelerando el proceso

¿Cansado de esperar? Bueno incluso en esto WEP es vulnerable, es posible acelerar el proceso, el Listado 2 muestra como hacerlo. ¿Por qué? WEP es vulnerable también a los ataques de repetición. Aunque la cabecera de la trama MAC contiene un campo de nº de secuencia, no va protegido con la clave por lo que se puede manipular fácilmente. Usando una MAC cualquiera (como la de 2) ) y siempre y cuando el filtrado MAC esté deshabilitado (sino siempre podremos cambiar nuestra MAC) podemos “inyectar” paquetes a nuestra red, acelerando el tráfico con, por ejemplo, tramas antiguas. Si abrimos un nueva consola en paralelo a la del listado 1, utilizando 1) inyectaremos paquetes cuando hay más clientes conectados, en 2) lo hacemos cuando estemos nosotros solos, de ahí que pongamos una MAC aleatoria.

WPA, ¿Solución o más de lo mismo?

Wifi Protected Area es la evolución ante la decepción que supuso WEP. Entre los requisitos que se exigían al nuevo mecanismo de cifrado estaba el que el hardware de WEP fuera válido para WPA. Por lo que los algoritmos son muy parecidos, WPA también usa RC4 y vectores de inicialización, pero con sutiles diferencias:

  • Cifrado: Basado en TKIP (Temporal Key Integrity Protocol), que consiste en la generación de una clave WEP dinámica diferente por cada trama transmitida por cada cliente asociado al punto de acceso (PA).
  • Integridad de datos: Se sustituye el IVC (recordemos Figura 1) por el Message Integrity Check (MIC). El MIC está basado en un algoritmo de Hash unidireccional que no es susceptible a ataques Bit-Flipping como si lo es CRC-32-
  • Autenticación: Provee el esquema de autenticación mutua IEEE 802.1x / Extensible Authentication Protocol (EAP) o clave pre-compartida (PSK), más común en el ámbito doméstico.

En principio parece que hemos solucionado los problemas de WEP, tenemos un nuevo método de cálculo de la secuencia de integridad en la trama. Evitamos los ataques de repetición y añadimos una nueva función que refresca las claves de cifrado y autenticación para combinar las claves, cifrando cada trama con claves diferentes. Pues bien, el Listado 3 rompe WAP-PSK en 4 pasos.

WPA-PSK usa una clave de acceso de una longitud entre 8 y 63 caracteres, que es la clave compartida. Al igual que ocurría con WEP, esta clave hay que introducirla en cada una de las estaciones y puntos de acceso de la red inalámbrica. Cualquier estación que se identifique con esta contraseña, tiene acceso a la red.

La principal debilidad de WPA-PSK es la clave compartida entre estaciones. Cuando un sistema basa su seguridad en un contraseña siempre es susceptible de sufrir un ataque de fuera bruta, es decir ir comprobando contraseñas, aunque dada la longitud de la contraseña y si está bien elegida no debería plantear mayores problemas. Pero si nos fijamos bien en el funcionamiento de WAP, hay un momento de debilidad cuando la estación establece el diálogo de autenticación. Este diálogo va cifrado con las claves compartidas, y si se entienden entonces se garantiza el acceso y se inicia el uso de claves dinámicas. La debilidad consiste en que conocemos el contenido del paquete de autenticación y conocemos su valor cifrado. Ahora lo que queda es, mediante un proceso de ataque de diccionario o de fuerza bruta, intentar determinar la contraseña.

Las líneas 1-3 del Listado 3 hacen precisamente eso, aprovechar el momento de debilidad, nos quedamos preparados para escuchar todo lo que pase por nuestra red (1 y 2), en ese momento realizamos un ataque tipo 0 (desautenticación de clientes) a uno de sus usuarios, este se desconecta, se vuelve a conectar y capturamos el handshake.

Ya tenemos todo lo necesario, con nuestro handshake en un fichero ya podemos realizar ataques por fuerza bruta durante el tiempo que queramos. Aquí viene el pero, necesitaremos de un buen diccionario (fichero de texto plano con palabras) para ello, sino es posible que estéis durante 36 horas (como yo) atacando sin obtener resultados. Ahora bien, no todo iba a ser fácil, existen numerosos diccionarios disponibles en la red, solo es necesario bajar uno en nuestro propio lenguaje que incluso podremos ir ampliando según recopilemos palabras.

Conclusiones

A día de hoy las redes inalámbricas no son infalibles, comparadas con las cableadas son mucho más susceptibles de ataques de denegación de servicio, un ataque 0, irradiación de ondas para limitar o distorsionar la señal es posible sin muchos conocimientos técnicos. Por tanto una corporación no puede depender de estos servicios por muy bien que quede de cara a un cliente en la presentación de un proyecto. Las redes wifi en el ámbito profesional deben ser un apoyo, nunca debe existir dependencia sino veremos como nuestros servicios se caen una y otra vez. En el ámbito doméstico, un cifrado WPA con una buena clave, unido a algunos de los consejos que los lectores de hakin9 pudimos ver en el artículo de Eduardo Tabacman (nº 30 de la revista) nos permitirá disfrutar de una Wifi lo suficientemente segura para que no nos quiten el sueño (aunque conviene recordar que la seguridad 100% no existe, toda medida tiene su contramedida).

Figura 4: AUDITOR-CD de Remote Exploit

En cuanto a las herramientas utilizadas, estas vienen disponibles en cualquier distribución LiveCd del mercado, Troppix, Knoppix o el AUDITOR CD (Figura 4) que es mi preferido. Otras herramientas de las que no he hablado, y que serán un buen apoyo ante ESSID ocultos, redes de las que se desconoce su estándar de cifrado etc. es Kismet, también sencilla de usar, aunque la mayor parte de los casos, no nos será necesaria. Espero que hayan disfrutado de este artículo, Feliz Conexión.

(Y aqui finaliza el articulo, espero en un futuro hacer uno específico de Seguridad Wireless, con todo lo que ello conlleva, mientras tanto...¡Estoy de vacaciones!)

Salu2

22 de julio de 2008

Hacking Wireless (I)

(Lo prometido es deuda...)

La comodidad que las redes inalámbricas han aportado a nuestra vida está fuera de toda duda, su presencia en organismos públicos, poblaciones de difícil acceso, grandes eventos, empresas y sobre todo en el ámbito doméstico ha facilitado el acceso sin cables a Internet a millones de personas. En su concepción teórica las Redes Wifi tratan de ser tan seguras como lo es una red cableada, en ayuda de esta concepción nacieron los sistemas de cifrado WEP y posteriormente WPA.

Figura 1: Formato de trama IEEE 802.11

WEP, un sueño frustrado

Wired Equivalent Protocol (WEP) fue desarrollado en 1997 con el objetivo de ofrecer un grado de privacidad equivalente al que se tiene en una red con cables. El estándar IEE 802.11 incorporó desde el principio un campo en la capa MAC para indicar si se utiliza cifrado (WEP) o no (Figura 1). Este estándar ofrecía los siguientes servicios de seguridad

- Autenticación: Por clave compartida o Abierta, que es el estándar 802.11 consistente en autenticar todas las peticiones que reciben.
- Confidencialidad: Mediante la utilización del algoritmo RC4, WEP se basa en el cifrado por flujo simétrico de claves. Es decir, para que el cifrado / descifrado ocurra ambos extremos deben compartir la clave de cifrado.
- Integridad: Mediante la inclusión de redundancia ICV (Integrity Check Value) calculada con los algoritmos estándar CRC-32 y cifrada con WEP.

Pues bien, el Listado 1 muestra como romper este cifrado (Figura 2) en unos pocos pasos. ¿Cómo es posible? Si analizamos el funcionamiento de WEP, este estándar utiliza el algoritmo RC4, la operación de cifrado consiste en la realización del “or exclusive” de la corriente de claves con la corriente de bits. La clave está formada por la clave simétrica (la misma para todas las tramas, y la misma usada en la fase de autenticación) y el vector de inicialización (variable para cada trama, pero de 24 bits). La combinación de clave y vector (en adelante, IV) logra cifrar cada trama con una clave distinta a pesar de emplear una clave simétrica fija. IV es transmitido en claro junto con los datos cifrados para que el receptor pueda obtener la clave de cifrado. Si entendemos esto comenzaremos a ver problemas, si tengo una parte de la combinación usada para cifrar en claro y la otra es fija, es solo cuestión de tiempo el averiguar la fija. Además, los IV son de 24 bits, eso nos da como máximo 26.777.216 valores, esto puede generarse en unas pocas horas en cualquier red Wifi con un tráfico moderado.

El Listado 1 muestra todo esto en 5 sencillos pasos, en 1) y 2) tan solo escuchamos todo lo que hay en la red por el interfaz ath0 (podría ser otro, según nuestro caso), el 0 indica que recibamos paquetes de todos los canales (primero hay que detectar la wifi que nos interesa) y el 1 que nos quedaremos con los IV, que al fin y al cabo es lo que nos interesa. prueba será el archivo donde todo esto se guarde. Con estos pasos hemos obtenido la información de la red que queremos atacar, apuntamos el channel y el nombre de la red (ESSID) y centramos nuestro ataque en ella comenzando de nuevo (podemos seguir haciéndolo para todos los canales y realizar el ataque sobre prueba, pero si estáis en una gran ciudad como es mi caso, no es aconsejable esnifar paquetes de 15 redes distintas) En el paso 3) esnifamos paquetes del canal de la red que nos interesa (en nuestro caso el 10) indicando como identificador de la red GigA (esto cambia de una red a otra). Ahora solo tenemos que sentarnos y esperar como suben los IV. Normalmente son necesarios 250.000 para llegar al paso 5 y obtener nuestra preciada contraseña (Figura 2). Las redes más duras de romper nos harán llegar a los 500.000, pero sigue siendo cuestión de tiempo.
Listado 1: WEP roto en 5 pasos.
(Continuará...)

16 de julio de 2008

Wireless Suse

Mientras me debato entre Iphone SI, Iphone NO... donde haga lo que haga alguien me dirá que lo hice bien o que lo hice mal (ya os contaré en que queda la cosa). Sigo dándole al SuSe 11 e investigando un poquitin.

Puesto que hoy no tengo mucho tiempo solo os adelantaré que efectivamente, NO detecta mi tarjeta wifi INTELWireless WiFi Link 4965AGN. Una tarjeta extrañisima que solo traen... unos miles de equipos en el mundo. El caso es que por suerte he encontrado esta página web donde http://intellinuxwireless.org/ están los drivers, supongo que en la de Intel ocurrirá igual, aunque en este caso incluye un manual para dummies (que se agradece), en cuanto pueda haré mis primeras prácticas Wireless, donde quisiera romper (o al menos intentarlo) mi primer candado WPA2, ya sabeis, por aquello de no olvidar-aprender nuestras raices.

La tarjetita en cuestión.

Ahora bien, "comerse" la cabeza para hacer hacking wireless en entornos Linux es solo para románticos, por que ya sabemos que todas esas herramientas han aparecido para Windows, solo basta con instalarse las librerias de aircap, (que tanto bien han hecho :-p) y ponerse a sniffar.

A principios de año tuve la oportunidad de escribir un artículo para hakin9 sobre hacking wireless, concretamente hacking WEP y WPA-PSK, en cuanto lo "rescate" lo comparto, así me aseguro que tengais los candados, "bien cerrados".

Próximamente un poquito más de todo.

Salu2!