Release / Cria a release (push) Successful in 4s
Release / CLI (linux-aarch64) (push) Successful in 1m4s
Release / CLI (linux-x86_64) (push) Successful in 1m6s
Release / App desktop (windows) (push) Failing after 3m7s
Release / App desktop (linux) (push) Successful in 4m48s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
134 lines
7.6 KiB
Markdown
134 lines
7.6 KiB
Markdown
# Changelog
|
|
|
|
[English](CHANGELOG.md) · **Português**
|
|
|
|
Formato baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/); versões seguem SemVer.
|
|
|
|
## [1.0.2] - 2026-10-30
|
|
|
|
### Corrigido
|
|
- O build do app desktop no CI procurava o pacote em `target/`, mas o
|
|
diretório do Cargo no runner é outro e persiste entre execuções; os jobs de
|
|
Linux e Windows falhavam antes de publicar qualquer coisa. Por isso o app
|
|
desktop da `v1.0.1` nunca foi publicado — use a `v1.0.2`.
|
|
|
|
## [1.0.1] - 2026-10-30
|
|
|
|
O projeto saiu do GitHub para o Gitea, e a verificação de atualização foi junto.
|
|
|
|
### Alterado
|
|
- **As atualizações agora vêm do Gitea.** O `sabia update` e o "Atualizar agora" do app
|
|
desktop leem a última release em `git.lucasrguerra.dev.br`, e não mais a API do
|
|
GitHub. As versões até a 1.0.0 ainda olham o GitHub, que não responde mais, e por isso
|
|
não enxergam esta release: baixe a 1.0.1 uma vez, e as próximas atualizações são automáticas.
|
|
- Pacotes da release: o CLI para Linux x86_64 e aarch64 (compilado pelo CI do Gitea
|
|
quando uma tag `v*` é enviada, com um `.sha256` ao lado de cada pacote) e o app desktop
|
|
para Linux (`.AppImage`, `.deb`) e Windows (instalador NSIS `.exe`, compilado a partir
|
|
do Linux pelo `scripts/build-gui.sh`). **Não há mais CLI para Windows nem build para
|
|
macOS**: o CLI é só para Linux, e o macOS exige o SDK e a assinatura da Apple, que o CI
|
|
deste projeto não tem.
|
|
|
|
### Corrigido
|
|
- O `sabia update` se recusa a rodar a partir do executável do app desktop (`sabia-gui`).
|
|
O pacote da release contém o CLI, e trocar o app por ele o quebraria; o app passa a
|
|
apontar para a página de downloads.
|
|
|
|
## [1.0.0] - 2026-10-24
|
|
|
|
Primeira versão estável: validação em hardware real por toda a superfície de ataque, um pipeline de quebra bem mais completo, dois ataques novos (WPS, Evil Twin), relatório redesenhado e várias correções de confiabilidade que só apareceram testando contra redes Wi-Fi de verdade.
|
|
|
|
### Adicionado
|
|
- **Quebra de senha:** dicionário padrão trocado por uma lista de 9,7 milhões
|
|
de senhas (rockyou + Probable-Wordlists, deduplicados, comprimida e
|
|
embutida no binário); **regras de mutação** estilo hashcat (maiúscula,
|
|
sufixos numéricos/símbolos, leet simples); **força bruta por máscara**
|
|
(sintaxe `?d?l?u?s?a`); **exportação `.hc22000`** (individual ou em lote)
|
|
para levar o handshake direto ao hashcat/John.
|
|
- **Ataque WPS:** PIN/Pixie Dust via `reaver` embutido (extraído em tempo de
|
|
execução), ou `bully` quando instalado no sistema.
|
|
- **Evil Twin:** clona um AP já visto na sessão (SSID aberto) numa segunda
|
|
interface com portal cativo, para WPA/WPA2-PSK — a senha só é aceita
|
|
depois de conferida de verdade contra o handshake real já capturado,
|
|
nunca "aceita qualquer coisa". Uma variante **Enterprise (802.1X/EAP)**
|
|
captura credenciais automaticamente via `hostapd-wpe`, sem portal nem
|
|
ação humana, já que a credencial viaja no próprio handshake EAP.
|
|
- **Decriptação de tráfego CCMP** de um cliente assim que a senha do
|
|
handshake dele é conhecida (Temporal Key derivada da PMK quebrada).
|
|
- **Pontuação de interferência de canais** por banda e **achados de
|
|
segurança** (rede aberta, PMF ausente, WPS exposto, possível evil twin
|
|
por SSID duplicado).
|
|
- **Relatório de auditoria redesenhado:** capa em página cheia com o logo
|
|
embutido, sumário com âncoras, cabeçalho/rodapé corridos via margin
|
|
boxes do `@page` (seção atual, numeração de página), cards de KPI e
|
|
achados com cor por severidade — a paginação continua feita pelo
|
|
Paged.js no navegador, imprimível em PDF.
|
|
- `ScanSnapshot.warning`: avisa quando uma captura está rodando há um
|
|
tempo sem receber nenhum quadro — uma placa que aceita ativar modo
|
|
monitor sem realmente entregar captura (comum em Wi-Fi interno de
|
|
notebook) agora diz isso, em vez de ficar "escutando o ar" caladinha.
|
|
|
|
### Corrigido
|
|
- **Captura de handshake nunca completava em rede real:** `eapol.rs` lia
|
|
`key_info`/`replay_counter`/`key_data_len` como little-endian; esses
|
|
campos do 802.1X são big-endian. O deauth funcionava, os quadros EAPOL
|
|
eram vistos, mas o `HandshakeTracker` descartava todos silenciosamente —
|
|
0 handshakes não importa quanto tráfego fosse gerado. Os próprios
|
|
quadros sintéticos de teste do projeto cometiam o mesmo engano
|
|
simetricamente, então os testes de ida e volta nunca pegaram isso;
|
|
verificado ao vivo contra um AP real depois da correção.
|
|
- **Modo monitor brigando com o NetworkManager:** `set_monitor()` agora
|
|
solta a interface do NetworkManager antes de trocar de modo e devolve
|
|
depois — sem isso o NM reafirmava a própria conexão em segundos e a
|
|
captura caía com "está em modo managed".
|
|
- **Evil Twin deixava o sistema pela metade se o processo morresse no
|
|
meio** (Ctrl+C, `kill -9`, queda de energia): as duas interfaces ficavam
|
|
presas em `managed=no` pra sempre, Wi-Fi sumia do painel do sistema. Um
|
|
arquivo de estado mais uma rotina de autocura a cada início do engine
|
|
desfazem isso sozinhos agora; o `sabia ui` também trata SIGINT
|
|
graciosamente.
|
|
- **Quadros repetidos de deauth/disassoc eram descartados como duplicata**
|
|
depois do primeiro envio — o mesmo Sequence Control era reusado em toda
|
|
injeção; agora incrementa por quadro.
|
|
- **Lista de redes reordenava debaixo do cursor** durante a captura, porque
|
|
a ordenação por sinal reagia a cada oscilação de 1-2 dBm; a ordem agora
|
|
é estável (ordem de chegada, sinal arredondado em buckets de 4 dBm).
|
|
- **"Forçar handshake" falhava se a captura tivesse sido parada:** agora
|
|
religa a captura sozinho e espera o alvo reaparecer com canal conhecido
|
|
antes de disparar o job, em vez de travar no canal em que o scanner por
|
|
acaso estava saltando.
|
|
- **Grid da aba Ataques deixava buracos vazios grandes** quando dois cards
|
|
de alturas muito diferentes caíam na mesma linha; trocado por um layout
|
|
de colunas tipo alvenaria.
|
|
|
|
### Alterado
|
|
- `crack_reader`/`crack_mask` paralelizam entre os núcleos disponíveis e
|
|
reaproveitam a base do HMAC por iteração em vez de reconstruí-la — cerca
|
|
de 640x mais rápido em build release comparado ao caminho original
|
|
debug/single-thread.
|
|
|
|
## [0.1.0] - 2026-10-23
|
|
|
|
Primeira versão: CLI, app desktop e núcleo compartilhado.
|
|
|
|
### Adicionado
|
|
- `sabia-core`: descoberta de interfaces Wi-Fi, controle de **modo monitor** e
|
|
canal (via netlink/`iw`), **varredura** de 2.4, 5 e 6 GHz, captura crua de
|
|
quadros 802.11 por **AF_PACKET** (sem libpcap), parsing de **radiotap** e de
|
|
quadros de gerenciamento (beacon, probe, EAPOL), agregação de APs e clientes,
|
|
captura de **4-way handshake** e **PMKID**, **quebra offline** por dicionário
|
|
(PBKDF2-HMAC-SHA1, MIC e PMKID) para WPA/WPA2-PSK, escrita e leitura de
|
|
**`.pcap`**, injeção de quadros, trilha de **auditoria** local encadeada por
|
|
hash, **auto-atualização** por releases do GitHub.
|
|
- `sabia`: CLI com `iface` (list/channels/monitor), `scan`, `analyze`, `crack`,
|
|
`deauth` (com `--yes`), `doctor`, `audit` (verify/show), `update` e `ui`
|
|
(servidor local da interface).
|
|
- App desktop (Tauri) com a mesma interface servida pelo `sabia ui`, pedindo
|
|
elevação de administrador automaticamente ao abrir — modo monitor e captura
|
|
crua exigem root/admin.
|
|
- Interface gráfica: sidebar de interfaces, painel de captura com linha de sinal
|
|
animada, tabela de redes com barras de sinal e selos de segurança por cor,
|
|
aviso de **uso autorizado**, botão de **atualização** em um clique, temas Auto/
|
|
Claro/Escuro e idioma **português e inglês**.
|
|
- CI com caches (`rust-cache`, `.deb` do Tauri em cache) e pipeline de release
|
|
multiplataforma (CLI em 5 alvos e app desktop via `tauri-action`).
|