The verbose default User-Agent ("NeuroSploit/<ver> (authorized security
assessment; +https://...)") was getting blocked/fingerprinted by WAFs and
CDNs, causing false negatives and breaking scans. Shrink the default UA to a
plain `NeuroSploit/<ver>` token and move attribution to headers carried on
every request:
User-Agent: NeuroSploit/<ver>
Accept: */*
X-NeuroSploit-Scan: <ver>
New pipeline::default_scan_headers() is applied on every harness HTTP client
(probe.rs + the authz-matrix and subdomain-enum clients), so defenders still
see the scan via the header even after a browser-UA switch. The web console
shells the same binary and sets no UA override, so CLI and Web stay in sync on
the new default. Tests cover the plain UA and the attribution header.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
🧠 NeuroSploit v4.3.1
Autonomous, multi-model penetration-testing harness — Rust, CLI-first.
by Joas A Santos & Red Team Leaders
What is NeuroSploit?
NeuroSploit is an autonomous penetration-testing tool. You point it at a target; it does the security assessment on its own and hands you a report — recon, exploitation, chaining findings into real impact, and validation, with no human driving each step.
The key idea: the harness is the pentester, not the model. Instead of asking one LLM to "hack this", a Rust engine runs the methodology — it picks the right specialist agents for what it finds, runs them in parallel, re-sends every claim over the wire to confirm it's real, and has a second model check each finding before it's reported. The LLMs are the hands; the harness is the discipline that keeps them honest. That's why it finds more and invents less than running a model directly.
It's CLI-first (with a web console and a TUI), open source (MIT), and runs on your own API keys or a local subscription — nothing about your targets leaves your machine unless you send it.
Give NeuroSploit a URL, a source repo, a running app, or a host/IP. A Rust
harness (tokio) drives a pool of LLMs — via API key or local
subscription (Claude Code / Codex / Gemini / Grok) — and runs the whole
engagement for you:
recon ─▶ pick only the agents that fit the surface ─▶ exploit in parallel
─▶ wire-check every claim ─▶ cross-model vote ─▶ chain into deeper impact ─▶ report
It won't invent findings: every claim needs a receipt (raw tool output or a
file:line), is re-sent by the harness itself to confirm it reproduces, and
is adjudicated by a second model before it reaches the report.
⭐ Useful? Star the repo. 📖 Deep dive: TUTORIAL.md · changelog: RELEASE.md · honest comparison: BENCHMARK.md
Install
Linux / macOS (x64 & arm64):
curl -fsSL https://raw.githubusercontent.com/JoasASantos/NeuroSploit/main/setup.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/JoasASantos/NeuroSploit/main/install.ps1 | iex
The installer sets up Rust if missing, builds the release binary, and links
neurosploit onto your PATH. Build by hand instead:
git clone https://github.com/JoasASantos/NeuroSploit && cd NeuroSploit/neurosploit-rs
cargo build --release # → target/release/neurosploit
Quick start
# just run it — the interactive session asks everything, in plain language:
neurosploit
# black-box, subscription login (no API key):
neurosploit run http://testphp.vulnweb.com/ --subscription --model anthropic:claude-opus-4-8 -v
# white-box — review a source repo (file:line evidence):
neurosploit whitebox /path/to/repo --subscription --model anthropic:claude-opus-4-8 -v
# web console — a browser UI over the same CLI:
cd web && npm start # → http://localhost:4173
No subscription? Use an API key for any provider instead — see TUTORIAL.md.
Modes
| Mode | Command | What it does |
|---|---|---|
| Black-box | neurosploit run <url> |
recon → select → exploit → vote → report |
| White-box | neurosploit whitebox <repo> |
source / SAST review (file:line evidence) |
| Grey-box | neurosploit greybox <repo> --url <app> |
code review + live exploitation together |
| Host / Infra | neurosploit host <ip> --creds creds.yaml |
Linux / Windows / AD + cloud (AWS/GCP/Azure) |
| AI / LLM | neurosploit aitest <ai-url> |
jailbreaks, prompt injection, OWASP LLM Top 10 / MCP |
| Mobile / Binary | neurosploit mobile <app.apk|.ipa|bin> |
RE a local artifact (Ghidra / MobSF / Frida) |
| Container | neurosploit container <image:tag> |
OCI image scan + SBOM (trivy/grype/syft) |
| Mission Control | neurosploit tui <url> |
live TUI panels + a composer you type in mid-run |
What makes it different
- The harness is the pentester. Agent selection is recon-driven; findings chain (reduce a foothold to a primitive — exec / read / write / SSRF / identity / secret — then pivot), each stage proven and non-destructive.
- Wire-bound evidence — every reported exchange is re-sent through a scope-guarded replay engine and checked against recorded traffic. A claim the wire contradicts can't stand as confirmed.
- Attack knowledge graph (Neo4j optional) — the run is a typed graph of
hosts, services, findings, credentials and impact, spanning web and internal
network. It directs the next move during the run and is written to
graph/even without a database. - Deterministic validation — per-CWE validators judge the measured request/response bytes, not the model's prose. Grounding gate, POMDP belief and an anti-hallucination check demote anything the evidence doesn't support.
- Secrets never leak the report — credentials the agents observe become
$SECRET_nin every human-facing report; raw values stay in the run's vault for re-testing only. - 486 markdown agents across web, code (SAST), AI, infra/AD/cloud, chains and recon — each a self-contained playbook you can read, edit or add to.
- Run via API key or subscription, 19 providers, including local & CPU-only
(
ollama:/llamacpp:) with no data leaving the host.
Web console
cd web && npm start # → http://localhost:4173
A browser UI that drives the same CLI — no second engine. Launch and watch a run live, then per finding:
- Attack graph — host → service → finding → credential → impact, every edge marked confirmed / needs-validation / hypothesis, ordered by kill-chain stage.
- Wire evidence — the real request/response pairs behind a finding (baseline vs. attack, the identity pair, matrix probes, the oracle), each tagged with its wire provenance — the proof as bytes, not prose.
- Re-test one finding — re-run its proof through the replay engine; the dated history shows a finding drift to "gone" over time.
- Transcript viewer — any agent's run, split into navigable blocks; search spans every agent.
- Chains, dependency todolist, recorded traffic, deliverables, PDF export.
What a run leaves behind
Every run is a self-contained folder, runs/ns-<ts>-<target>/:
| File | Contents |
|---|---|
report.html · report.pdf · report.md |
the report (PDF via Typst), secrets redacted |
findings.json / findings.md |
validated findings (raw, for tools & re-testing) |
report.sarif |
SARIF 2.1.0 for CI code-scanning |
graph/ |
attack chains, dependency todolist, Cypher + JSON export |
recon.json · exploitation.md · traces/ |
surface, transcript, per-agent traces |
pocs/ · evidence/ |
runnable PoCs and proof screenshots |
Integrations
GitHub / GitLab PR review gate (neurosploit pr <repo> <n> --fail-on critical),
@neurosploit mention bot, one Jira card per finding, MCP server
(neurosploit mcp), compliance mapping (PCI-DSS / HIPAA / SOC 2 / GDPR). See
TUTORIAL.md.
Safety
For authorized testing only. Agents stay in scope, never run destructive / DoS actions, and require proof of exploitation. You are responsible for having permission for every target.
Credits & license
Joas A Santos & Red Team Leaders — MIT.
This is the slim, Rust-only distribution (
neurosploit-rs/+agents_md/). The older Python engine and web GUIs live on thev3.4.0branch.