Atualização: a partir do ubuntu 11.04 esta placa passou a ter modo monitor por padrão.
Neste tutorial irei descrever os passos para habilitar o modo monitor (também chamado de Modo de Monitoramento ou modo RFMON) na placa wireless BCM4313 fabricada pela broadcom. Os procedimentos foram realizados no sistema operacional Ubuntu GNU/Linux 10.10, no qual esta placa é reconhecida e funciona perfeitamente com o driver, outrora proprietário, da broadcom, porém não é suportado o modo monitor.
O driver que será instalado tem, atualmente, suporte para os seguintes chips:
Nome | ID do dispositivo
BCM4313 | 0x4727
BCM43224 | 0x4353
BCM43225 | 0x4357
Para fins de informação publico os dados da placa obtidos com o comando lshw -html:
id: |
network
|
||||||||||||||||||
description: | Wireless interface | ||||||||||||||||||
product: | BCM4313 802.11b/g LP-PHY | ||||||||||||||||||
vendor: | Broadcom Corporation | ||||||||||||||||||
physical id: |
|
||||||||||||||||||
bus info: |
pci@0000:12:00.0
|
||||||||||||||||||
logical name: |
eth1
|
||||||||||||||||||
version: | 01 | ||||||||||||||||||
serial: | removido | ||||||||||||||||||
width: | 64 bits | ||||||||||||||||||
clock: | 33MHz | ||||||||||||||||||
capabilities: | pm msi pciexpress bus_master cap_list ethernet physical wireless | ||||||||||||||||||
configuration: |
|
||||||||||||||||||
resources: |
|
Saída do lspci, transcrevi apenas informações da placa:
12:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g LP-PHY (rev 01)
Primeiramente é preciso realizar o download do código fonte do driver e do firmware do linux, além dos pacotes necessários para compilação e uso de repositórios git, para isso execute em um terminal:
mkdir BCM4313; cd BCM4313
sudo apt-get install build-essential git-core
wget -O linux-next-a694cb1.tar.gz http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=snapshot;h=a694cb1016824f478da2dcef9658f902aefe3b14;sf=tgz
tar -xvzf linux-next-a694cb1.tar.gz
git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
Após o repositório git ser clonado para a sua máquina entre no diretório linux-next, abra o arquivo Makefile e adicione no final dele o seguinte conteúdo:
KDIR := /lib/modules/$(shell uname -r)/build
ccflags-y += -I$(SUBDIRS)/include -I$(SUBDIRS)/sys -I$(SUBDIRS)/phy
default:
echo $(PWD)
$(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd) CONFIG_BRCM80211_PCI=y V=1 modules
Agora compile e copie o módulo para o diretório correto.
make
sudo cp brcm80211.ko /lib/modules/$(uname -r)/
Passamos ao firmware.
cd ../linux-firmware/
sudo cp brcm/bcm43xx* /lib/firmware/brcm
sudo ln -s /lib/firmware/brcm/bcm43xx-0-610-809-0.fw /lib/firmware/brcm/bcm43xx-0.fw
sudo ln -s /lib/firmware/brcm/bcm43xx_hdr-0-610-809-0.fw /lib/firmware/brcm/bcm43xx_hdr-0.fw
Carregando o módulo:
sudo modprobe mac80211
sudo insmod /lib/modules/$(uname -r)/brcm80211.ko
sudo depmod -a
Se você obter um erro parecido com o abaixo revise todos os procedimentos que foram executados.
insmod: error inserting ‘/lib/modules/2.6.35-25-generic/brcm80211.ko’: -1 Invalid module format
Agora é preciso fazer com que o módulo seja carregado no processo de inicialização do sistema, para isso abra o arquivo /etc/modules (como root) e insira uma linha contendo:
brcm80211
Depois abra o arquivo /usr/lib/pm-utils/defaults (também como root) e após o trecho _# SUSPENDMODULES=”” insira:
SUSPEND_MODULES="brcm80211"
Reinicie o computador, após isso você deve ser capaz de colocar a placa em modo monitor. No meu caso a placa passou a ser reconhecida como wlan0, antes era eth1.
wlan0 IEEE 802.11bgn ESSID:off/any Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated Tx-Power=19 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off
Update:
Atualmente, quando se vai realizar alguma tarefa, injeção de pacotes, por exemplo, com o aireplay, aparecerá uma mensagem do tipo:
mon0 is on channel -1, but the AP uses channel 6
Para solucionar o problema acesse: Corrigindo canal negativo no aircrack-ng.
Referências: