Release / Create release (push) Successful in 7s
CI / Format and clippy (push) Successful in 1m25s
CI / Dependency audit (push) Successful in 11s
CI / Tests (Linux) (push) Successful in 1m57s
CI / Check desktop app (Linux) (push) Successful in 3m43s
Release / CLI (linux-aarch64) (push) Successful in 45s
Release / Desktop app (linux-aarch64) (push) Successful in 4m22s
Release / CLI (linux-x86_64) (push) Successful in 51s
Release / Desktop app (linux-x86_64) (push) Successful in 4m20s
Release / Desktop app (windows) (push) Successful in 3m12s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VAyr8d7HuAdUGB6aA5xmDD
8.5 KiB
8.5 KiB
Changelog
English · Português
Format based on Keep a Changelog; versions follow SemVer.
[1.0.5] - 2026-10-31
Added
- One-click desktop update. The update button actually downloads, verifies (SHA-256) and installs the new version now, instead of only changing its own label. Works for all three desktop packages: AppImage (atomic self-replace),
.deb(dpkg -i, no new password prompt — the app is already running as root by the time you click it), and the Windows installer (silent install). On Linux, the app restarts itself automatically; on Windows, the installer runs silently but the app does not reopen on its own yet — start it again once the install finishes.
Changed
- The repository moved to the Ciberfauna organization (
ciberfauna/sabia, waslucasrguerra/sabia). Important notice for existing installations: versions up to 1.0.4 have the old location baked into their update check; they will not find this release automatically. Download 1.0.5 once manually from the new Releases page, and future update checks will work through the new location.
[1.0.3] - 2026-10-30
Fixed
deauth_directionalhad no#[cfg(target_os = "linux")]of its own; every non-Linux build failed with a duplicate-definition error and unresolved Linux-only imports.v1.0.1andv1.0.2never got a working Windows desktop app for this reason, andv1.0.2's Linux package was mislabeled1.0.1(the version inCargo.tomlwas not bumped). Usev1.0.3.
[1.0.2] - 2026-10-30
Fixed
- The desktop app build on CI looked for its bundle under
target/, but the runner's Cargo target directory is elsewhere and persists between runs; the Linux and Windows jobs failed before publishing anything.v1.0.1's desktop app was never published for this reason — usev1.0.2.
[1.0.1] - 2026-10-30
The project moved from GitHub to Gitea, and the update check followed it.
Changed
- Updates now come from Gitea.
sabia updateand the desktop app's "Update now" read the latest release fromgit.lucasrguerra.dev.brinstead of the GitHub API. Versions up to 1.0.0 still look at GitHub, which is no longer reachable, so they cannot find this release: download 1.0.1 once, and later updates are automatic. - Release packages: the CLI for Linux x86_64 and aarch64 (built by the Gitea CI when
a
v*tag is pushed, with a.sha256next to each package), and the desktop app for Linux (.AppImage,.deb) and Windows (NSIS.exeinstaller, cross-compiled from Linux byscripts/build-gui.sh). There is no Windows CLI and no macOS build any more: the CLI is Linux-only, and macOS needs Apple's SDK and code signing, which this project's CI cannot provide.
Fixed
sabia updaterefuses to run from the desktop app's executable (sabia-gui). The release package contains the CLI, and replacing the app with it would have broken the app; the app now points to the downloads page instead.
[1.0.0] - 2026-10-24
First stable release: real-hardware validation across the whole attack surface, a much more complete cracking pipeline, two new attacks (WPS, Evil Twin), a redesigned report, and several reliability fixes found only by testing against live Wi-Fi networks.
Added
- Cracking: default dictionary replaced by a 9.7M-password list (rockyou +
Probable-Wordlists, deduplicated, gzip-embedded); hashcat-style mutation
rules (uppercase, numeric/symbol suffixes, simple leet); mask brute
force (
?d?l?u?s?asyntax);.hc22000export (single or batch) to hand a handshake to hashcat/John. - WPS attack: PIN/Pixie Dust via a bundled
reaver(extracted at runtime), orbullywhen installed on the system. - Evil Twin: clones an already-seen AP (open SSID) on a second interface
with a captive portal, for WPA/WPA2-PSK — the submitted password is only
accepted after being verified against the real captured handshake, never
"accepts anything". An Enterprise (802.1X/EAP) variant captures
credentials automatically via
hostapd-wpe, no portal or human action needed, since the credential travels in the EAP handshake itself. - CCMP traffic decryption for a client once its handshake's password is known (Temporal Key derived from the cracked PMK).
- Channel-interference scoring per band and security findings (open network, missing PMF, WPS exposed, possible evil twin by duplicate SSID).
- Redesigned audit report: full-page cover with embedded logo, table of
contents, running header/footer via
@pagemargin boxes (current section, page numbers), KPI and findings cards with severity colors — still paginated by Paged.js in the browser, printable to PDF. ScanSnapshot.warning: tells you when a capture has been running for a while without receiving a single frame — a card that accepts turning monitor mode on without actually delivering capture (common with built-in laptop Wi-Fi) now says so, instead of silently "listening".
Fixed
- Handshake capture never completed on real networks:
eapol.rsreadkey_info/replay_counter/key_data_lenas little-endian; those 802.1X fields are big-endian. Deauth worked, EAPOL frames were seen, butHandshakeTrackersilently discarded every one — 0 handshakes no matter how much traffic was generated. The project's own synthetic test frames made the same mistake symmetrically, so round-trip tests never caught it; verified live against a real AP after the fix. - Monitor mode fighting NetworkManager:
set_monitor()now releases the interface from NetworkManager before switching modes and returns it afterward — without this, NM reasserted its own connection within seconds and capture died with "is in managed mode". - Evil Twin left the system half-configured if the process died mid-run
(Ctrl+C,
kill -9, power loss): both interfaces stuckmanaged=noforever, Wi-Fi gone from the system panel. A state file plus a self-healing pass on every engine start now undoes this automatically;sabia uialso handles SIGINT gracefully. - Repeated deauth/disassoc frames were dropped as duplicates after the first send — the same Sequence Control was reused on every injection; now increments per frame.
- Network list reordered under the cursor during capture, as signal-based sorting reacted to every 1-2 dBm fluctuation; order is now stable (arrival order, signal rounded to 4 dBm buckets).
- "Force handshake" failed if capture had been stopped: it now resumes capture automatically and waits for the target to reappear with a known channel before starting the job, instead of locking onto whatever channel the scanner happened to be hopping through.
- Attacks tab layout left large empty gaps when two cards of very different heights shared a grid row; switched to a masonry-style column layout.
Changed
crack_reader/crack_maskparallelize across available cores and reuse the HMAC base per iteration instead of reconstructing it — roughly 640x faster in release builds versus the original debug/single-thread path.
[0.1.0] - 2026-10-23
First release: CLI, desktop app and shared core.
Added
sabia-core: Wi-Fi interface discovery, monitor mode and channel control (via netlink/iw), scanning of 2.4, 5 and 6 GHz, raw 802.11 frame capture via AF_PACKET (no libpcap), radiotap and management-frame parsing (beacon, probe, EAPOL), aggregation of APs and clients, capture of the 4-way handshake and PMKID, offline dictionary cracking (PBKDF2-HMAC-SHA1, MIC and PMKID) for WPA/WPA2-PSK,.pcapread and write, frame injection, a local hash-chained audit trail, and self-update from GitHub releases.sabia: CLI withiface(list/channels/monitor),scan,analyze,crack,deauth(with--yes),doctor,audit(verify/show),updateandui(local interface server).- Desktop app (Tauri) with the same interface served by
sabia ui, elevating to administrator automatically on startup — monitor mode and raw capture require root/admin. - Interface: interface sidebar, capture panel with an animated signal line, networks table with signal bars and color-coded security badges, an authorized-use notice, a one-click update button, Auto/Light/Dark themes and Portuguese and English language.
- CI with caches (
rust-cache, cached Tauri.deb) and a cross-platform release pipeline (CLI on 5 targets and desktop app viatauri-action).