Voy a poner un tutorialcito sobre lo que hice yo para instalar todo:
Primero, instalais ubuntu normalmente, como siempre. Una vez hecho eso, vais al gestor de paquetes synaptic, os asegurais de que busque los paquetes a instalar en el cd-dvd de ubuntu que tengais (A mi no me viene por defecto, tengo que darle a agregar cd-rom). Ahora, buscais e instalais desde el synaptic los siguientes paquetes (vienen con el cd-rom, no necesitais internet para nada):
* libncurses
* kernel package
* build essential
Ahora, vamos a actualizar el firmware de la tarjeta. Os bajais el fwcutter (
http://download.berlios.de/bcm43xx/bcm43xx-fwcutter-004.tar.bz2) y el firmware, el archivo wl_apsta.o (
http://agarzon.php.com.ve/wp-content/uploads/2006/09/wl_apsta.zip). Instalais el fwcutter (make y make install), y descargais el archivo wl_apsta.o en el escritorio. Ahora, instalais el firmware:
$ sudo bcm43xx-fwcutter -w /lib/firmware ~/Desktop/wl_apsta.o
$ sudo bcm43xx-fwcutter -w /lib/firmware/<tu version del kernel> ~/Desktop/wl_apsta.o
$ sudo modprobe bcm43xx
Para saber tu versión del kernel, teclea: $ uname -r
Una vez hecho eso, yo me descargué la versión 2.6.19.1 del kernel. Podeis intentarlo con la nativa del ubuntu, la 2.6.17-386, pero yo no fui capaz de ponerla a funcionar. Si quereis probar, también tendréis que instalar las linux source y linux headers. De todas todas, los drivers nativos de tu version del kernel están en este directorio: usr/src/linux-source<tu_version>/drivers/net/wireless/bcm43xx.
En ese directorio están todos los archivos en c. Cuando compilais los módulos del kernel (haciendo make modules, lo vamos a ver más abajo), lo que hace es compilaros esos archivos en c. Ojo, el makefile no vale, está vacío, ya lo hace el kernel de por si, así que no trateis de editarlo.
Ahora, descomprimís el kernel en vuestra carpeta sources (/usr/src). Teneis que ser administrador para hacerlo (sudo nautilus. Así os abre un "explorador de windows", para poder navegar más cómodamente). Os vais a la carpeta del kernel ($cd /usr/src/linux-source-2.6.19.1, o la que sea). Copiais el archivo que tengais en boot a un .config:
$ sudo cp /boot/config-2.6.17-386 .config
Eso lo que hace es partir de la configuración del kernel actual, la toma como base de configuración del nuevo kernel.
Ahora, en ese mismo directorio (/usr/src/linux-source-2.6.19.1), haceis $ make menuconfig, y en la ventanita que os saldrá, activais lo siguiente:
Networking --->
<*> Generic IEEE 802.11 Networking Stack
* Enable full debugging output
<*> IEEE 802.11 WEP encryption (802.1x)
<*> IEEE 802.11i CCMP support
<*> IEEE 802.11i TKIP encryption
<*> Software MAC add-on to the IEEE 802.11 networking stack
Y también:
Device Drivers --->
Networkwing Device Support --->
Wireless LAN (non-hamradio) --->
<*> Broadcom BCM43xx wireless support
* Broadcom BCM43xx debugging (RECOMMENDED)
BCM43xx data transfer mode (DMA + PIO) --->
Una vez hecho eso, guardais los cambios, y haceis:
$ sudo make-kpkg clean
$ sudo make-kpkg -append-to-version=.linux26191 -initrd kernel_image
Eso compilará el kernel (tardará un buen rato, así que poneos a hacer ejercicios para enero-febrero...). Al acabar, si todo va bien, creará un archivo con extensión .deb. Lo instalais así:
$ sudo dpkg -i <nombre del archivo.deb>
Esto tb os actualizará el grub. Reiniciais con el nuevo kernel, y, en teoría, la tarjeta ya estará lista para entrar en modo monitor. Haced:
$ modprobe bcm43xx
$ sudo ifconfig eth1 up
$ sudo iwlist eth1 scan
Y os saldrán las redes disponibles.
$ sudo iwconfig eth1
Os saldrá información del interfaz eth1, y de cómo está configurado (modo, bitrate...).
$ sudo iwconfig eth1 mode Monitor rate 11M essid MI_CASITA key 0000000000
Así os asociais al ap, en este caso, a mi red (no os molestéis en probar con esa clave, la he cambiado grin).
Para inyectar:
La versión de los drivers que viene con este kernel es distinta de la del 2.6.17. Yo lo que hice fue coger el archivo bcm43xx_main.c de la página 7 del foro de inyección (
http://tinyshell.be/aircrackng/forum/index.php?action=dlattach;topic=281.0;id=99) y sustituirlo por el que trae nativo el kernel (está en /usr/src/linux-2.6.19.1/drivers/net/wireless/bcm43xx/). Básicamente, el parche (new.patch, de la documentación del aircrack, o otros parches, son todos iguales), lo que hace es meter una funcioncita y modificar unas cuantas líneas del código del fichero bcm43xx_main.c para que cree el fichero inject_nofcs, que es el que permite inyectar. Aparte, si lo parcheais (como curiosidad, se hace copiando el parche new.patch a la carpeta sources de vuestro linux, como root, claro, y tecleais: $ sudo patch -p1<new.patch. Os parcheará sin problemas el driver), e intentais compilar el driver, os va a poner un par de llamadas a funciones no declaradas, o algo así. La solución trapalleira que hizo la gente es comentarlas (por eso digo que los drivers aún están muy verdes... No es muy recomendable andar comentando funciones a diestro y siniestro...). De todas formas, no os preocupeis, pq en esa versión del bcm43xx_main.c (
http://tinyshell.be/aircrackng/forum/index.php?action=dlattach;topic=281.0;id=99) ya está todo corregido, el archivo está parcheado y comentadas esas dos líneas. Así que sustituís el fichero del driver nativo, por ese del foro de inyección (un consejo, haced una copia de los drivers nativos, por si meteis la pata, para volver a tener los originales, y poder volver a empezar), y luego, os vais a la carpeta source del kernel (/usr/src/linux-source2.6.19.1), y haceis $ make modules. Si el driver está bien, os compilará sin problemas los módulos del kernel (tarda un ratito), y os generará en el directorio /usr/src/linux-source2.6.19.1/drivers/net/wireless/bcm43xx un archivo bcm43xx.ko (el driver en si). Copiais ese archivo a la carpeta /lib/modules/2.6.19.1/kernel/drivers/net/wireless/bcm43xx, sustituyendo el archivo original y reiniciais (yo os recomiendo hacer una copia del driver original de la carpeta /lib/modules/2.6.19.1/kernel/drivers/net/wireless/bcm43xx, pq si os da algún fallo, podeis volver a la versión del driver nativa). Y creo que ya está todo, si no se me olvidó nada.
Probad a buscar el archivo: find /sys -name inject_nofcs, y si lo encuentra, pos felicidades, ya podeis inyectar.
Ahora, os falta meter el aircrack, y compilarlo para esta tarjeta:
Os bajais el aircrack-ng-0.6_motherfucker_edition_07, y sustituis el archivo que viene comprimido en el archivo zip (aireplay-ng para broadcom bcm43xx) de la carpeta src, por el archivo original de las src. Este archivo ya viene parcheado (gracias thefkboss wink ) así que sólo es sustituir el original por ese. Compilais el aircrack, y listo.
Sobre lo que dicen de que la trasmisión de potencia es baja... Lo es, pero tampoco hay que estar pegado al router, yo lo tengo en el salón, y desde la habitación, con puertas cerradas da inyectado.
Sobre ataques: He probado dos, el primero y el tercero. Los dos han funcionado, pero esta tarjeta está aún en fase experimental, así que a mi, como mucho, unos 5-10 paquetes por segundo... algo es algo.
miguelon@miguelon-laptop:~$ sudo aireplay-ng -e MI_CASITA -a 03:0F:FA:6B:7C:15 -h 01:1F:FA:6A:8F:FF -1 0 eth1
Experimental bcm43xx device found and enabled
13:25:56 Sending Authentication Request
13:25:56 Authentication successful
13:25:56 Sending Association Request
13:25:57 Association successful :-)
Y con un ataque arp:
miguelon@miguelon-laptop:~$ sudo aireplay-ng -e MI_CASITA -b 03:0F:FA:6B:7C:15 -h 01:1F:FA:6A:8F:FF -3 eth1
Experimental bcm43xx device found and enabled
Saving ARP requests in replay_arp-1220-131845.cap
You should also start airodump-ng to capture replies.
Read 10277 packets (got 240 ARP requests), sent 5448 packets...
Ya veis, ninguna maravilla, pro va funcionando.
Bueno, espero no haberme olvidado de nada!!! Esto parece la biblia.
Saludos!!!