The updater reads the latest release from Gitea. update::apply refuses to overwrite anything but the CLI. Release workflow builds the Linux CLI; scripts/build-gui.sh builds the Linux and Windows desktop app. Docs say Linux and Windows only. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
116 lines
9.1 KiB
Markdown
116 lines
9.1 KiB
Markdown
<p align="center"><img src="apps/gui/ui/sabia.png" width="300" alt="Sabiá"></p>
|
|
<h1 align="center">Sabiá</h1>
|
|
<p align="center">Auditoria de Wi-Fi livre e gratuita.<br>Terminal e interface gráfica · captura no Linux, análise offline também em Windows · uso autorizado.</p>
|
|
|
|
<p align="center"><a href="docs/pt-BR/cli.md">Terminal</a> · <a href="docs/pt-BR/interface.md">Interface</a> · <a href="docs/pt-BR/arquitetura.md">Arquitetura</a> · <a href="ROADMAP.pt-BR.md">Roadmap</a> · <a href="CHANGELOG.pt-BR.md">Changelog</a></p>
|
|
|
|
<p align="center"><a href="README.md">English</a> · <b>Português</b></p>
|
|
|
|
---
|
|
|
|
O Sabiá junta, numa única varredura, o que ferramentas como `airodump-ng`, `hcxdumptool`, `aircrack-ng` e `wifite` fazem separadamente — em um só binário Rust, sem depender de `libpcap`:
|
|
|
|
- **Descoberta de redes:** percorre os canais de **2.4, 5 e 6 GHz** e lista os pontos de acesso e os clientes associados, com SSID, BSSID, canal, sinal, tipo de segurança, detalhes de WPS e fabricante.
|
|
- **Modo monitor sem scripts:** liga e desliga o modo monitor da placa direto pelo netlink/`iw`, com recuperação automática se o NetworkManager tentar retomar a interface, e mostra os canais que o rádio suporta.
|
|
- **Captura de handshake:** reconhece o **4-way handshake (EAPOL)** e o **PMKID** no ar e guarda só o que é preciso para a quebra offline; decifra tráfego CCMP de um cliente assim que a senha dele é conhecida.
|
|
- **Quebra, de três jeitos:** dicionário (9,7 milhões de senhas por padrão, rockyou + Probable-Wordlists), **regras de mutação** estilo hashcat e **força bruta por máscara** (`?d?l?u?s?a`) — recalcula a PMK com **PBKDF2-HMAC-SHA1** e confere o **MIC** (4-way) ou o **PMKID** — para WPA/WPA2-PSK. Exporta em **`.hc22000`** para levar o handshake direto ao hashcat/John.
|
|
- **pcap de ida e volta:** grava os quadros capturados em `.pcap` e **analisa um `.pcap` offline** (redes, clientes e handshakes), compatível com as outras ferramentas.
|
|
- **Desautenticação e WPS:** _deauth_ direcional/contínuo, teste de PMF, caça de PMKID sem cliente, e ataque WPS PIN/Pixie Dust (reaver embutido, ou bully quando instalado) — tudo atrás de confirmação explícita de autorização (`--yes`/checkbox).
|
|
- **Evil Twin:** clona um AP já visto com portal cativo para WPA/WPA2-PSK — a senha só é aceita depois de conferida contra o handshake real já capturado, nunca "aceita qualquer coisa" — mais uma variante Enterprise (802.1X/EAP) que captura credenciais automaticamente, sem portal.
|
|
- **Relatório de auditoria:** relatório paginado e imprimível (capa, sumário, achados, pontuação de canais, trilha de auditoria) gerado localmente.
|
|
- **Trilha de auditoria:** toda ativação de modo monitor e sessão de captura fica registrada numa trilha local **encadeada por hash**.
|
|
- **Diagnóstico:** o `doctor` confere privilégios, ferramentas e interfaces antes de você começar.
|
|
|
|
## Uso autorizado
|
|
|
|
O Sabiá é uma ferramenta de **auditoria** — para testar a segurança de redes **suas** ou de redes que você tem **autorização explícita** para avaliar.
|
|
|
|
- Capturar handshakes, enviar desautenticação ou quebrar senhas de redes de terceiros **sem permissão é ilegal** na maioria dos países. A responsabilidade é de quem usa.
|
|
- A desautenticação (`deauth`) exige a flag `--yes`, uma afirmação de que você tem autorização para testar aquela rede.
|
|
- Toda ativação de modo monitor e sessão de captura é **registrada na trilha de auditoria local** (`sabia audit show`), com encadeamento por hash para detectar adulteração.
|
|
- **Nada seu é enviado para fora.** O único acesso à rede por padrão é a verificação de atualização ao abrir o app (desligável).
|
|
- Senhas de dicionário e handshakes ficam só na sua máquina.
|
|
|
|
## Instalação
|
|
|
|
Baixe o pacote do seu sistema em **[Releases](../../releases)**:
|
|
|
|
| | CLI | App gráfico |
|
|
|---|---|---|
|
|
| Windows | — | instalador `.exe` |
|
|
| Linux | `sabia-*-linux-{x86_64,aarch64}.tar.gz` | `.AppImage` / `.deb` |
|
|
|
|
O CLI é só para Linux; o app desktop sai para Linux e Windows. Cada pacote do
|
|
CLI tem um `.sha256` ao lado. Compilar do código: `cargo build --release -p
|
|
sabia-cli` (Rust 1.80+, Linux).
|
|
|
|
**Atualizações:** o app desktop consulta o Gitea ao abrir; havendo versão nova, um botão oferece **Atualizar agora**. O CLI atualiza do mesmo jeito (`sabia update`); ele baixa o binário certo para a plataforma, confere o **SHA-256** e troca o executável em uso — você não precisa baixar nada na mão. A consulta é uma única requisição à API de releases e nada seu é enviado.
|
|
|
|
> Os binários ainda **não são assinados**: o SmartScreen do Windows vai avisar. Confira o SHA-256.
|
|
|
|
**Captura e modo monitor exigem Linux e privilégio de root** — a única plataforma para a qual o CLI é compilado (`CAP_NET_ADMIN`/`CAP_NET_RAW`): a captura crua usa `AF_PACKET` e o controle de interface usa netlink. A **análise de `.pcap` e a quebra offline** rodam também em Windows e macOS. O app desktop pede elevação de administrador sozinho ao abrir.
|
|
|
|
## Começando
|
|
|
|
```bash
|
|
sabia doctor # privilégios, ferramentas e interfaces
|
|
sabia iface list # interfaces Wi-Fi e seus modos
|
|
sudo sabia iface monitor wlan0 on # liga o modo monitor
|
|
|
|
sudo sabia scan wlan0 --band all --out ar.pcap # percorre os canais e grava o ar
|
|
sabia analyze ar.pcap # lê um .pcap offline
|
|
sabia crack ar.pcap --wordlist lista.txt # quebra o handshake por dicionário
|
|
```
|
|
|
|
Teste autorizado de desautenticação e todos os outros comandos (`audit`, `update`, `ui`) estão em **[docs/pt-BR/cli.md](docs/pt-BR/cli.md)**.
|
|
|
|
## Interface gráfica
|
|
|
|
App desktop (Tauri) com sidebar de interfaces, painel de captura com linha de sinal animada e uma tabela de redes com barras de sinal e selos de segurança por cor. O mesmo front-end roda no navegador com `sabia ui`. Mais detalhes em **[docs/pt-BR/interface.md](docs/pt-BR/interface.md)**.
|
|
|
|
- Seleção da interface, ativação de **modo monitor** e início/parada de **captura** por botão.
|
|
- Tabela de **redes vistas** em tempo real, com sinal, canal e segurança.
|
|
- Aviso de **uso autorizado** sempre à vista e elevação automática de privilégio ao abrir.
|
|
- Botão de **atualização** em um clique, temas **Auto, Claro e Escuro** e interface em **português e inglês**.
|
|
|
|
## Limites conhecidos
|
|
|
|
- **Captura só no Linux**, com placa que suporte **modo monitor** (e injeção, para `deauth`); o CLI não é compilado para outras plataformas. Em Windows o app desktop do Sabiá faz só análise de `.pcap` e quebra offline.
|
|
- **WPA3/SAE** não cai por dicionário de handshake — a quebra cobre **WPA/WPA2-PSK** (4-way e PMKID).
|
|
- **5 e 6 GHz** dependem da placa e do _regulatory domain_; alguns canais ficam passivos (sem _probe_).
|
|
- **Certificado autoassinado do Evil Twin Enterprise:** clientes que validam a cadeia de certificado da rede (comum em perfil corporativo/MDM atualizado) não confiam nele — é a defesa correta funcionando, não um bug.
|
|
- **Windows:** o código compila e é testado em CI, mas a captura ao vivo não roda lá; o app desktop faz só análise offline. Não há build para macOS: o Tauri precisa do SDK do macOS e de assinatura, os dois presos a hardware Apple e a uma conta Apple Developer, que o CI deste projeto (um único runner Linux) não tem.
|
|
|
|
## Para onde vai
|
|
|
|
Resumo do [ROADMAP](ROADMAP.pt-BR.md):
|
|
|
|
| | |
|
|
|---|---|
|
|
| **Feito** | Modo monitor por netlink (com recuperação do NetworkManager), varredura 2.4/5/6 GHz, captura de 4-way e PMKID, decriptação CCMP, quebra por dicionário/regras/máscara (WPA/WPA2-PSK), exportação `.hc22000`, escrita e leitura de `.pcap`, `deauth`/PMF/PMKID autorizados, ataque WPS, Evil Twin (PSK + Enterprise), pontuação de canais e achados, relatório de auditoria paginado, trilha de auditoria por hash, `doctor`, CLI + app desktop, atualização em um clique |
|
|
| **Próximo** | Aceleração por GPU na quebra, captura em Windows (Npcap) |
|
|
| **Fora de plano** | Um build para macOS — veja [Limites conhecidos](#limites-conhecidos) |
|
|
| **Depois** | WPA3/SAE _downgrade_, validação em hardware variado, binários de release assinados |
|
|
|
|
## Desenvolvimento
|
|
|
|
```
|
|
crates/sabia-core núcleo: interfaces, netlink, radiotap, 802.11, EAPOL, handshake, captura, crack, auditoria, update
|
|
crates/sabia-cli binário `sabia` (CLI + servidor local da UI)
|
|
apps/gui interface (ui/ = HTML, CSS e JS; src-tauri/ = app desktop)
|
|
scripts/ apoio de CI (instalação de dependências em cache, checagem de i18n)
|
|
docs/ terminal, interface e arquitetura
|
|
```
|
|
|
|
```bash
|
|
cargo test --workspace
|
|
cargo clippy --workspace --all-targets
|
|
node scripts/check-ui-i18n.mjs # cobertura da tradução da interface
|
|
```
|
|
|
|
Veja [CONTRIBUTING.pt-BR.md](CONTRIBUTING.pt-BR.md) e [docs/pt-BR/arquitetura.md](docs/pt-BR/arquitetura.md). Versões seguem [SemVer](https://semver.org/lang/pt-BR/); mudanças em [CHANGELOG.pt-BR.md](CHANGELOG.pt-BR.md). Para publicar: `git tag vX.Y.Z && git push --tags` (o workflow `release` compila e publica tudo). Vulnerabilidades: [SECURITY.pt-BR.md](SECURITY.pt-BR.md).
|
|
|
|
## Licença
|
|
|
|
[MIT](LICENSE-MIT) ou [Apache-2.0](LICENSE-APACHE), à sua escolha.
|