- Move a UI de crates/sabia-cli/src/web/ para apps/gui/ui/: fonte única servida tanto pelo `sabia ui` quanto pelo app desktop. - sabia-core::engine::Engine centraliza sessões de scan/monitor/update — usado pelo servidor local da CLI e pelo app Tauri, sem duplicar lógica. - apps/gui/src-tauri: app desktop Tauri 2, mesma interface, comandos IPC espelhando a API HTTP. Pede elevação de administrador/root automaticamente ao abrir (modo monitor e captura crua exigem): manifesto requireAdministrator no Windows (UAC antes mesmo do app abrir), pkexec no Linux e osascript no macOS, com reinício automático e aviso + botão de nova tentativa na interface se for negada. - Ícone gerado a partir do logo (apps/gui/src-tauri/icons/source.png). - .github/workflows/ci.yml: fmt, clippy, testes (Linux/Windows/macOS), auditoria de dependências, compilação do app desktop. - .github/workflows/release.yml: ao empurrar uma tag vX.Y.Z, builda a CLI (Linux x86_64/aarch64, macOS x86_64/aarch64, Windows x86_64) e o app desktop pras mesmas plataformas, publica tudo numa release do GitHub com checksums SHA-256. - sabia-core::update: corrige o nome do asset esperado (casava pelo nome fixo, mas o release empacota com a versão no nome) e a extração (tar.gz no Linux/macOS, zip no Windows). - LICENSE-MIT, LICENSE-APACHE, CHANGELOG.md com a entrada 0.1.0. - cargo fmt + clippy (-D warnings) limpos em todo o workspace.
52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
# Sabiá
|
|
|
|
Auditoria, monitoramento e pentest de redes Wi-Fi — terminal e interface
|
|
gráfica sobre o mesmo núcleo, com foco na interface gráfica e uso
|
|
intuitivo: a parte complexa (netlink, radiotap, parsing de quadro 802.11)
|
|
fica escondida em `sabia-core`; CLI e GUI só consomem.
|
|
|
|
> Use apenas em redes próprias ou com autorização explícita do responsável
|
|
> pela rede (engajamento de pentest formal). Toda ativação de modo monitor
|
|
> e sessão de captura é registrada numa trilha de auditoria local
|
|
> encadeada por hash (`.sabia-audit.log`).
|
|
|
|
## Estrutura
|
|
|
|
```
|
|
crates/sabia-core biblioteca: netlink (iw), radiotap, parsing 802.11,
|
|
captura crua (AF_PACKET), auditoria, auto-atualização
|
|
crates/sabia-cli binário `sabia`: comandos de terminal + servidor
|
|
local da interface (`sabia ui`)
|
|
apps/gui/ui mesma página HTML/JS servida pelo `sabia ui` e pelo app desktop
|
|
apps/gui/src-tauri app desktop (Tauri) — pede administrador/root ao abrir
|
|
```
|
|
|
|
## Uso
|
|
|
|
```
|
|
sabia iface list # lista interfaces, marca as Wi-Fi
|
|
sabia iface monitor <if> on # liga modo monitor (precisa root)
|
|
sabia scan <if> --out captura.pcap # varre canais, mostra APs/clientes
|
|
sabia ui # abre a interface gráfica local
|
|
sabia update # verifica atualização
|
|
sabia update --apply # baixa e aplica a atualização
|
|
```
|
|
|
|
Ou baixe o app desktop em [Releases](https://github.com/lucasrguerra/sabia/releases)
|
|
— ele pede elevação de administrador/root automaticamente ao abrir, já que
|
|
modo monitor e captura crua exigem esse privilégio em qualquer sistema.
|
|
|
|
Pela CLI, capturar quadros 802.11 exige `CAP_NET_RAW`/`CAP_NET_ADMIN` —
|
|
normalmente root (`sudo sabia ...`).
|
|
|
|
## Dependências externas
|
|
|
|
`iw` e `ip` (iproute2) para controlar modo monitor e canal — é uma ponte
|
|
deliberada até existir uma implementação nl80211 nativa. A captura em si
|
|
(AF_PACKET) e todo o parsing de quadro são Rust puro, sem libpcap.
|
|
|
|
## Hardware testado
|
|
|
|
Adaptador USB RTL8812AU (driver `rtw88_8812au`), suporta modo monitor e
|
|
injeção.
|