Monday, July 27, 2009

Broadcom bcm43xx em modo Monitor e Kismet no Ubuntu

Hoje em dia não é difícil encontar um laptop que tenha como interface wireless uma placa Broadcom. Apesar de não serem tão flexíveis quanto placas Atheros, as placas Broadcom apresentam um desepenho suficiente para maioria das tarefas cotidianas que necessitem de acesso a uma rede wireless.

Até algum tempo atrás essas placas não possuiam bom suporte no GNU/Linux. Seus usuários eram obrigados a utilizar um driver para Windows e o aplicativo Ndiswrapper ou trocar de placa wireless para ter acesso à rede. O desempenho não era tão significativo com o Ndiswrapper e alguns problemas não permitiam associar a uma BSSID escondida usando WPA.

Como o número de usuários GNU/Linux que utilizam essa placas tem crescido, a distribuição Ubuntu já vem com um driver "Broadcom STA wireless driver" que funciona muito bem, exceto pelo fato de não dar suporte ao modo Monitor da placa. Ou seja, se você é daqueles usuários que gosta de, uma vez ou outra, usar um sniffer para captura de pacotes, ou simplesmente para verificar a saúde da sua rede, esse driver certamente é um problema.

Mas se você ainda acredita na sua placa Broadcom e pretende usar seu modo Monitor, os passos são simples. Para aqueles que usam Ubuntu é muito simples, uma vez que já existem pacotes prontos nos repositórios oficiais. Para aqueles que usam outras distribuições, basta pegar o driver disponível em http://bcm43xx.berlios.de

O conteúdo deste post está baseado na distribuição GNU/Linux Ubuntu 9.04 (Jaunty Jackalope), mas não deve ser difícil de adaptar os passos para outras distribuições.

Primeiro passo: Instalar o pacote b43-fwcutter.
Este pacote contém o fwcutter, uma ferramenta para extrair firmware. Este pacote também fará o download dos firmwares necessários e já fará a instalação automaticamente.
$sudo apt-get install b43-fwcutter

Segundo passo: Desabilitar o driver nativo que já vem instalado com a distribuição.
Para desabilitar o driver, vá em
System -> Administration -> Hardware Drivers
Selecione "Broadcom STA Wireless Driver" e clique em "Deactivate". Feche a janela.
Pronto, o driver foi desativado.

Terceiro passo: Reiniciar os módulos.
Existem outras formas de reiniciar os módulos carregados, no entanto, a maneira mais simples de reiniciar os módulos é reiniciando o computador.
$sudo reboot

Quarto passo: Verificar instalação dos módulos.
Se tudo aconteceu como o planejado os novos módulos devem estar carregados e prontos para serem utilizados após a reinicialização.
$lsmod | grep b43
b43 131484 0
mac80211 217464 1 b43
led_class 12036 1 b43
input_polldev 11912 1 b43
ssb 41220 1 b43

Quinto passo: Colocando a interface no modo Monitor.
No meu caso, a interface wireless Broadcom foi mapeada para wlan0.
$sudo iwconfig wlan0 mode monitor

Agora você pode usar seu sniffer preferido seja kismet, airodump ou outro de sua preferência.

Sexto passo: Configurando o Kismet.
Para usar o Kismet é necessário configurar o arquivo /etc/kismet/kismet.conf. Usando seu editor de texto preferido, altere as linhas as seguintes linhas e salve o arquivo. Substitua seu_usuario pelo usuário que usa normalmente.
suiduser=seu_usuario
source=b43,wlan0,bcm43

Sétimo passo: Colocando a interface no modo Managed.
Após usar o seu sniffer, você irá notar que não está associado a nenhuma rede. Quando no modo Monitor, a placa não está e não pode ser associada a nenhum BSSID.
Provavelmente, após usar seu sniffer você terá problemas para associar-se novamente. Para isso, é necessário que a placa volte a ser configurada para seu modo Managed.
$sudo ifconfig wlan0 down
$sudo iwconfig wlano mode managed
$sudo ifconfig wlan0 up
$sudo dhclient

Pronto, agora você está pronto para usar um sniffer sempre que quiser.

4 comments:

Unknown said...

Dá hora! assim que chegar em casa vou testar :)

Unknown said...

olá, eu estava seguindo tudo certinho, mas hora que digitei o comando:

$sudo iwconfig wlan0 mode monitor

aparece isso:

Error for wireless request "Set Mode" (8B06) :
SET failed on device eth1 ; Invalid argument.

não sei o que pode ser isso!! não consigo resolver!

tenho um uso ubuntu 9.04

se puder ajudar por favor!!

Rogério Schneider said...

Muito bom, ajudou aqui, valeu :)

Rhalk said...

Bah velho, nao consegui, apos instalar e reiniciar o ubuntu, o ifconfig diz que nao tem nenhuma placa instalada :/ podia me ajudar, me passa seu msn, ou me contate por email, rhalkk@gmail.com queria muito fazer funcionar a placa em modo monitor abraço