jueves, mayo 10, 2007

Seguridad en redes inalámbricas

Tal y como le prometí a Jospi, aquí está el post sobre redes redes wifi, sobre su seguridad. Por supuesto también voy a explicar como se puede atacar una red wifi para averiguar su contraseña. Vamos a empezar aclarando unos conceptos que utilizaré varias veces a lo largo de este artículo. Comencemos pues:

Una red wifi es una red inalámbrica, una red en la cual los datos se transmiten por el aire, por lo que en principio son intrínsecamente mas inseguras que las redes cableadas, ya que en éstas ultimas para poder sniffar (capturar) datos hay que estar conectado físicamente con un cable, mientras que en las redes wifi cualquiera puede capturar esos datos, simplemente necesita un adaptador wifi. Además las ondas no tienen límites, si tu tienes una red wifi en tu casa o empresa las ondas traspasan las paredes y ventanas no van a pararse a la puerta de tu casa. Obviamente por ello tu vecino o cualquier persona que se acerque a tu casa o disponga de una buena antena podrá atacar tu red sin ningún problema.

Ya hemos visto que capturar los datos transferidos en una red wifi está al alcance de cualquiera, de ahí se deduce la necesidad de cifrar los datos, y de que solo se puedan conectar las personas que posean la clave de cifrado. Ahora vamos con un poco de historia, las primeras redes wifi en su mayoría eran abiertas, es decir sin cifrado alguno. Lo primero que apareció fue el cifrado WEP (Wired Equivalent Privacy), y que se sigue usando en la mayoría de las redes wifi que podemos encontrar hoy en día. Este cifrado como ya han dicho muchos expertos está herido de muerte, crackearlo es muy sencillo. En sus inicios eran necesarios varios millones de paquetes IVs, se tardaba bastantes minutos en conseguir esa cantidad, con el tiempo hubo mejoras en el algoritmo de crackeo y la cantidad de paquetes necesarios también se redujo bastante, actualmente incluso con solo 40000 paquetes se podría crackear, pero ya los detalles mas técnicos para un poco mas adelante. Por último ha aparecido WPA (Wifi Protected Access) y WPA2 y algunas variantes mas. WPA es mucho mas seguro que WEP, la única forma de atacarlo es mediante fuerza bruta, pero las claves pueden llegar a ser muchísimo mas complejas que las claves WEP, por lo que puede ser que no sea crackeable en una vida humana. Como contrapartida también puede ser menos seguro que WEP si ponemos una clave sencilla, que podría ser atacada por diccionario, éste ataque consiste en probar todas las claves de un fichero (diccionario) confiando en que la clave que intentamos crackear se encuentre en nuestro diccionario. Sobre la seguridad en WPA no os puedo dar mas detalles porque no los conozco mucho, yo no he atacado personalmente ninguna red cifrada con WPA. De todas formas si os interesan mas detalles y queréis profundizar mas podéis visitar los enlaces que pondré al final del artículo. Bueno con esto creo que ya tenéis unas bases sobre los métodos de cifrado y cuales son factibles de atacar y cuales no.

Toda red wifi tiene un ESSID, que viene a ser el nombre de la red. Puede ser ocultado para intentar proteger un poco mas la red, pero es un método totalmente inútil, ya que la presencia de la red es fácilmente detectable y averiguar el ESSID no tiene mas complicación.

Las redes inalámbricas también tienen un BSSID, que es como una dirección MAC asociada a la red, es un conjunto de dígitos hexadecimales. Este es un ejemplo: 00:E0:98:B7:3E:70

Otro concepto que hay que tener claro es el de dirección MAC. Esto no tiene nada que ver con los ordenadores de Apple, la dirección MAC o Media Access Control address es lo que podríamos llamar la dirección física de un adaptador de red. Esta dirección es única para cada tarjeta y es asignada por el fabricante. Conociéndola podemos averiguar el fabricante de un adaptador de red, ya que cada fabricante usa unos rangos determinados. En otras palabras, cada tarjeta de red, ya sea ethernet o wifi, tiene una dirección única en el mundo que sirve para identificarla. Estas direcciones como ya he dicho están grabadas en el mismo hardware y no pueden ser cambiadas de forma permanente, sin embargo si pueden ser cambiadas por software y el cambio durará mientras el ordenador este encendido, al reiniciar habrá que volver a cambiarla y "engañar" al sistema operativo, ya que a la MAC original esta almacenada en una memoria de solo lectura de la tarjeta de red. Este dato también se usa para controlar el acceso a una red, es lo que se conoce como filtrado MAC, es decir, establecer una regla que diga que solo se pueda conectar el ordenador que tenga la dirección MAC 00:48:23:56:34:87, mas adelante veremos también como vulnerar este tipo de protección.

Aclarados esos conceptos ahora vamos a ver que material necesitamos para realizar una auditoría de seguridad wifi:

-Debemos disponer de un PC con sistema operativo, se puede usar tanto windows como Linux, aunque yo recomiendo Linux, ya que con este sistema las herramientas suelen ir mejor y además el soporte a las tarjetas es mucho mejor, de hecho hay tarjetas que en windows no hacen nada y en Linux se pueden poner en modo monitor e inyectar. En fin que recomiendo Linux para esto. En particular para los que no os animéis a instalaros Linux e ir instalando todas las herramientas una por una y el driver adecuado para vuestra tarjeta os recomiendo que uséis el livecd WifiSlax, que incluye casi todos los drivers y herramientas, lo podéis descargar desde aquí: http://www.comprawifi.com/public/ficheros/Wifislax/2.0/wifislax-2.0.iso

-Es necesaria una tarjeta de red wifi, no importa el formato, son válidas las PCI, las integradas en los portátiles, las USB, las PCMCIA, cualquiera. Sólo hay que tener en cuenta una cosa hay que tener el cuenta el chipset para instalar el driver adecuado, (si usáis WifiSlax, ya estará instalado casi seguro). Por último comentar que hay algunos chipset que no sirven (por lo menos aún), por ejemplo los zydas, lo único que pueden hacer es ponerse en modo monitor en linux, no hacen nada mas.

-Esto no es estrictamente necesario, pero si queréis tener mayor cobertura, necesitareis una antena. Su potencia se mide en Dbi, como es lógico a mayor potencia mayor será la distancia que cubra.

-El software adecuado, ahora lo veremos.

Ahora si, con las cosas claras y el material a mano podemos empezar la sesión de hacking wifi. Lo que vamos a hacer es averiguar la clave wep de una red, vamos a ver poco a poco todo el proceso y también explicaremos un poco para que sirve cada herramienta que usemos, no los limitaremos a decir ahora poner esto, ahora esto y esto y ya está, la clave. No, veremos que hacemos en cada momento. Por último una "nueva" herramienta para crackear las redes wifi con clave WEP.

Para esta tarea utilizaremos la suite aircrack-ng. Si vais a usar WifiSlax no tendréis ningún problema, ya viene instalado, si usáis Linux seguramente podréis conseguirlo mediante vuestro gestor de paquetes, por ejemplo: apt-get install aircrack-ng. En caso de que no lo encontréis disponible ir a la página oficial: http://www.aircrack-ng.org. Esta suite incluye varios programas, todo lo necesario para desarrollar nuestra labor. Nosotros no vamos a utilizar todas las herramientas que incluye, sólo algunas de ellas, ya veréis cuales.

Lo primero que necesitamos es poner la tarjeta en modo monitor, os explico en que consiste, vuestra tarjeta wifi en condiciones normales solo capta los datos relativos a ella, todos los que no vayan dirigidos a ella son ignorados. Ponerlo en modo monitor sería configurarla para escuche todo lo que este a su alcance, no solo lo que sea destinado a ella. Os lo explico con un ejemplo, imagínate que tu estas en clase y el profesor esta explicando un tema, pero a la vez tu compañero que está detrás, esta hablando con el de al lado, tu en principio prestas atención al profesor, la otra conversación la ignoras, sin embargo si tu ahora también te pones a escuchar la otra conversación estarías en modo monitor, estarías capturando todos los datos a tu alrededor. Bueno creo que mas o menos se puede entender con esta explicación, ahora os voy a comentar como hacerlo. Lo primero será identificar nuestra tarjeta wifi, si es una atheros se llamará ath0, si es ralink, será rausb0, y algunos nombres más. Para que Linux nos muestre el nombre de nuestra tarjeta utilizaremos el comando iwconfig. Lo ponemos en una consola y miramos el resultado:

$ iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

sit0 no wireless extensions.

wifi0 no wireless extensions.

ath0 IEEE 802.11g ESSID:""
Mode:Managed Frequency:2.437 GHz Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:9 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=0/94 Signal level=-96 dBm Noise level=-96 dBm
Rx invalid nwid:11419 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Nuestra tarjeta claramente es ath0, para ponerla en modo monitor usaremos el comando airmon-ng, su sintaxis es: airmon-ng start|stop interface [channel]. Por lo que pondremos:

airmon-ng start ath0

Con eso tendremos nuestra tarjeta lista para el proceso. La tarjeta ya está en modo monitor, ahora solo nos queda capturar los datos, para ello utilizaremos airodump-ng. De este programa no hay mucho que explicar simplemente sirve para capturar los datos que estén al alcance de nuestra tarjeta wireless. Antes de continuar comentar que muchos programas (estos están incluidos) al ejecutarlos sin parámetros muestran la sintaxis y el modo de uso, si alguien quiere saber mas puede recurrir a las páginas man, ejecutando man comando, donde comando, es el comando que queremos aprender a usar. Yo os estoy enseñando un uso concreto de estos programas, usando unas opciones determinadas, si queréis saber mas podéis recurrir a esto último que os he dicho. Bueno ahora sigamos con nuestro ejemplo, ejecutaremos este comando:

airodump-ng ath0 -w capturas --ivs

Donde ath0 es nuestra interfaz de red, -w es el parámetro para indicar que guarde los datos y capturas el fichero donde guardarán los datos, por último --ivs es para indicar que guarde los paquetes de ese tipo, IVs, útil para crackearlo después con aircrack-ng. Este es el resultado:



Yo voy a ir a por la red con ESSID "vicky", su BSSID, como se puede ver es 00:A0:C5:77:81:16. Los paquetes IVs de esa red aumentan muy lentamente, tanto que para llegar a unos 200000 paquetes necesarios nos podemos morir de viejos. Que hacemos entonces para acelerar el proceso? Inyectar. La inyección es la clave, consiste en enviar paquetes al router y que este responda, así aumentaremos rápidamente el número de paquetes. Para hacerlo utilizaremos aireplay, programa que nos permite envia peticiones ARP, consiguiendo que el router wifi nos responde enviando paquetes ARP encriptados, los cuales nos sirven para luego crackear la clave, mediante esta técnica conseguimos que aumente el número de IVs mucho mas rápido. Primero vamos a realizar una autentificación falsa con aireplay y luego con el mismo aireplay enviaremos las peticiones ARP. Procederemos de la siguiente manera:

aireplay-ng -1 0 -e vicky -a 00:A0:C5:77:81:16 -h 00:11:22:33:44:55 ath0

Donde -1 indica realizar una autentificación falsa, el 0 el tiempo de "reasociación", -e es el ESSID de la red a atacar, -a es para indicar el BSSID de la red, -h es para indicar vuestra MAC, podeis poner la real o una falsa, no hay problema, funcionara igualmente, por último ath0 es la tarjeta wifi.




Ahora vamos a comenzar a inyectar, con aireplay-ng:

aireplay-ng -3 -b 00:A5:C5:77:81:16 -h 00:11:22:33:44:55 ath0

Donde -3 indica que realice en ataque arp-request, -b es para especificar el bssid, -h para especificar la mac de nuestra tarjeta wifi y ath0 la tarjeta a usar. Un detalle, tenéis que poner la misma aquí y en el comando anterior, si antes era 00:11:22:33:44:55 pon la misma ahora.



Ahora, si esto ha salido bien el numero de IVs en airodump-ng debería aumentar mas rápido y pasados algunos minutos, alcanzaremos una cifra mas o menos adecuada, cuantos mas mejor, pero con 200000 serán bastantes, incluso puede ir bien con menos.

