Hi all,
I've been building a set of security scanning tools in Rust, and the code is public under Apache-2.0:
There are five engines, each its own binary:
- voyage finds subdomains, from passive sources and wordlist brute-forcing
- doorward scans hosts and ports, with service detection
- ambulo fuzzes paths and parameters to discover content
- toolmark fingerprints services and flags CVE leads by version
- plessor runs nuclei-compatible templates and checks each finding again before it reports it
The parts that might interest people here:
- It's one workspace, and the engines share crates:
tui(the ratatui dashboard they all draw),finding(one type every engine reports in),transport(the HTTP client), andscope(what a run may touch, plus a guard that refuses everything else). - Each engine runs as a daemon on loopback, and the command you type is a client of it. Scan state lives in Postgres through sqlx rather than in the process, which is how a stopped scan picks up where it left off.
- In a terminal you get the dashboard. Piped, every engine writes newline-delimited JSON, one event per line, so it chains with jq.
cfx-scriptembeds Python with PyO3, which made macOS the awkward platform: the python3 that comes with Xcode is 3.9, and the build needs 3.10 or later.- It runs on Linux, macOS and Windows. The Windows port was mostly service management and paths. The engines compiled almost as they were.
A source build needs Docker for the Postgres container, then cargo build --release on Rust 1.88. The README has the steps.
To be upfront about the model: the source build and the binaries on the Releases page are fully open. The installer ships a build that adds a few closed parts, and the README lists them.
If you're looking for a small first contribution, four issues are labelled "good first issue". They range from a hostname-matching bug in two passive sources to shell completions with clap_complete.
I'd like feedback on the workspace layout and the daemon/client split, or on anything that looks off.
1 post - 1 participant