domingo, 2 de outubro de 2011

Quebra de chave na rede sem fio

Pela interface de rede sem fio também é possível capturar pacotes que trafegam. Entretanto, em uma rede sem fio não é necessário estar conectado à rede para ter acesso as informações. Em uma rede sem fio o meio físico é acessível para quem estiver ao alcance pois os sinais são transmitidos pelo "ar".

A única forma de proteção é criptografar toda a transmissão, através do uso dos protocolos de segurança WEP ou WPA. Contudo, existem ferramentas que são capazes de quebrar uma chave de criptografia de rede sem fio. Neste artigo apresentarei algumas delas.

A primeira ferramenta que pode-se usar é o 'iwlist'. O 'iwlist' (pacote wireless-tools) é usado para exibir informações de uma interface de rede sem fio, que não são exibidas pelo 'iwconfig'. Esta ferramenta exibe os valor corrente e todos os valores suportados pela interface para frequência, taxa de bits, txpower, autenticação etc.

Esta ferramenta pode ser usada para descobrirmos quais redes existem por perto. O parâmetro "scan" retorna uma lista das células de pontos de acesso e Ad-Hoc ao alcance. Exibe informações sobre cada ponto de acesso encontrado, incluindo o ESSID, MAC Address, qualidade do link, frequência, autenticação etc. Por exemplo:

# iwlist wlan0 scan

wlan0     Scan completed :
          Cell 01 - Address: 00:36:5A:68:7E:A4
                    ESSID:"Casa"
                    Mode:Managed
                    Frequency:2.427 GHz (Channel 4)
                    Quality:2/5  Signal level:-71 dBm  Noise level:-92 dBm
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (1) : TKIP
                        Authentication Suites (1) : PSK
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s; 6 Mb/s; 12 Mb/s
                              24 Mb/s; 48 Mb/s
          Cell 02 - Address: 14:1C:6E:B9:82:DC
                    ESSID:"Escritorio"
                    Mode:Managed
                    Frequency:2.437 GHz (Channel 6)
                    Quality:1/5  Signal level:-82 dBm  Noise level:-92 dBm
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : TKIP CCMP
                        Authentication Suites (1) : PSK
                       Preauthentication Supported
                    Encryption key:on
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
                              48 Mb/s; 54 Mb/s

Uma interface de rede sem fio deve estar no modo de monitoramento para realizar a captura de pacotes. Apresento duas ferramentas que podem fazer isto: 'iwconfig' e 'airmon-ng'.

O 'iwconfig' (pacote wireless-tools) é similar ao 'ifconfig' mas é dedicado as interfaces sem fio. É usado para configurar os parâmetros da interface de rede que são específicas das operações sem fio, como ESSID, frequência, canal, taxa de bits, txpower etc. O 'iwconfig' pode ser usado para exibir tais parâmetros e estatísticas da rede sem fio.

O 'iwconfig' possui diversas opções e as utilizadas para ativar o modo de monitoramento são:

essid NOME
Define o ESSID ou desativa a checagem com off ou any e reativa com on.

mode MODO
Define o modo de operação do dispositivo, dependendo da topologia da rede. Os modos aceitos são: Ad-Hoc, Managed, Master, Repeater, Secondary, Monitor ou Auto.

Exemplo:

# iwconfig wlan1 essid any mode Monitor

O 'aircrack-ng' é um programa de quebra de chave 802.11 WEP e WPA-PSK. Pode recuperar as chaves quando uma quantidade suficiente de pacotes for capturada. Faz parte do pacote de ferramentas 'aircrack-ng', que contém diversas outras ferramentas:

airmon-ng - ativa modo de monitoramento em placas de rede sem fio
airodump-ng - ferramenta de captura de pacotes wireless para o aircrack-ng
aireplay-ng - injeta pacotes em uma rede sem fio gerando tráfego

O 'airmon-ng' é um script para ativar o modo de monitoramento em interfaces de rede. Também pode ser usado para retornar do modo monitor ao modo gerenciado.

As principais opções para linha de comando do 'airmon-ng' são:

start INTERFACE [CANAL]
Ativa o modo de monitoramento na interface (e especifica um canal).

stop INTERFACE
Desativa o modo de monitoramento e retorna ao modo gerenciado.

check
Lista todos os programas que podem interferir na interface de rede sem fio.

Executar o 'airmon-ng' sem opções irá exibir o estado da interface. Com a opção start inicia o modo de monitoramento. Exemplo:

# airmon-ng start wlan1

Em alguns drivers, da interface de rede sem fio, a ferramenta 'airmon-ng' age de uma forma diferente. O 'airmon-ng' cria uma interface virtual denominada "mon0". O mon0 é um apelido para a interface wlan0 em modo de monitoramento. As ferramentas do 'aircrack-ng' devem então usar a interface virtual mon0.

Para confirmar que a interface está no modo monitor, execute o comando 'iwconfig'.

Alguns modelos de placas wireless necessitam de comandos adicionais para desativar e reativar o dispositivo. Principalmente interfaces com chipset Atheros. Não são todos os drivers que suportam o modo de monitoramento.

O 'airodump-ng' é usado para capturar pacotes dos quadros 802.11. Adicionalmente, o 'airodump-ng' exibe detalhes dos pontos de acesso e clientes vistos.

Principais opções do 'airodump-ng':

-w PREFIXO
Prefixo do nome do arquivo usado para gravação. Se não informado, irá somente exibir os dados na tela.

-c CANAL
Especifica um ou mais canais para escuta (entre vírgulas).

-d BSSID
Somente exibirá as redes do BSSID dado.

-r ARQUIVO
Lê os pacotes de um arquivo.

Exemplo de uso:

# airodump-ng --channel 6 -w redewl -d 00:22:33:3D:66:77 mon0

