Ferramentas do usuário

Ferramentas do site


pt-br:newbie_guide

Guia Aircrack-ng no Linux para Novatos

Idéia e trabalho inicial: ASPj
Adicionais por: um número de boas almas
Última atualização: Maio 14, 2007
Tradução e Adaptação: JaymesSmith (11/01/08)

Observações Iniciais
Não esqueça de dar uma olhada nos outros tutoriais! Eles podem ajudá-lo em alguma parte que você pode não ter entendido aqui. Em breve estarei redigindo meus própios tutoriais para ajudar a comunidade brasileira. Aproveite também para juntar-se a nós na comunidade Aircrack-ng no Orkut ou na irc.freenode.net canal #wireless-br.
Boa leitura!

Este tutorial te dará a base para começar usando o pacote Aircrack-ng. É impossível mastigar cada pedaço de informação que você precisa e cobrir cada cenário. Então esteja preparado para fazer algum dever de casa e pesquisa por conta própria. O Forum e o Wiki possuem muitos tutoriais e informações suplementares.

Embora não cubra todos os passos do início ao fim, como neste tutorial, o tutorial Quebra Simples da Chave WEP cobre os passos do Aircrack-ng atual em muito mais detalhes.

Nos exemplos, a opção “traço duplo bssid” está mostrada como ”- -bssid”. Lembre-se de remover o espaço entre os dois traços quando usá-lo na vida real. Isso serve também para ”- -ivs”, ”- -arpreplay”, ”- -deauth” e ”- -fakeauth”.

Configurando Hardware, Instalando Aircrack-ng

O primeiro passo para fazer o Aircrack-ng funcionar corretamente no seu sistema Linux é instalando e aplicando o 'patch' no driver apropriado para sua placa wireless. Várias placas funcionam com múltiplos drivers, alguns deles providenciam as características necessárias para usar o Aircrack-ng, e outros não.

Nem precisa dizer que você necessita de uma placa wireless compatível com o pacote Aircrack-ng, ou seja, hardware completamente compatível e que pode fazer injeção de pacotes. Uma placa wireless compatível pode ser utilizada para quebrar um Access Point wireless em menos de uma hora.

Para determinar a qual categoria sua placa pertence, veja página de compatibilidade de hardware. Leia Tutorial: Minha Placa Wireless é Compatível? se você não sabe onde procurar nessa tabela. Ainda assim compensa dar uma lida nesse tutorial para melhorar seu conhecimento e confirmar os atributos da sua placa.

Primeiro, você precisa saber qual chipset é utilizado na sua placa wireless e qual driver você necessita para ele. Você terá determinado isso usando as informações do parágrafo anterior. A seção de drivers te dirá quais drivers você precisa para seu chipset específico. Baixe-os e então pegue o 'patch' correspondente de http://patches.aircrack-ng.org. (Esses 'patches' ativam o suporte à injeção.)

Como eu possuo um dispositivo Ralink USB, estou providenciando os passos para fazê-lo funcionar com o Aircrack-ng. Antes que você esteja pronto para compilar e instalar os drivers, você precisa ter os kernel-sources da sua distribuição instalados.

Se você possui um outro tipo de placa, confira a página instalando drivers para instruções sobre outros drivers. Do mesmo modo, faça uma procura na internet se você está inseguro de como instalá-los.

Se você possui um dispositivo USB rt2570 (como o D-Link DWL-G122 rev. B1 ou Linksys WUSB54G v4) você deve usar os drivers de http://homepages.tu-darmstadt.de/~p_larbig/wlan/ Estes são drivers especialmente modificados, que suportam injeção e tem relatos de que funcionam melhores com o Aircrack-ng. Eles não precisam de 'patch'. Claro que esses drivers também funcionam para uso normal da placa.

Vamos extrair, compilar e instalar os drivers:

tar xfj rt2570-k2wrlz-1.3.0.tar.bz2
cd rt2570-k2wrlz-1.3.0/Module
make
make install

O última passo precisa ser feito como root. Use o comando su para mudar para usuário root. Agora nós podemos carregar o módulo no kernel:

modprobe rt2570

Insira sua placa, ela deve ser reconhecida como rausb0 agora. Execute iwconfig para lista seus dispositivos wireless e verificar se tudo está funcionando.

Instalação do Aircrack-ng

Fonte

Pegue a última cópia do Aircrack-ng na página inicial: http://www.aircrack-ng.org Os comandos a seguir devem mudar se você usar uma versão mais recente do software.

Extraindo, compilando, instalando:

tar xfz aircrack-ng-0.9.3.tar.gz
cd aircrack-ng-0.9.3
make
make install

Como sempre, o último passo precisa ser executado como root, utilize su para logar como root (use sudo make install para Ubuntu).

YUM

Se estiver usando um sistema como Redhat Linux ou Fedora Core você pode instalar o Aircrack-ng com yum. Primeiro você precisa adicionar o repositório de Dag Wieers ou Dries.

su
yum -y install aircrack-ng

RPM

Se estiver usando um sistema baseado em rpm, então pode usar o caminho fácil para instalar o Aircrack-ng.
(Exemplo para Redhat Linux 4)

su
rpm -ihv http://dag.wieers.com/rpm/packages/aircrack-ng/aircrack-ng-0.7-1.el4.rf.i386.rpm

IMPORTANTE: Consulte http://dag.wieers.com/rpm/packages/aircrack-ng/ para a última versão do pacote Aircrack-ng e mude o comando acima para referenciar a última versão. (onde xxxxx será a última versão em …/aircrack-ng-xxxxx.rpm)

Básico do IEEE 802.11

Certo, agora tudo está pronto, hora do intervalo antes da ação finalmente começar e aprender algo sobre como redes (locais) wireless funcionam.

O capítulo a seguir é muito importante, se alguma coisa não funcionar como esperado. Conhecer sobre tudo relacionado ao assunto ajuda a encontrar o problema, ou pelo menos te ajuda para descrevê-lo a alguém que pode te ajudar. Isso é um pouco científico e talvez você prefira pular. Entretanto, um pouco de conhecimento é necessário para quebrar redes wireless e isso é um pouco mais do que simplesmente digitar um comando e deixar o Aircrack-ng fazer o resto.

Como uma rede wireless é encontrada

Isso é uma curta introdução em redes gerenciadas, estas funcionando com Access Points (AP). Cada AP envia por volta de 10 (os tão chamados) beacon frames por segundo. Esses pacotes contém as seguintes informações:

  • Nome da rede (ESSID)
  • Se alguma criptografia é utilizada (e qual criptografia é utilizada; preste atenção, isso pode não ser sempre verdade só porque o AP faz propaganda)
  • Quais taxas de dados, MBit, são suportados
  • Em qual canal a rede está

Essas informações são então mostradas na sua ferramenta que conecta à esta rede. É mostrada quando você faz sua placa procurar por redes com iwlist <interface> scan e quando você executa airodump-ng.

Cada AP tem um único endereço MAC (48 bits, 6 pares de números hexadecimais). É algo parecido com 00:01:23:4A:BC:DE. Cada dispositivo de hardware de rede possui tais endereços, e dispositivos de rede comunicam-se utilizando esses endereços MAC. Então é basicamente como um nome único. Endereços MAC são únicos, nem quaisquer dois dispositivos de rede no mundo tem o mesmo endereço MAC.

Conectando-se a uma rede

Se você quer conectar-se a uma rede wireless, existem algumas possibilidades. Na maior parte dos casos, Autenticação por Sistema Aberto1) é utilizada. (Opcional: Se quiser aprender mais sobre autenticação, dê uma olhada aqui.)

Autenticação por Sistema Aberto:

  1. Pedido de autenticação ao AP é enviado.
  2. O AP responde: OK, você está autenticado.
  3. Pedido de associação ao AP é enviado.
  4. O AP responde: OK, você está agora conectado.


Esse é o caso mais simples. MAS pode haver alguns problemas se você não está autorizado a conectar:

  • WPA/WPA2 está em uso, você precisa de autenticação EAPOL. O AP negará o acesso no passo 2.
  • Access Point tem uma lista de clientes permitidos (endereços MAC), e não deixa ninguém mais conectar-se. Isso é chamado de Filtro de Endereço MAC, ou simplesmente, Filtro MAC.
  • Access Point usa Autenticação por Chave Compartilhada2), você precisa fornecer a chave WEP correta para conseguir conectar-se. (Veja o Tutorial: Como Fazer Autenticação Falsa por Chave Compartilhada para técnicas avançadas.)

Sniffing (Farejamento) e Quebra Simples

Descobrindo as Redes

A primeira coisa a fazer é procurar por um alvo em potencial. O pacote Aircrack-ng contém o airodump-ng para isso - mas outros programas como o Kismet podem ser usados também.

Antes de procurar por redes, você precisa colocar sua placa wireless no chamado “modo monitor”. Modo Monitor é um modo especial que permite que sua placa wireless escute cada pacote wireless trafegado no ar. É semelhante ao Modo Promíscuo em redes cabeadas, mas aqui o meio deixa de ser um cabo de redes, e passa a ser o ar. Esse Modo Monitor também permite, opcionalmente, injetar pacotes em uma rede. Injeção será abordado mais adiante neste tutorial.

Para colocar sua placa wireless em Modo Monitor:

airmon-ng start rausb0

Lembrando! O rausb0 acima está sendo utilizado porque a placa wireless usada como exemplo aqui é a citada no início do tutorial. Para confirmar se está em Modo Monitor, execute iwconfig e verifique o modo no qual sua placa está. A página airmon-ng no Wiki tem informações gerais e como iniciá-lo, para outros drivers.

Então, inicie o airodump-ng para procurar por redes:

airodump-ng rausb0

Mais uma vez! rausb0 é o nome da interface de rede. Se você está usando um dispositivo Wi-Fi diferente de um rt2570 então deve utilizar um nome de interface de rede diferente, próprio para sua placa. Dê uma olhada na documentação do driver da sua placa.

Se o airodump-ng puder conectar-se ao dispositivo Wi-Fi, você verá uma tela como esta:

O airodump-ng salta de canal em canal, e mostra todos os Access Points dos quais consegue receber beacons. Canais do 1 ao 14 são utilizados no 802.11b e g (nos Estados Unidos só são permitidos utilizar os canais do 1 ao 11; do 1 ao 13 na Europa, com algumas exceções; do 1 ao 14 no Japão; e no Brasil, como na maiora da América Latina, segue-se o padrão americado, do 1 ao 11). Canais entre 36 e 149 são utilizados no padrão 802.11a.
O canal atual é mostrado no canto superior esquerdo.

Após um curto período de tempo, alguns APs e (com sorte) alguns clientes associados apareçerão.

O quadro de dados superior mostra os Access Points encontrados:

BSSID O endereço MAC do AP.
PWR Força do sinal. Alguns drivers não informam.
Beacons Número de beacon frames recebidos. Se você não tem a força do sinal, você pode estimar usando o número de beacons: quanto mais beacons, melhor a qualidade do sinal.
Data Número de frames de dados recebidos.
CH Canal no qual o AP está operando.
MB Velocidade ou Modo do AP. 11 significa 802.11b, 54 significa 802.11g. Valores entre 11 e 54 são uma mistura.
ENC Encriptação: OPN: sem criptografia, WEP: criptografia WEP, WPA: criptografia WPA ou WPA2, WEP?: WEP ou WPA (ainda não sei).
ESSID Nome da rede. Às vezes escondido.

O quadro de dados inferior mostra os clientes encontrados:

BSSID O endereço MAC do AP no qual esse cliente está associado.
STATION O endereço MAC do cliente.
PWR Força do sinal. Alguns drivers não informam.
Packets Número de frames de dados recebidos.
Probes Nomes das redes (ESSIDs) que este cliente sondou.

Agora você deve procurar por uma rede alvo. Ela deve ter um cliente conectado porque quebrar redes sem um cliente é um tópico avançado (Veja Como quebrar WEP sem clientes). Ela deve usar criptografia WEP e ter sinal forte. Talvez você possa reposicionar sua antena para obter um sinal melhor. Geralmente alguns centímetros fazem uma grande diferença na força do sinal.

No exemplo acima, a rede 00:01:02:03:04:05 seria o único alvo possível, porque é o único com um cliente associado. Mas também tem um sinal forte, então é um bom alvo para praticar.

Sniffing (Farejando) IVs

Por causa dos saltos dos canais você não irá capturar todos os pacotes da sua rede alvo. Então nós queremos escutar somente um canal e ainda salvar todos os dados no disco, para que possa utilizá-lo para quebrar a chave:

airodump-ng -c 11 - -bssid 00:01:02:03:04:05 -w dump rausb0

Com o parâmetro -c você sintoniza um canal específico, e o parâmetro seguinte -w é o prefixo para gravar os dados da rede no disco. O ”- -bssid” em combinação com o endereço MAC do AP limita a captura para aquele AP. A opção ”- -bssid” está disponível somente em versões novas do airodump-ng.

Você pode também adicionar o parâmetro - -ivs. Esse diz ao airodump-ng para capturar somente os IVs, pra economizar espaço.

Antes de estar pronto para quebrar o WEP, você geralmente precisa de algo entre 250.000 e 500.000 Vetores de Inicialização diferentes (IVs). Cada pacote de dados contém um IV. IVs podem ser reutilizados, portanto os números de IVs diferentes são um pouco menor do que o número de pacote de dados capturados.

Então você terá qu esperar e capturar de 250 mil a 500 mil pacotes de dados (IVs). Se a rede não está ocupada levará muito tempo. Em geral você pode aumentar bastante a velocidade da captura utilizando um ataque passivo, como o Packet Replay. Veja o próximo capítulo.

Quebra

Se você conseguiu capturar IVs suficientes em um ou mais arquivos, você pode tentar quebrar a chave WEP:

aircrack-ng -b 00:01:02:03:04:05 dump-01.cap

O MAC após a opção -b é o BSSID do alvo, e dump-01.cap é o arquivo que contém os pacotes capturados. Você pode usar múltiplos arquivos, simplesmente adicionando todos os seus nomes, ou você pode utilizar coringa (caracteres especiais para generalizar algo) como dump*.cap.

Para maiores informações sobre os parâmetros do aircrack-ng, descrição da saída dos dados e uso, veja o manual.

O número de IVs que você precisa para quebrar a chave não é fixo. Isto por que alguns IVs são fracos e vazam mais informações sobre a chave do que outros. De modo geral esses IVs fracos são aleatoriamente misturados no meio dos mais fortes. Então, se você tiver sorte, você pode quebrar uma chave com somente 100.000 IVs. Porém, geralmente isso não é o suficiente e o Aircrack-ng vai continuar rodando por muito tempo (até uma semana ou até mais que isso com um fator fudge alto) e então te informar que a chave não pôde ser quebrada. Se você tiver mais IVs, a quebra pode ser feita bem mais rápida, e geralmente em poucos minutos. Experiências mostram que entre 250.000 e 500.000 IVs é, em geral, suficiente para quebrar a chave.

Existem alguns APs mais avançados por aí, que usam algoritmos para filtrar IVs fracos. O resulta é que você não consegue mais do que “n” IVs diferentes do AP, ou você precisa de milhões (tipo de 5 a 7 milhões) para quebrar a chave. Procure no Forum, existem alguns tópicos sobre casos como estes e o que fazer.

Ataques ativos

Suporte à injeção de pacotes

A maioria dos dispositivos não suportam injeção - pelo menos não sem os drivers com 'patch'. Dê uma olhada na página de compatibilidade, coluna aireplay. Às vezes essa tabela não está atualizada, então se você ver um “NÃO” para seu driver lá não disista ainda, mas olhe na página inicial do driver, a lista de e-mail do driver ou nosso Forum. Se você conseguiu realizar o 'replay' com sucesso usando um driver que não está listado como funcionando, não hesite em atualizar a tabela da página de compatibilidade e adicionar um link para um curto “Como Fazer”.

O primeiro passo é ter certeza de que a injeção de pacote realmente funciona com sua placa e driver. O forma mais fácil de testa isso é o ataque de teste de injeção. Tenha certeza de realizar este teste antes de ir adiante. Sua placa tem que ser capaz de injetar com sucesso, para realizar os passos a seguir.

Você precisará do BSSID (MAC do AP) e ESSID (nome da rede) de um AP que não use Filtro MAC (por exemplo, o seu próprio), e precisa estar dentro da área de cobertura do AP.

A primeira coisa a fazer é descobrir o endereço MAC do seu próprio dispositivo Wi-Fi. Às vezes existe uma etiqueta com o MAC no próprio dispositivo. Mas você pode sempre achá-lo usando o comando ifconfig (os primeiros 6 bytes hexadecimais após “HWaddr”, geralmente divididos por ”:” ou ”-”).

Então você pode tentar conectar-se ao seu AP usando aireplay-ng:

aireplay-ng - -fakeauth 0 -e "your network ESSID" -a 00:01:02:03:04:05 -h 00:11:22:33:44:55 rausb0

O valor após -a é o BSSID do seu AP, o valor após -h é o MAC do seu próprio dispositivo Wi-Fi.

Se injeção funciona, você deve ver algo assim:

12:14:06  Sending Authentication Request
12:14:06  Authentication successful
12:14:06  Sending Association Request
12:14:07  Association successful :-)

