NProbe-RS is a Rust-native, explainable network reconnaissance tool focused on learning, safety, and actionable insights.
It reimplements proven network scanning concepts with a modern, safe architecture while helping users understand why results matter — not just what was found.
Version: v4.5 "Rusty Nail"
Edition: 2026 Edition
Author: voltsparx
Contact: voltsparx@gmail.com
NProbe-RS is designed to make network reconnaissance understandable and safe by default.
Instead of only reporting open ports, it explains findings, highlights risks, and provides defensive context — making it ideal for:
- 🎓 Students & learners
- 🛡️ Blue teams & defenders
- 🧪 Lab environments
- 🧑💻 Internal audits
- 🔬 Security research
- 🔎 Explainable scan results with defensive guidance
- 🎯 Nmap-style command flow (
nprobe-rs <target>) and short aliases - ⚡ Rust async engine for high-performance scanning
- 🧵 Thread-pool DNS resolution
- 🧠 Parallel analysis using Rayon
- 🧪 Lua hooks for custom probes & automation
- 📄 Multi-format output: CLI, TXT, JSON, HTML, CSV
- 🚦 Cleaner terminal output (focused, less noisy by default)
- 🛡️ Safety controls to prevent unintended scanning
- 🔐 Auto privilege elevation for root-required scan modes (sudo/su/doas where available)
- 📱 Termux/mobile-friendly presets
- ⚙️ Persistent configuration & last-run metadata
phantom: device-check first touch that decides safe rate, delay, and follow-up depthkis: cautious identity hints using low-impact timing observationsar: response-shape observation that studies how the target reacts under low pressure
Overview and detailed docs:
- Scan Types Overview
- Phantom Scan
- KIS Scan
- SAR Scan
- TBNS Family
- Service Detection Intelligence
- Service Knowledge Architecture
NProbe-RS promotes responsible usage through built-in safeguards:
--lab-mode→ restricts scans to safe lab environments--allow-external→ explicitly allow external targets--strict-safety→ enforces conservative scan behavior
cargo run -- 127.0.0.1 --explain
# after install:
nprobe-rs 127.0.0.1 --top-ports 100nprobe-rs scanme.nmap.org --top-ports 100 --allow-external
nprobe-rs 192.168.1.1 --ports 22,80,443 --profile stealth --explain --lab-mode
nprobe-rs 10.0.0.5 --udp --lua-script scripts/example.lua --lab-mode
nprobe-rs 127.0.0.1 --top-ports 20 --reverse-dns
nprobe-rs 192.168.1.10 --profile aggressive --allow-external
nprobe-rs 192.168.1.10 --aggressive-root --privileged-probes --allow-external
nprobe-rs 192.168.1.10 --root-only --allow-externalnprobe-rs 192.168.1.20 --output internal-audit --file-type json
nprobe-rs 192.168.1.20 --output internal-audit --location ./reports --file-type html
nprobe-rs 192.168.1.20 --location ./reports --file-type csvnprobe-rs 192.168.1.10 -a -o termux-scan -f json
nprobe-rs 192.168.1.10 -A -a -w 700 -U
nprobe-rs 192.168.1.10 -sU -p 53,161
nprobe-rs 192.168.1.10 -T4 -p-nprobe-rs --flag-help --scan
nprobe-rs --flag-help -sU
nprobe-rs --explain --scan # legacy alias for flag docs modePort 22/tcp open — SSH
Risk: Medium
Why: Remote access service exposed.
Guidance: Use key-based authentication and disable password login.
- Architecture study and reimplementation inspired by Nmap's design principles
- Async scanning engine with adaptive concurrency
- Multi-stage intelligence pipeline: raw discovery -> async probe narrowing -> targeted fingerprint matching
- Service and port mapping with built-in defaults and optional local data loading
- Fingerprint and probe parsing where supported
- Modular design for extensibility and scripting
temp/is ignored in git so local study artifacts are not committed.- Service names and top-port ranking load from
temp/nmap/nmap-serviceswhen present. - Fingerprint rules and probe payloads parse from
temp/nmap/nmap-service-probeswhere supported. - On startup, NProbe-RS creates
~/.nprobe-rs-config/config.inifor persistent settings. - By default, output is printed to console unless
--output,--location, or--file-typeis provided. nprobe-rs scan <target>is still supported for compatibility, butnprobe-rs <target>is preferred.- Timeout short flag is
-w(--timeout-ms), while Nmap-style timing shortcuts use-T0..-T5. - Root-required scan modes auto-attempt elevation on Unix-like systems when possible.
- Linux zero-copy path can be enabled with
cargo build --release --features afxdp(AF_XDP scaffold currently falls back automatically when unavailable).
--root-onlyenables privileged scanning with safer runtime limits- Defaults to top 200 ports when no scope is provided
- For privileged probes, run inside a root shell (
su/tsu)
Cross-platform install scripts are provided in building-scripts/:
./building-scripts/install.sh # prompt mode
./building-scripts/install.sh deps
./building-scripts/install.sh install --install-deps
./building-scripts/install.sh install
./building-scripts/install.sh update
./building-scripts/install.sh test
./building-scripts/install.sh uninstall./building-scripts/install-termux.sh # prompt mode
./building-scripts/install-termux.sh install.\building-scripts\install.ps1 # prompt mode
.\building-scripts\install.ps1 deps
.\building-scripts\install.ps1 install -InstallDeps
.\building-scripts\install.ps1 install
.\building-scripts\install.ps1 update
.\building-scripts\install.ps1 test
.\building-scripts\install.ps1 uninstallbuilding-scripts\install.bat
building-scripts\install.bat installInstalled command name:
nprobe-rs(Linux/macOS/Termux)nprobe-rs.exe(Windows)
NProbe-RS is intended for:
- authorized security testing
- lab environments
- educational use
- defensive security research
Always obtain proper authorization before scanning networks you do not own or manage.
- 🧬 Service/version enrichment and better fingerprint confidence reporting
- 🗺️ Network topology visualization
- 🔄 Baseline comparison & drift detection
- 🧠 Adaptive scan intelligence
- 🚀 AF_XDP zero-copy packet backend (Linux, kernel-bypass path)
- 📦 Prebuilt binaries for major platforms
Contributions, ideas, and feedback are welcome!
If you’d like to improve NProbe-RS, feel free to open an issue or submit a pull request.
NProbe-RS draws inspiration from the design principles of Nmap while reimplementing core ideas with a modern Rust architecture focused on safety, clarity, and extensibility.
SPDX-License-Identifier