O Aircrack-NG é conjunto de ferramentas para avaliar a segurança de redes sem fio. Ele foca em diferentes áreas da segurança do WiFi:
- Monitoramento: Captura de pacote e exporatação de dados para arquivos de textos para processamento posterior em outras ferramentas;
- Ataque: Replay attacks, deautenticação, falso access points e outros através de injeção de pacotes;
- Testes: Verificar placas WiFi e capacidades dos drivers (capturar e injetar);
- Cracking: WEP e WPA PSK (WPA 1 e 2).
Todas as ferramentas são através de linhas de comando, as quais permitem usar em scripting de forma pesada. Funciona, a princípio em Linux, mas também no Windows, OS X, FreeBSD, OpenBSD, NetBSD, assim como no Solaris e inclusive no eComStation 2.
Preparando
Estarei usando uma placa Alfa Networks AWUS036H USB wireless. Esta placa, e outros modelos similares Alfa USB, são ideias para análises de segurança wireless, particularmente quando se está trabalhando com máquinas virtuais. VMware não tem drivers para placas wireless, mas é capaz de atravessar USB, permitindo o uso dos drivers wireless da máquina virtual Kali. O uso de uma placa USB wireless nos permitirá avaliar as redes através desta máquina virtual.
Identificando as interfaces de redes disponíveis
Após colocar a placa wireless Alfa no Kali virtual, envie o comando iwconfig para ver as placas wireless disponíveis em sua máquina virtual. No meu caso, a placa Alfa está ligada na wlan0, como mostrado abaixo:
root@kali:~# iwconfig wlan0 IEEE 802.11bg ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off lo no wireless extensions. eth0 no wireless extensions.
Buscando por Access Points (AP’s)
Agora podemos escanear por access points próximos a nós. O comando iwlist wlan0 scan irá escanear por access points próximos usando a interface wlan0, como mostrado abaixo:
root@kali:~# iwlist wlan0 scan Cell 02 - Address: 00:23:69:F5:B4:2Bu Channel:6v Frequency:2.437 GHz (Channel 6) Quality=47/70 Signal level=-63 dBm Encryption key:offw ESSID:"linksys"x Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 14 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master
A partir deste scan inicial nós pegamos quase todas as informações que precisamos para realizar um ataque neste AP, que veremos mais a seguir. Nós temos o MAC address, o canal o qual ele está transmitindo, não está usando criptografia neste momento e nós temos o SSID.
Modo Monitor
Antes de continuar, vamos colocar a placa wireless no modo monitor. Semelhante ao modo promíscuo do Wireshark, o modo monitor nos permite ver o tráfego adicional além do qual é intencional para a nossa placa de rede wireless. Nós iremos utilizar o script Airmon-ng, parte da suíte de avaliação wireless do Aircrack-ng, para colocar a placa no modo monitor. Primeiro, tenha certeza de que não está rodando nenhum processo que irá interferir no modo monitor, enviando o comando airmon-ng check, como mostrado abaixo:
root@kali:~# airmon-ng check Found 2 processes that could cause trouble. If airodump-ng, aireplay-ng or airtun-ng stops working after a short period of time, you may want to kill (some of) them! -e PID Name 2714 NetworkManager 5664 wpa_supplicant
Como podemos ver, Airmon achou dois processos rodando que podem interferir. Dependendo da sua placa wireless e o seu driver, você pode ou não ter problemas se você não matar estes programas. A placa que estou usando não deverá causar nenhum problema, mas algumas placas USB wireless podem. Para matar todos os processos em um passo, use o comando airmon-ng check kill, como mostrado abaixo:
root@kali:~# airmon-ng check kill Found 2 processes that could cause trouble. If airodump-ng, aireplay-ng or airtun-ng stops working after a short period of time, you may want to kill (some of) them! -e PID Name 2714 NetworkManager 5664 wpa_supplicant Killing all those processes...
Agora entre com o comando airmon-ng start wlan0 para trocar a interface wireless para o modo monitor, como mostrado abaixo. Isto permitirá capturar pacotes não direcionados a nossa placa. Airmon-ng cria uma interface de rede mon0.
root@kali:~# airmon-ng start wlan0 Interface Chipset Driver wlan0 Realtek RTL8187L rtl8187 - [phy0] (monitor mode enabled on mon0)
Capturando pacotes
Com nossa interface no modo monitor, vamos ver os dados que podemos capturar usando o Airodump-ng. Este programa é usado para capturar e salvar pacotes wireless. Veja abaixo como diremos ao Airodump-ng para usar a interface wireless no modo monitor mon0.
root@kali:~# airodump-ng mon0 --channel 6 CH 6 ][ Elapsed: 28 s ][ 2016-09-18 15:08 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:23:69:F5:B4:2B -30 53 2 0 6 54. OPN linksys BSSID STATION PWR Rate Lost Frames Probe 00:23:69:F5:B4:2B 70:56:81:B2:F0:53x -21 0 -54 42 19
A saída do Airodump-ng coletou informações sobre os pacotes wireless, incluindo o basic service set identification (BSSID), o qual é o endereço MAC da estação. Podemos ver informações adicionais como o algoritmo de criptografia usado na segurança wireless e o Service Set Identification (SSID). Airodump-ng também pega o endereço MAC dos clientes conectados e o endereço MAC da minha máquina host ligada ao access point wireless. Sabemos que o access point Linksys está aberto, sem nenhuma segurança.
Diferença entre BSSID e ESSID
Antes de prosseguirmos, é importante conhecer e saber a diferença entre esses dois termos:
- Service Set Identifier (SSID) – É o nome associado por um usuário para identificar um AP. É através deste nome que alguém procura pelo WiFi;
- Basic Service Set Identification (BSSID) – É o MAC address do access point;
- Extended Service Set Identifier (ESSID) – Está associado a vários AP em conjunto que compõe um único SSID. Mas o beacon terá informações do BSSID diferentes. Isto envolve o roaming. O usuário se conecta ao AP que tiver a maior força de sinal (RSSI).
Wireless aberto
Redes wireless abertas são um desastre real do ponto de vista de segurança porque qualquer um com uma antena que alcance a área de cobetura do access point poderá se conectar naquela rede. Enquanto redes abertas podem solicitar autenticação depois de conectado, a maioria deixa qualquer um se conectar. Outro ponto importante é que os pacotes que trafegam em redes abertas não são criptografados e qualquer um que esteja “escutando” poderão capturar e ver os dados em texto claro. Dados sensíveis podem ser seguros pelos protocolos como SSL, mas não é sempre o caso. Por exemplo, o tráfego FTP em uma rede wireless aberta é completamente descriptografada, incluindo informações de login, e nem precisamos usar ARP ou DNS cache poisoning para capturar os pacotes. Qualquer placa wireless no modo monitor será possível ver o tráfego descriptografado.
Fonte: Weidman, Georgia. Penetration Testing: A Hands-On Introduction to Hacking. 2014