Cuando lo hayamos conseguido nos toca correr aircrack-ng, que se llama igual que la suite entera, este programa nos servirá para conseguir crackear la clave WEP a partir de los paquetes capturados. Su funcionamiento no os lo puedo detallar mucho, porque mis conocimientos criptográficos no llegan a tanto. Pero si alguno os interesa, puede ser recomendable leer este documento sobre Vulnerabilidades en el cifrado WEP. Su uso sería así:

aircrack-ng capturas*.ivs -b 00:A0:C5:77:81:16

Donde capturas*.ivs es el nombre del archivo a crackear y -b especifica el bssid de la red a crackear, porque en ese fichero puede haber IVs de otras redes. Este es un screenshot de aircrack-ng:



Como se puede ver yo pase con creces los 200000 IVs, llegue hasta 812920, fue debido a que me fui a estudiar lengua (hoy tenía examen) y deje los programas funcionando, cuando acabe y volví al ordenador vi esa cifra. Tal como se deduce de la imagen a mas paquetes más rápido será el crackeo y mayores serán las posibilidades de éxito.

Bueno pues esta parte del post ya está lista, ya hemos conseguido la preciada WEP, en principio ya podremos conectarnos a esa red. Aunque hay otros posibles filtros, como el filtrado MAC, que a continuación veremos como burlarlo.

El filtrado MAC consiste en que el router tiene una lista de direcciones MAC de los equipos que pueden conectarse, si un equipo no coincide con ninguna de esas direcciones MAC se deniega la conexión. Por lo tanto como sabemos que las MAC se pueden cambiar fácilmente simplemente tenemos que averiguar una dirección válida y ponernosla. Para averiguar una MAC válida yo sólo conozco un método, cuando tenemos airodump-ng corriendo abajo nos aparecen las que equipos estan conectados y que redes, simplemente tenemos que mirar alguno que este conectado al la red que nos interesa. Veamos un ejemplo en el screenshot de antes:



Se ve claramente que el equipo con MAC 00:12:F0:57:24:10 está conectado a la red con BSSID 00:A0:C5:77:81:16, es decir a nuestra victima, vicky, por lo que ya tenemos una MAC válida. En linux para cambiar nuestra MAC podemos hacerlo sin ningún paquete extra, simplemente usando ifconfig, seria de la siguiente manera:

ifconfig ath0 down
ifconfig ath0 hw ether 00:12:F0:57:24:10
ifconfig ath0 up

Con eso ya tenemos cambiada la MAC de ath0 a 00:12:F0:57:24:10. Otra forma es usando un paquete muy cómodo se llama macchanger. Su uso es el siguiente:

macchanger -m 00:12:F0:57:24:10 ath0

Donde -m es para indicar la MAC que vamos a poner, 00:12:F0:57:24:10 es la nueva MAC y ath0 la interfaz a la que queremos cambiarle la MAC.

En windows se puede cambiar la MAC también, yo no lo he hecho nunca, pero supongo que esto que nos comentan en Kriptopolis servirá:

Windows 2000/XP (método A)

En Windows has de saber primero si tu dispositivo de red soporta o no la clonación de MAC. Si no es ése el caso, has de ir al método B.

1. Inicio -> Configuración -> Panel de Control -> Redes
2. Click derecho sobre el NIC cuyo MAC se quiere cambiar -> Propiedades.
3. General -> Configuración -> Avanzada.
4. Propiedad -> Dirección de Red (o Dirección administrada localmente).
5. Valor -> Teclear la nueva MAC (sin los : de separación).
6. Ventana de comandos -> teclear ipconfig /all (o net config rdr) para comprobar si se ha realizado o no el cambio.
7. Si el cambio se ha realizado, rearrancar la máquina. Si no, probar el método B.

Windows 2000/XP (método B)