Para interromper utilize as teclas Ctrl+C.

O 'airodump-ng' mostra uma lista dos pontos de acesso detectados e também clientes conectados.

CH  9 ][ Elapsed: 1 min ][ 2007-04-26 17:41 ][ WPA handshake: 00:14:6C:7E:40:80

BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID

00:09:5B:1C:AA:1D   11  16       10        0    0  11  54.  OPN              NETGEAR
00:14:6C:7A:41:81   34 100       57       14    1   9  11e  WEP  WEP         bigbear
00:14:6C:7E:40:80   32 100      752       73    2   9  54   WPA  TKIP   PSK  teddy

BSSID              STATION            PWR   Rate   Lost  Packets  Probes

00:14:6C:7A:41:81  00:0F:B5:32:31:31   51   36-24    2       14
(not associated)   00:14:A4:3F:8D:13   19    0-0     0        4    mossy
00:14:6C:7A:41:81  00:0C:41:52:D1:D1   -1   36-36    0        5
00:14:6C:7E:40:80  00:0F:B5:FD:FB:C2   35   54-54    0       99    teddy


Campos exibidos pelo airodump-ng:

A primeira linha mostra o canal utilizado, tempo transcorrido, data atual e opcionalmente se a criptografia foi detectada.

Seção do Ponto de Acesso (AP):

BSSID       Endereço MAC do ponto de acesso, e para o cliente, o ponto de acesso associado.
PWR         Nível do sinal informado pela placa de rede. (-1 se o driver não suportar)
RXQ         Qualidade do recebimento medido em porcentagem dos pacotes recebidos com sucesso.
Beacons     Número de pacotes de anúncio enviados pelo AP.
# Data      Número de pacotes de dados capturados.
#/s         Número de pacotes de dados por segundo.
CH          Número do canal.
MB          Máxima velocidade suportada pelo AP.
ENC         Algoritmo de criptografia em uso. OPN (sem criptografia), WEP, WPA ou WPA2.
CIPHER      Cifra detectada. (CCMP, WRAP, TKIP, WEP, WEP40, ou WEP104).
AUTH        Protocolo de autenticação usado. (MGT, SKA, PSK, ou OPN)
ESSID       Nome da rede sem fio.

Seção do Cliente:

STATION     Endereço MAC de cada cliente associado a um AP.
PWR         Nível do sinal.
Rate        Velocidade (taxa de transferência) do último pacote transmitido.
Lost        Número de pacotes perdidos.
Packets     Número de pacotes enviados pelo cliente.
Probes      ESSIDs sondado pelo cliente, na tentativa de conectar.

Para a ferramenta 'aircrack-ng' ter sucesso na quebra de chave, é necessária uma grande quantidade de pacotes capturados. No entanto algumas redes tem um volume baixo de tráfego, levando muito tempo para que se consiga a quantidade desejada. Há uma ferramenta que pode ajudar a aumentar o tráfego da rede. O 'aireplay-ng' é usado para injetar ou repetir pacotes. Sua função primária é gerar tráfego para o uso do 'aircrack-ng'.

As principais opções do 'aireplay-ng' são:

-3
Requisição repetida do pacote ARP. O AP repete o pacote ARP com um novo vetor de inicialização (IV).

-b BSSID
Endereço MAC do ponto de acesso.

-h SMAC
Define o endereço MAC da fonte (cliente associado).

Exemplo de uso:

# aireplay-ng -3 -b 00:1B:11:54:44:1B -h 00:25:86:EB:4B:BA wlan1

O 'aireplay-ng' age fingindo ser um cliente que já está associado ao ponto de acesso. Por isso a necessidade da opção '-h SMAC'. Escolha um cliente associado ao AP na lista mostrada pela ferramenta 'airodump-ng', os clientes conectados ao ponto de acesso o qual deseja quebrar a chave.

A ferramenta 'aireplay-ng' deve ser executada simultaneamente com a ferramenta 'airodump-ng'. Em terminais separados, uma contribuindo para a outra. Aliás, a próxima ferramenta também pode ser executada simultaneamente, em mais um outro terminal, para dar início ao processo de quebra.

O 'aircrack-ng' é um programa de quebra de chaves 802.11 WEP e WPA/WPA2-PSK. É capaz de recuperar uma chave WEP logo que uma quantidade suficiente de pacotes estejam capturados. Utiliza dois métodos para determinar a chave WEP: aproximação PTW (Pyshkin, Tews, Weinmann) e FMS/KoreK. Adicionalmente o 'aircrack-ng' oferece um método de dicionário para determinar a chave WEP. Para quebrar chaves WPA/WPA2, o 'aircrack-ng' usa uma lista de palavras ou a ferramenta 'airolib-ng', que usa hashes tables.

As principais opções do 'aircrack-ng' são:

-a AMODE     Força o modo de ataque (wep ou wpa).
-c           Procura somente por caracteres alpha-numéricos.
-e ESSID     Seleciona a rede alvo pelo ESSID.
-b BSSID     Seleciona a rede alvo pelo endereço MAC do AP.
-n NBITS     Especifica o tamanho da chave:
             64 para 40-bit WEP, 128 para 104-bit WEP etc.
-w WORDS     Caminho para o arquivo de dicionário para quebra de WPA.
-r DATABASE  Caminho para a base do airolib-ng. Não usado com '-w'.

Exemplo de uso:

# aircrack-ng -n 128 RedeSemFio-02.cap

O sucesso da quebra pode demorar horas, tudo depende do volume capturado e do tamanho da chave. Mas um conselho, não quebre uma rede na qual você não tenha autorização, é crime. E é tão fácil descobrir e provar que um malandro fez isso. Juízo!

Um comentário: