mirror of
https://github.com/CyberSecurityUP/NeuroSploit.git
synced 2026-08-28 12:20:27 +02:00
docs: refresh README for v4.0.0 - correct stale counts, expand web console section
- Agent library table was stale (196/12/78/17 = 303 total, missing the infra/chains/ai categories entirely). Corrected to the real counts (245/78/30/34/23/13/12 = 435), matching the "MD Agents-435" badge and neurosploit agents output. - Provider badge said 16; the harness actually ships 18 (litellm and azure were missing from the README's provider table and the API-key export block). Added both. - Web console section was a 3-line stub written before most of the feature was built. Expanded to cover the 5-step wizard, the lead board's bulk select/category toggles, custom-lead-generates-a-real-agent, the live run view's Generative Attack Path Chaining graph and finding/PoC detail, the Auth & Keys menu, and F5 persistence - with links to web/API.md and web/README.md.
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
<img src="https://img.shields.io/badge/Harness-Rust%20%7C%20tokio-e6b673?style=flat-square">
|
<img src="https://img.shields.io/badge/Harness-Rust%20%7C%20tokio-e6b673?style=flat-square">
|
||||||
<img src="https://img.shields.io/badge/License-MIT-green?style=flat-square">
|
<img src="https://img.shields.io/badge/License-MIT-green?style=flat-square">
|
||||||
<img src="https://img.shields.io/badge/MD%20Agents-435-red?style=flat-square">
|
<img src="https://img.shields.io/badge/MD%20Agents-435-red?style=flat-square">
|
||||||
<img src="https://img.shields.io/badge/Models-16%20providers-success?style=flat-square">
|
<img src="https://img.shields.io/badge/Models-18%20providers-success?style=flat-square">
|
||||||
<img src="https://img.shields.io/badge/Modes-Black%20%7C%20White%20%7C%20Grey%20%7C%20Host%20%7C%20AI-9cf?style=flat-square">
|
<img src="https://img.shields.io/badge/Modes-Black%20%7C%20White%20%7C%20Grey%20%7C%20Host%20%7C%20AI-9cf?style=flat-square">
|
||||||
<img src="https://img.shields.io/badge/Auth-API%20key%20%7C%20Subscription-orange?style=flat-square">
|
<img src="https://img.shields.io/badge/Auth-API%20key%20%7C%20Subscription-orange?style=flat-square">
|
||||||
</p>
|
</p>
|
||||||
@@ -216,16 +216,41 @@ No login? Use an **API key** instead — see [Authentication](#authentication--r
|
|||||||
|
|
||||||
## 🖥️ Web console (NEW in v4.0.0)
|
## 🖥️ Web console (NEW in v4.0.0)
|
||||||
|
|
||||||
A browser UI for the same harness: a categorized lead board (toggle agents by category, add
|
A browser UI for the same harness — every action spawns the real compiled CLI and parses its
|
||||||
custom leads, `Start Exploitation`), a live structured findings view, run history, and a real
|
output; nothing about the harness logic is reimplemented in the browser.
|
||||||
REPL — all driven by spawning the compiled CLI, never a reimplementation of it.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd neurosploit-rs && cargo build --release # once
|
cd neurosploit-rs && cargo build --release # once
|
||||||
node web/server.js # → http://localhost:4173
|
node web/server.js # → http://localhost:4173
|
||||||
```
|
```
|
||||||
|
|
||||||
Zero npm dependencies. Full API reference: **[web/API.md](web/API.md)**.
|
Zero npm dependencies (Node built-ins only).
|
||||||
|
|
||||||
|
- **5-step engagement wizard** — Asset (mode + target/repo) → Scope & Auth (objective, focus,
|
||||||
|
out-of-scope) → Leads (the 435-agent board below) → Model & Run (provider/model picker,
|
||||||
|
API-key vs. subscription toggle, votes/chain-depth/recon) → Review. Every engagement is named
|
||||||
|
up front, so runs are identifiable in history instead of by raw target string.
|
||||||
|
- **Lead board** — all 435 agents auto-categorized (Business Logic, Broken Access Control,
|
||||||
|
Injection, LLM Application, Auth & Session, SSRF & Network, Cloud & Infra, …). Toggle a single
|
||||||
|
lead, a whole category (indeterminate when partially selected), or use **Select all / Clear
|
||||||
|
all** — respects the active search filter. Leave everything off to let the harness's own
|
||||||
|
recon-driven selection choose.
|
||||||
|
- **Custom lead → real agent** — "+ Custom lead" doesn't just add a text hint: it calls the
|
||||||
|
`claude` CLI (Opus, your Anthropic subscription) to generate an actual specialist-agent
|
||||||
|
markdown file into `agents_md/vulns/`, in the same format every built-in agent uses, pinnable
|
||||||
|
immediately. Falls back to a plain focus-text hint if Claude isn't available.
|
||||||
|
- **Live run view** — phase/progress streamed over SSE from the CLI's own stdout, a findings
|
||||||
|
table, and **Generative Attack Path Chaining**: a node/edge graph (root = target, one node per
|
||||||
|
confirmed finding, positioned by kill-chain stage, edges from `chains_from` when the harness
|
||||||
|
set one) instead of a flat list — click any node or row for the full finding detail, including
|
||||||
|
any PoC script the exploiting agent wrote to `pocs/`.
|
||||||
|
- **Auth & Keys** (one menu) — target auth header + named roles for IDOR/BOLA/BFLA testing
|
||||||
|
(materializes an ephemeral `creds.yaml` for the run), and per-provider API keys held in the
|
||||||
|
server process's memory only — never written to disk.
|
||||||
|
- Survives a page refresh: an in-progress run reattaches to the same live stream instead of
|
||||||
|
resetting to the wizard.
|
||||||
|
|
||||||
|
Full API reference: **[web/API.md](web/API.md)** · quick start: **[web/README.md](web/README.md)**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -450,6 +475,8 @@ export MOONSHOT_API_KEY=... # moonshot:* (Kimi K3/K2)
|
|||||||
export OPENROUTER_API_KEY=... # openrouter:*
|
export OPENROUTER_API_KEY=... # openrouter:*
|
||||||
export OPENCODE_API_KEY=... # opencode:* (OpenCode Zen gateway)
|
export OPENCODE_API_KEY=... # opencode:* (OpenCode Zen gateway)
|
||||||
export NOUS_API_KEY=... # nous:* (Nous Portal — Hermes)
|
export NOUS_API_KEY=... # nous:* (Nous Portal — Hermes)
|
||||||
|
export LITELLM_API_KEY=... # litellm:* (your LiteLLM proxy)
|
||||||
|
export AZURE_OPENAI_API_KEY=... # azure:<deployment> (also set AZURE_OPENAI_ENDPOINT)
|
||||||
# ollama / llamacpp need no key (local)
|
# ollama / llamacpp need no key (local)
|
||||||
|
|
||||||
# then run via API (note: NO --subscription)
|
# then run via API (note: NO --subscription)
|
||||||
@@ -481,6 +508,8 @@ Or put the keys in a `.env` and source it (`cp .env.example .env`; edit; `set -a
|
|||||||
| `openrouter:` | `OPENROUTER_API_KEY` | openrouter.ai |
|
| `openrouter:` | `OPENROUTER_API_KEY` | openrouter.ai |
|
||||||
| `opencode:` | `OPENCODE_API_KEY` | opencode.ai/zen (OpenCode Zen gateway) |
|
| `opencode:` | `OPENCODE_API_KEY` | opencode.ai/zen (OpenCode Zen gateway) |
|
||||||
| `nous:` | `NOUS_API_KEY` | inference-api.nousresearch.com (Hermes 4) |
|
| `nous:` | `NOUS_API_KEY` | inference-api.nousresearch.com (Hermes 4) |
|
||||||
|
| `litellm:` | `LITELLM_API_KEY` | your LiteLLM proxy (`LITELLM_BASE_URL`, default localhost:4000) |
|
||||||
|
| `azure:` | `AZURE_OPENAI_API_KEY` | your Azure OpenAI resource (`AZURE_OPENAI_ENDPOINT`) |
|
||||||
| `ollama:` | _(none)_ | localhost:11434 |
|
| `ollama:` | _(none)_ | localhost:11434 |
|
||||||
| `llamacpp:` | _(none)_ | localhost:8080 |
|
| `llamacpp:` | _(none)_ | localhost:8080 |
|
||||||
|
|
||||||
@@ -538,18 +567,22 @@ Every run writes a self-contained folder `runs/ns-<ts>-<target>/`:
|
|||||||
A reinforcement-learning reward store (`data/rl_state_rs.json`) biases agent
|
A reinforcement-learning reward store (`data/rl_state_rs.json`) biases agent
|
||||||
selection on future runs.
|
selection on future runs.
|
||||||
|
|
||||||
## Agent library — `agents_md/` (303)
|
## Agent library — `agents_md/` (435)
|
||||||
|
|
||||||
| Category | Count | Purpose |
|
| Category | Count | Purpose |
|
||||||
|----------|-------|---------|
|
|----------|-------|---------|
|
||||||
| `vulns/` | 196 | Exploit a specific vulnerability class |
|
| `vulns/` | 245 | Exploit a specific vulnerability class (web/API) |
|
||||||
| `recon/` | 12 | Information gathering / attack surface |
|
|
||||||
| `code/` | 78 | White-box source-code (SAST) review |
|
| `code/` | 78 | White-box source-code (SAST) review |
|
||||||
| `meta/` | 17 | Orchestrator, validator, scorers, reporter, RL |
|
| `ai/` | 30 | AI/LLM red-teaming, jailbreaks, MCP threats |
|
||||||
|
| `infra/` | 34 | Host/cloud: Linux, Windows, AD, AWS/GCP/Azure |
|
||||||
|
| `meta/` | 23 | Orchestrator, validator, scorers, reporter, RL |
|
||||||
|
| `chains/` | 13 | Multi-stage attack chains (SQLi→RCE→LPE, SSRF→cloud, …) |
|
||||||
|
| `recon/` | 12 | Information gathering / attack surface |
|
||||||
|
|
||||||
Each agent is a self-contained markdown playbook (`## User Prompt` methodology +
|
Each agent is a self-contained markdown playbook (`## User Prompt` methodology +
|
||||||
`## System Prompt` strict anti-false-positive rules). Drop a new `.md` into the
|
`## System Prompt` strict anti-false-positive rules). Drop a new `.md` into the
|
||||||
matching folder and the harness picks it up.
|
matching folder — or generate one from the web console's "+ Custom lead" (see above) — and the
|
||||||
|
harness picks it up; `neurosploit agents` shows live counts.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user