Files
NeuroSploit/web/README.md
T
CyberSecurityUPandClaude Opus 5.5 79685cee49 feat: graph memory in the test loop, wire-bound evidence, authz matrix, report redaction
Harness
- graph_memory: typed attack graph (web + internal network) with Neo4j sync
  over the HTTP API. Graph checkpoints run after recon, validation, each
  chaining round and at the end. They direct agent selection and feed the
  live chains, next moves and dependency todolist into every prompt.
- wire: every reported exchange is checked against recorded flows and
  re-sent through the scope-guarded replay engine. A contradiction means the
  finding cannot stand as confirmed.
- traces: each agent's transcript is shared with the others as a fenced,
  structured digest (endpoints, params, error signatures, versions).
- authz_matrix: role x route authorization matrix validator, with
  identity tiers in creds.
- deliverables: evidence custody, exploit-as-test (honest oracles only),
  detection content and personas, with no credential leakage.
- redact: credentials quoted by agents become $SECRET_n in every
  human-facing report (md/html/json/sarif/typ, findings.md). findings.json
  and the vault keep raw values for re-testing.
- compliance: GDPR replaces LGPD.
- New agents: authorization_matrix, session_lifecycle, api_token_structure,
  exposed_datastore, postgres_superuser_rce, meta/graph_reasoning.

Web console
- New tabs, mounted in both the detail and live views: Attack graph
  (replaces Generative Attack Path Chaining), Chains, Dependencies,
  Traffic, Traces, Deliverables.
- Wire/Status columns, KPIs, CSV export.
- Graph recompute / Neo4j push / Re-test actions, all through the CLI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015v24fuCWxkanS31HDmaDB6
2026-10-11 19:20:29 -03:00

56 lines
3.3 KiB
Markdown

# NeuroSploit v4.2.0 — web console
A browser UI for the `neurosploit` CLI harness: a 5-step engagement wizard (Asset → Scope & Auth
→ Leads → Model & Run → Review), a live structured findings view with a generative attack-path
graph, run history, an Auth & Keys menu, and a real terminal — all driven by spawning the actual
CLI binary, never a reimplementation of harness logic.
- **Asset** — pick black/white/grey-box, host/infra, or AI/LLM, set the target or repo.
- **Scope & Auth** — objective, focus, out-of-scope, and a link into the Auth & Keys menu.
- **Leads** — the categorized agent picker (435 agents auto-classified) + custom leads.
- **Model & Run** — pick a provider/model from the live catalog, API-key vs. subscription auth
mode, votes/chain-depth/recon intensity.
- **Review** — confirm the plan, then `Start Exploitation` spawns the real CLI.
- **Auth & Keys** (one menu, 🔑 in the sidebar) — target auth header + named roles for
IDOR/BOLA/BFLA testing, per-provider API keys (kept in server memory only, never on disk), and
an explicit `creds.yaml` path override.
- **Attack graph** — the run's graph memory (web + internal network): host → service → finding →
credential → impact, every edge marked confirmed / needs validation / hypothesis, findings ordered
by kill-chain stage. Refreshed live at each graph checkpoint; click a finding to open it. Chains
and Dependencies list the same paths as text and as the step-by-step todolist.
- **Terminal dock (xterm.js)** — `❭_` in the sidebar, the topbar button, or `Ctrl+\`` opens a
docked terminal running a real `neurosploit` REPL session. Its stdout is streamed **unstripped**,
so the harness's own colour and box-drawn panels render as they do in a local shell. Line
editing (echo, ←/→, history, `Tab` slash-command completion, `Ctrl+C`/`L`/`U`/`A`/`E`) is local
because the child is spawned over a pipe, not a PTY, and therefore never echoes. The target
picker in its header switches between a standalone session and the **running engagement**, so
mid-run instructions go to the same process that is doing the testing.
- **Real REPL underneath run/whitebox/greybox** — the wizard scripts an actual interactive
`neurosploit` session instead of a one-shot CLI call, so it keeps reading stdin while the
engagement streams. The Activity log tab grows a `❭` prompt box to send `/status`, `/stop`,
`/continue`, or a plain-language instruction mid-run. `host`/`aitest`/`skills` stay one-shot
(their onboarding scope picker can't be scripted over piped stdin).
```bash
cd neurosploit-rs && cargo build --release # build the CLI once
node web/server.js # → http://localhost:4173
```
Zero npm dependencies (Node ≥18, built-ins only: `http`, `child_process`, `events`, `fs`).
API reference: [`API.md`](./API.md).
## Layout
```
web/
├── server.js backend: static server + agents_md/runs reader + CLI process manager
├── public/
│ ├── index.html SPA shell
│ ├── style.css lead-board / live-run / terminal-dock styling
│ ├── app.js client logic (fetch + EventSource + terminal, no framework)
│ └── vendor/ xterm.js + fit addon (vendored; nothing is fetched at runtime)
├── API.md
└── package.json
```