-
Sabiá 1.0.0
StableRelease / Cria a release (push) Canceled after 0sRelease / CLI (linux-aarch64) (push) Canceled after 0sRelease / CLI (linux-x86_64) (push) Canceled after 0sRelease / CLI (macos-aarch64) (push) Canceled after 0sRelease / CLI (macos-x86_64) (push) Canceled after 0sRelease / CLI (windows-x86_64) (push) Canceled after 0sRelease / App desktop (linux-x86_64) (push) Canceled after 0sRelease / App desktop (macos-aarch64) (push) Canceled after 0sRelease / App desktop (macos-x86_64) (push) Canceled after 0sRelease / App desktop (windows-x86_64) (push) Canceled after 0sRelease / Publica a release (push) Canceled after 0sreleased this
2026-10-30 15:38:25 +00:00 | 18 commits to main since this releaseFirst 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 viahostapd-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.rsread
key_info/replay_counter/key_data_lenas little-endian; those
802.1X fields are big-endian. Deauth worked, EAPOL frames were seen, but
HandshakeTrackersilently 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=no
forever, 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.
Downloads
- Cracking: default dictionary replaced by a 9.7M-password list (rockyou +