Se não

  1. verifique duas vezes o ESSID, BSSID e seu próprio MAC
  2. tenha certeza de que seu AP tenha o Filtro de MAC desabilitado
  3. teste contra outro AP
  4. tenha certeza de que seu driver está propriamente com o 'patch' e tenha suporte
  5. Ao invés de “0”, tente “6000 -o 1 -q 10”

ARP Replay

Agora que sabemos que a injeção de pacote funciona, nós podemos fazer algo para aumentar massivamente a captura de IVs: Reinjeção de ARP Request

A idéia

ARP funciona (simplicado) fazendo broadcast de um pedido para um IP, e o dispositivo que tem esse IP envia uma resposta de volta. Por WEP não proteger contra ataques de ARP Replay, você pode sniffar (farejar) um pacote, mandá-lo de volta de novo e de novo, e ainda será válido. Então você precisa simplesmente capturar e fazer o Replay de um ARP Request com o alvo no AP, para criar muito tráfego (e sniffar IVs).

A maneira suave

Primeiro abra uma janela com o airodump-ng sniffando (farejando) um tráfego. Aireplay-ng e airodump-ng podem ser executados ao mesmo tempo. Espere um cliente aparecer na rede alvo. Então começe o ataque:

aireplay-ng - -arpreplay -b 00:01:02:03:04:05 -h 00:04:05:06:07:08 rausb0

-b especifica o BSSID alvo, e -h o endereço MAC do cliente conectado.

Agora você tem que esperar um pacote ARP chegar. Em geral você terá que esperar alguns minutos (ou dê uma olhada no próximo capítulo).

Se você obteve êxito, verá algo parecido com isso:

Saving ARP requests in replay_arp-0627-121526.cap
You must also start airodump to capture replies.
Read 2493 packets (got 1 ARP requests), sent 1305 packets...

Tradução do quadro acima:

Salvando ARP Requests em replay_arp-0627-121526.cap
Você deve também iniciar o airodump para capturar ARP Replies.
Lido 2493 pacotes (pegou 1 ARP Requests), enviou 1305 pacotes...

Se você tiver que parar o ataque ARP Replay, não terá que esperar o próximo pacote ARP aparecer, mas pode reutilizar o pacote capturado anteriormente com a opção -r <nome do arquivo>.

Quando usar a técnica de injeção ARP, você pode usar o método PTW para quebrar a chave WEP. Esse reduz dramaticamente o número de pacotes de dados que você precisa, e também o tempo necessário. Você precisa capturar o pacote competo no airodump-ng, o que significa não usar a opção ”- - ivs” quando executá-lo. Para aircrack-ng, use aircrack -z <nome do arquivo>.

Se o número de pacotes de dados recebidos pelo airodump-ng parar de aumentar de vez enquando, então você talvez tenha que reduzir a taxa de ARP Replay. Você faz isso com a opção -x <pacotes por segundo>. Eu geralmente começo com 50, e vou reduzindo até que os pacotes voltem a ser recebidos continuamente. Melhor posicionamento da sua antena ocasionalmente também ajuda.

A maneira agressiva

A maioria dos sistemas operacionais apagam a ARP cache quando disconectados. Se eles querem mandar o próximo pacote após a reconexão (ou simplesmente usando DHCP), eles têm que mandar ARP Requests. Então a idéia é desconectar um cliente e forcá-lo a reconectar para podermos capturar um ARP Request. Um outro efeito é que você pode sniffar (farejar) o ESSID durante a reconexão também. Isso facilita as coisas, se o ESSID do seu alvo está escondido.

Mantenha seu airodump-ng e aireplay-ng rodando. Abra outra janela, e execute um ataque de desautenticação:

aireplay-ng - -deauth 5 -a 00:01:02:03:04:05 -c 00:04:05:06:07:08 rausb0

-a é o BSSID do AP, e -c o MAC do cliente alvo.

Espere alguns segundos e seus ARP Replay deve começar a executar.

A maioria dos clientes tentam reconectar automaticamente. Mas o risco de alguém reconhecer esse ataque, ou ao menos ter a sua atenção dirigida às coisas acontecendo na rede Wi-Fi é maior que em outros ataques.

1) Open System Authentication - OSA
2) Shared Key Authentication - SKA
pt-br/newbie_guide.txt · Última modificação: 2009/08/14 18:34 por mister_x