Sacando el jugo a las tarjetas Atheros (madwifi)

networkingseguridad

Si alguno es un afortunado poseedor de una tarjeta wifi con chipset Atheros (que es el que viene usando Cisco) debéis saber que todo un mundo de diversión inalámbrica está a vuestro alcance Eye-wink

Identificar la tarjeta

Bueno... para saber si tenemos una tarjeta yo uso lspci porque yo la tengo integrada, si la vuestra es pcmcia o usb podéis usar cardctl o lsusb respectivamente... para mi caso:

# lspci | grep Ath
00:09.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

Y ahí la tenemos! bueno pues vamos al siguiente paso...

Instalar los drivers madwifi

Pues nada... si tenemos Debian podemos hacerlo más o menos rápido:

$ m-a a-i madwifi

Como queremos divertirnos, instalaremos un par de cosas más:

$ apt-get install madwifi-tools kismet

Bien... si no tenemos Debian o queremos instalar los drivers a pelo podemos entrar en madwifi.org donde encontramos dos sabores: madwifi y madwifi-old-openhal. Descargáis el que queráis mediante subversion, con make y make install los tendréis compilados y funcionando sin problemas. Las diferencias entre los dos es simple: existe una capa llamada HAL (Hardware Access Layer), es la capa que accede al chipset directamente. El chipset puede manejar frecuencias y potencias de transmisión fuera del rango de los estándares wifi (incluso frecuencias militares...), por ley (según legislaciones de algunos países), los fabricantes de aparatillos inalámbricos deben proporcionar mecanismos para asegurar que sus dispositivos no trabajen en otras frecuencias. En el caso de Atheros ese mecanismo es no proporcionar el código de HAL. Los dos sabores que tenemos son pues:

  • madwifi: HAL cerrado, pero toda la funcionalidad WIFI disponible.
  • madwifi-old-openhal: porciones de HAL abiertas (descubiertas, más bien), a mi me funcionan bien pero no tan bien como el anterior.

Configuración de la interfaz

Una vez cargados los drivers con dmesg deberéis obtener lo siguiente:

ath_pci: 0.9.4.5 (svn r1993)
PCI: Enabling device 0000:00:09.0 (0000 -> 0002)
ACPI: PCI Interrupt 0000:00:09.0[A] -> Link [LNK3] -> GSI 11 (level, low) -> IRQ 11
wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
wifi0: H/W encryption support: WEP AES AES_CCM TKIP
wifi0: mac 5.9 phy 4.3 radio 4.6
wifi0: Use hw queue 1 for WME_AC_BE traffic
wifi0: Use hw queue 0 for WME_AC_BK traffic
wifi0: Use hw queue 2 for WME_AC_VI traffic
wifi0: Use hw queue 3 for WME_AC_VO traffic
wifi0: Use hw queue 8 for CAB traffic
wifi0: Use hw queue 9 for beacons
wifi0: Atheros 5212: mem=0x64000000, irq=11

Aquí vemos los cifrados hardware soportados, los rates, etc... también vemos que disponemos de la interfaz wifiX (donde X es un número). Si usáis los madwifi con HAL abierto sólo dispondréis de una interfaz nueva athX. Si tenémos wifi0 también tendremos ath0, ésta es la que debemos usar, la configuramos de la siguiente forma (archivo /etc/network/interfaces en caso de Debian/Ubuntu):

  • Todo automático:
    iface ath0 inet dhcp

    Esto hará que se asocie con el punto de acceso que más calidad de señal tenga y haga ahí sus peticiones dhcp.

  • Automático a una determinada red:
    iface ath0 inet dhcp
    wireless-essid UCLM
    

    Esto buscará la red UCLM y hará ahí sus peticiones DHCP, ejemplos de essid pueden ser motorola, Bianco_, etc.

  • Automático en una determinada red con cifrado WEP:
    iface ath0 inet dhcp
    wireless-essid vecino
    wireless-key 1234567890ABCDEF1234567890
    

    Se conectará a la red llamada vecino cifrada con esa contraseña (se detecta el tipo de cifrado según la contraseña).

Si las redes no tienen servicio DHCP se debe especificar una dirección, una máscara y una puerta de enlace como con cualquier otro tipo de interfaz.

Configurar Kismet

Si somos muy curiosos puede ser que queramos tener kismet funcionando. Kismet es una utilidad que permite estudiar redes wifi pero que por si sólo puede ser estudio de futuras recetas. Aquí explicaremos cómo configurarlo para su función con madwifi (los drivers con HAL cerrado). El archivo de configuración especifica sources, una source es un dispositivo inalámbrico capaz de establecerse en modo monitor. La source para el caso de madwifi es la siguiente (archivo /etc/kismet/kismet.conf):

source=madwifi_g,wifi0,madwifi-ng

El primer campo es el driver para la tarjeta, tenemos madwifi_a, madwifi_b, madwifi_g, madwifi_ab y madwifi_ag (consultad la documentación de Kismet y os vienen todos). El segundo campo es el nombre del dispositivo y por último el nombre que asignamos a la source.

Si ahora iniciamos kismet (como root o con un usuario con permisos suficientes), la interfaz cambiará a modo monitor y empezará a capturar paquetes como loco, generará una serie de archivos (descripciones de las redes en xml, etc.) y entre ellos el dump en formato libpcap (que puede ser abierto con wireshark) en el directorio /var/log/kismet/.

Hay que decir que kismet realiza un acceso bloqueante a la interfaz, con lo que las conexiones wifi se caerán mientras estéis usándolo. También te avisan de que después de usar kismet es probable que la interfaz deje de funcionar correctamente... pero a mi eso nunca me ha pasado.

Interfaces para todos

Otra cosa realmente interesante de madwifi es la posibilidad que nos brinda de crear nuestras propias interfaces wifi "virtuales" mediante la herramienta wlanconfig.

Son muchas las posibilidades que nos ofrece, pero veamos algunas "útiles"...

  • Crear una interfaz wifi en modo Ad-Hoc:

    $ wlanconfig ath create wlandev wifi0 wlanmode adhoc

    Usando la interfaz real wifi0 nos creará una nueva, llamada athX, donde X es el siguiente número de interfaz disponible (aunque podemos especificarlo nosotros usando ath2, por ejemplo, en vez de ath).

  • Crear una interfaz en modo monitor:

    $ wlanconfig ath create wlandev wifi0 wlanmode monitor

  • Crear una interfaz en modo access point con una MAC diferente a la nuestra (da escalofríos pensar qué se puede hacer con esto...):

    $ wlanconfig ath create wlandev wifi0 wlanmode ap bssid

    Si coexisten otras interfaces virtuales debemos especificar al final nosbeacon para deshabilitar el uso hardware de los beacon frames.

Esto son sólo un par de ejemplos.... consultad la página man porque te explican hasta como hacer un bridge en unos pocos pasos...

Conclusiones

Aún se han quedado un par de cosas en el aire... como por ejemplo la inyección de paquetes (que también puede hacer la tarjetilla) etc. Pero creo que para ir abriendo boca tenemos suficiente. Es una lástima que el HAL esté cerrado porque desde luego el chipset este parece bastante espectacular...

Enlaces

Multiband Atheros Driver for Wifi
Kismet

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

virtual wifi posible en linux... como lo configuro?

bueno, seria la persona numero 976364E999&0xFFFFFFFFF en querer hacer esto, pero la verdad vale la pena no?, el caso es este, con el
ifenslave podemos "unir" distintos dispositivos fisico-virtuales( bong= wlan0+wlan1+wlan2+eth0 creo que era asi) para conectar la pc a varias redes wlan/lan aumentando la velosidad conexion (balanceo de carga**) el <> resulta facil de configurar, por lo que el problema es: el limite de redes al que puedes conectar la pc, con dispositivos fisicos no hay gran problema para hacer la conexion, pero es costoso puesto que los dispositivos wifi/lan son caros y nuestros puertos limitados, pero si virtualizamos nuestra tarjeta wifi seria distinto no?.

Si, tenemos una usb wifi b/g/n compatible con el madwifi u otro programa similar ¿como la configuro en mi ubuntu/linux ?

Imagen de darkgnu

grandilocuencia

Benemérita, Torquemada, Benalmádena, Sabiñánigo, Nicomedes. Ataúlfo. Perogrullo. Coprofagia, Hipopótamo. Cocotero. Titicaca, Cacatúa, Halitosis. Machupichu. Pichabrava. Alioli. Paramecio. Trapisonda. Ofimática. Patinete. Uralita. Prolegómeno. Pleistoceno. Asadura. Jeremías. Palacete. Urinario. Prometeo. Herejía. Pionono. Aerofagia. Pataleta. Escalope. Alerones. Hojarasca. Terapeuta. Arquetipo. Merendola. Mamoneo. Equinoccio. Pepsi-cola. Epilepsia. Nicotina. Balalaika. Cubilete. Sodomía. Pasajeros. Porqueriza. Trilobite. Latifundio. Homilía. Torrebruno. CALIFRAGILÍSTICO. TRAGICÓMICO. NARCOTRÁFICO. FEDERICO. ABRAZAFAROLAS. FILARMÓNICA. TRAUMATÓLGO. MANICURA. TELEFÉRICO. POLICLÍNICO. DAMISELA. Gaditano. Tocamiento. Paradoja. Otorrino. Tartaleta. Capicúa. Acetato. Mazapanes. Dromedario. Calatrava. Sacarina. Anatema. Estipendio. Urogallo. Azofaifa. Eduvigis. Maletines. Osamenta. Velocípedo. Sonotone. Butifarra. Tocamientos. Simulacro. Candileja. Pernambuco. Epidermis. Periquito. Quitapenas, Patronato. Genitales, Botarate. Barbitúrico. Arcoseno. Atapuerca. Sopicaldo. Panacea. Condolencia. Circunloquio. Quiromancia. Pinzamiento. Trabalenguas. Tomelloso. Filomena. Sudamérica. Cataplasma. Putañero. Telefónica. Maquiavelo. PORCULIZACIONES. ACOMPÁÑEME. METAFÍSICO. MILIKITO. ESTAFILOCOCO. OSTEÓPATA. CATECÚMENO. GUARDAMETA. ABORÍGENES. VELOCÍPEDO. ALELUYA.

----------------------------------------------------------
$ mv *.net /dev/null

Imagen de magmax

Ehm....

Si no recuerdo mal... Eso es una canción de Mamá Ladilla...

Miguel Ángel García
http://magmax.org

Imagen de Lk2

Es igual de comprensible que

Es igual de comprensible que el comentario anterior... y al menos tiene menos faltas de ortografía/gramática

con ubuntu

he intentado con ubuntu, pero por alguna razón no funciona , probè compilando y luego con el apt-get install, pero nada, me funciona con el ndiswrapper, pero no con el madwifi , he seguido este sencillo link:
http://magarto.com/blog/archivo/2007/03/29/ya-esta-entre-nosotros-madwif...
pero nada,
gracias ! david ssinfo

ayuda

hola oie esta muy bueno tu post el problema es que no puedo echar a andar mi wirrles asi como tu lo isiste mi targeta wirrles es una ar5bxb63 me podrias ayudar porfabor esque acabo de empezar con esto de linux y pues me recomendaron ubuntu y pues si me pudieras ayudar plis

Imagen de nacho

Corrección

hola oie esta muy bueno tu post el problema es que no puedo echar a andar mi wirrles asi como tu lo isiste mi targeta wirrles es una ar5bxb63 me podrias ayudar porfabor esque acabo de empezar con esto de linux y pues me recomendaron ubuntu y pues si me pudieras ayudar plis

Hola. Oye, está muy bien tu post. El problema es que no puedo echar a andar mi wireless como tú lo hiciste. Mi tarjeta wireless es una ar5bxb63. ¿Me podrías ayudar, por favor? Es que acabo de empezar con esto de GNU/Linux, me recomendaron Ubuntu, y si me pudieras ayudar te lo agradecería.

Por primera vez en el portal, y sin que sirva de precedente, he corregido un post como ejemplo para el personal. No cuesta tanto escribir bien, y al contrario de lo que puedas pensar, no vamos a pensar que eres guay o más cool por comerte las letras, signos diacríticos y ortográficos y cometer faltas de ortografía. De hecho, te agradeceremos que escribas bien y, probablemente, tengas más posibilidades de que te ayuden.

Un saludo.
-------------
Nacho

Nacho

Wireless Atheros ar5007eg, 2425 o ar5bxb63 funciona

Primero necesitas los encabezados del núcleo, en ubuntu:

sudo apt-get install linux-headers-`uname -r`

Baja el madwifi-ng con el parche para este chipset en

wget http://snapshots.madwifi.org/special/madwifi-nr-r3366+ar5007.tar.gz

descomprime, dale una leida al README y al INSTALLING.
ejecuta en la terminal, en el directorio donde lo descomprimiste

make
make install

si todo sale bién, como a mí que tengo esta misma tarjeta, continúa con los siguientes comandos para cargar los módulos:

modprobe ath_pci

después comprueba que funciona con

ifconfig

deben de aparecer dos nuevas interfaces wifi0 y ath0, sólo te falta configurar la red inalámbrica pero eso podrás hacerlo tu.
De todos modos ten en cuenta que si se puede .

Echale un vistazo a

http://ftp.cl.debian.org/man-es/wlan.html

Pero no olvides que necesitas el driver de madwifi_ng con el parche para funcionar con el chipset 2425 o ar5007eg.

No lo entiendo

Hola desde ya te estoy dando todas las gracias! yo tengo la placa Atheros ar5bxb63 pero la verdad no entiendo nada de lo que hay que hacer, ya que soy muy novato en esto de linux y la verdad lo único que me hace falta para borrar de mi pc a windows es poder usar el wifi. Si lo podrías explicar en un idioma para alguien completamente ignorante te lo agradecería muho...
Saludos

Imagen de int-0

Yo también quiero...

...un teclado para los pies...

Ahora en serio: tu chipset creo que no está soportado por ahora, en breve lo estará, puedes probar lo que llevan siguiendo las instrucciones que hay en: http://linuxwireless.org/en/users/Drivers/ath5k.
De todas formas tal vez te resulte un poco complicado si eres un poco novatillo, de todas formas aquí también puedes encontrar recetas que te ayuden en la tarea... y no olvides apuntarte a nuestra lista...
------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de admin

Necesitamos un módulo anti-HOYGAN con urgencia!

¿Algún voluntario?

Imagen de oscarah

debe ser una broma

He tardado casi un minuto en leer el comentario... y he deducido que era una broma. O es una broma o es otro idioma. Triste, pero cierto.

PD: ¿De verdad no se anima nadie?

"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1

Imagen de admin

Yo no tengo

tan claro que sea una broma. Y si lo es, me da igual, tamaña barbaridad es intolerable. Necesitamos un anti-HOYGAN: para drupal ya.