1. Inicio -> Ejecutar -> Teclear regedt32.
2. Ir a HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Class\
{4D36E972-E325-11CE-BFC1-08002BE10318}
3. Doble clic
4. Buscar la clave DriverDesc del inyterfaz que se quiere modificar.
5. Editar (o añadir) la clave de cadena (tipo REG_SZ) NetworkAddress para que contenga la nueva MAC.
6. Deshabilitar y volver a habilitar el interfaz cambiado (o rearrancar el sistema).

Si no podeis recurrir a algunos programas que hay por ahí, googlear y los encontrareis.

Ya para acabar comentaros la "reciente" aparición de un innovador programa que permite crackear redes wifi con muchos menos paquetes, dicen que con 40000 son suficientes, yo no lo he probado todavía, pero supongo que funcionara, porque ha sido creado por importantes criptólogos. Bueno el programa en cuestión es aircrack-ptw, os descargáis el código fuente y lo compiláis:

tar -xzvf aircrack-ptw-1.0.0.tar.gz
make
make install

Luego para usarlo solo cambian dos cosas en el proceso que os he explicado antes, cuando ejecutamos airodump-ng poníamos esto:

airodump-ng ath0 -w capturas --ivs

Pues ahora el parámetro --ivs no lo usaremos, pondremos sólo esto:

airodump-ng ath0 -w capturas

Y al final en vez de poner:

aircrack-ng capturas*.ivs -b 00:A0:C5:77:81:16

Ponemos:

aircrack-ptw capturas-01.cap

Ya os he dicho que yo este programa no lo he probado todavía, pero en la página de los autores pone que ese es el uso.

Bueno pues lo prometido es deuda, ahí esta mi artículo. Por anunciaros otro futuro post, que no cuando lo pondré, ahora no voy a mojarme con fechas, pero no creo que tarde demasiado, os enseñare a atacar redes inalámbricas de Imagenio, Telefónica, lo iba a escribir también en este artículo pero ya me ha parecido demasiado, así que en uno aparte. Espero que os haya gustado y que hayais aprendido mucho. Y para terminar algunos links útiles:

Para descargar WifiSlax:
http://www.comprawifi.com/index.php?act=wifislax

Web con información muy útil y foro:
http://www.seguridadwireless.net
http://www.seguridadwireless.net/foro

También si teneis alguna duda el subforo de hacking wireless de foro.elhacker.net también os pueden ayudar mucho y dispone de mucha información muy buena:
http://foro.elhacker.net/index.php?board=48.0

También como no:
http://www.sangoogle.com

Saludos ;-)

PD: Cualquier problema me lo decis en un comentario ;-)

4 comentarios:

Unknown dijo...

Hola Neobius. Ya he leído todo el post sobre seguridad en redes inalámbricas y lo imprimí para estudiar los detalles, aunque te soy sincero..Aún estoy un poco verde en el tema..Tengo una duda...El libro de seguridad informática, ese que traía incluido un cd,que recién haz adquirido ¿Te ha servido como una de tantas referencias bibliográficas para tan completo artículo?

Neobius dijo...

Hola Jospi, mira todavía no he terminado de leer ese libro, tiene un capítulo dedicado a la seguridad de redes inalámbricas, no lo he leido todavía, pero por el índice te puedo decir que trata otras otras herramientas diferentes a las que yo he empleado y me parece que no explica como conseguir una clave wep. No lo he utilizado como referencia. Mis referencia fueron los conocimientos que adquirí hace tiempo leyendo algunos manuales en las webs que enlazo al final del post.

Otro cosa Jospi, sobre la seguridad de redes inalambricas hay mucho mas que hablar, existen muchas otras herramientas y hay muchas mas cosas que aprender, en este artículo solo he explicado como crackear una clave WEP, por su utilidad y para concienciar de lo inseguro que es cifrar nuestras redes con ese sistema.

He pensado que es un tema interesante, así que de vez en cuando escribiré algo sobre el tema. Por lo pronto el próximo post será sobre lo que ya he anunciado, redes Imagenio. También escribire mas aprovechando el nuevo equipo que tengo.

Saludos ;-)

Anónimo dijo...

Muy buena explicación... Todo recogidito y bien redactado... XDDD

Anónimo dijo...

celebritiesnaked [url=http://coopernude23.livejournal.com/2084.html] naked tape[/url] beach naked