
Harness di pentest guidato dall'IA con modalità black-box, white-box, grey-box, host/cloud e red-team LLM; convalida i risultati tramite voto incrociato tra modelli e ricevute degli strumenti.
Harness di penetration testing autonomo e multi-modello — Rust, solo CLI.
di Joas A Santos & Red Team Leaders
⭐ Se ti è utile, metti una stella al repo — aiuta molto.
📖 Nuovo qui? Leggi la Guida completa & Tutorial → — ogni modalità, flag, configurazione ed esempio spiegati.
🆕 Novità della v3.6.5 — Red-teaming LLM: jailbreak e prompt injection in molti scenari: +12 agenti AI (→ 30, 429 totali) che fanno red-team avversariale a un sistema AI reale come fanno gli strumenti in stile hackagent.dev — tecniche di jailbreak (AdvPrefix, PAIR, TAP, Crescendo, many-shot, persona/DAN, encoding/offuscamento, soppressione del rifiuto) e scenari di prompt injection (diretta, indiretta tramite output RAG/web/email/strumenti, goal hijacking, abuso di tool/chiamate di funzione, esfiltrazione del system prompt). Ogni agente esegue un ciclo attaccante→giudice-LLM — cattura il rifiuto di base, applica la tecnica su più varianti, giudica se la protezione è stata realmente aggirata — dimostrandolo con una ricevuta benigna e oscurata.
neurosploit aitest <ai-url>. Inoltre: registrazione self-service di account di test — analizza i moduli dell'app e crea un account benigno (curl o Playwright) per raggiungere la superficie autenticata, con un severo guardrail anti-flood (≤2 account), un credential vault (vault.json, segreti oscurati nel report), una sezione di pulizia "elimina questi account", finding etichettati autenticati / non autenticati, ed email usa-e-getta opt-in (/tempmail, mail.tm gratuito). Validatore human-in-the-loop: i finding incerti ora vengono contrassegnati comeneeds-review, non eliminati (viene scartato solo il rumore senza alcun supporto) così un essere umano prende la decisione finale. Report in Markdown + JSON oltre a PDF/HTML. Agenti più precisi su app SPA/REST moderne (una metodologia di caccia alle API di livello Juice-Shop) oltre a un RL più robusto per il reward shaping. Nuovi modelli: , , (Moonshot → 15 provider). Storico completo in .
NeuroSploit trasforma un URL, un repository sorgente, un'app in esecuzione o un host/IP in
un engagement di sicurezza autonomo. Un harness Rust (tokio) guida un pool di
LLM — tramite API key o abbonamento locale (Claude Code / Codex / Gemini /
Grok) — esegue la ricognizione del target, seleziona intelligentemente solo gli agenti che corrispondono alla
superficie scoperta, li esegue in parallelo, concatena i finding in un impatto
più profondo e valida ogni affermazione tramite voto cross-modello + grounding con
ricevute degli strumenti prima del report. Include 430 agenti markdown e una
Mission Control TUI.
may_assert è una regola matematica
anti-allucinazione (non dichiarare sfruttabilità mentre il belief è diffuso).file:riga nel sorgente analizzato — una
citazione del codice è la ricevuta) per le audit white-box SAST & skills,
e l'una o l'altra per il grey-box; le affermazioni senza grounding vengono
declassate.aws/gcloud/az). Collegati tramite creds.yaml: chiavi AWS, un JSON di
service account Google o un service principal Azure — vedi
.Questa è la distribuzione snella, solo Rust (
neurosploit-rs/+agents_md/). Il precedente motore Python e le GUI web vivono sul vecchio branchv3.4.0.
Linux / macOS (x64 & arm64):```bash curl -fsSL https://raw.githubusercontent.com/JoasASantos/NeuroSploit/main/setup.sh | bash
**Windows** (PowerShell, x64 & arm64):```powershell
irm https://raw.githubusercontent.com/JoasASantos/NeuroSploit/main/install.ps1 | iex
| Sistema operativo | x64 | arm64 |
|---|---|---|
| Linux (Kali consigliata) | ✅ | ✅ |
Rust puro + stdlib, quindi si compila nativamente ovunque sia disponibile una toolchain Rust stabile.
L'installer rileva automaticamente sistema operativo/architettura e installa Rust se mancante. Su Windows nativo
usa install.ps1; in WSL2 / Git Bash funziona anche il one-liner setup.sh.
L'installer installa automaticamente Rust se necessario, clona il repository in ~/.neurosploit,
compila il binario di release e collega neurosploit in ~/.local/bin. Eseguilo di nuovo
in qualsiasi momento per aggiornare. Personalizza con le variabili d'ambiente: NEUROSPLOIT_REF (branch/tag),
NEUROSPLOIT_DIR, PREFIX.
Preferisci compilare a mano?```bash git clone https://github.com/JoasASantos/NeuroSploit && cd NeuroSploit/neurosploit-rs cargo build --release # → target/release/neurosploit
## ⚡ Avvio rapido (60 secondi)```bash
# easiest path — just run it; the interactive session asks everything:
neurosploit
# or one-liner (subscription login, no API key needed):
neurosploit run http://testphp.vulnweb.com/ --subscription --model anthropic:claude-opus-4-8 -v
# white-box — review a source repository (SAST agents, file:line evidence):
git clone https://github.com/digininja/DVWA /tmp/DVWA
neurosploit whitebox /tmp/DVWA --subscription --model anthropic:claude-opus-4-8 -v
# grey-box — review the code AND exploit the running app together:
neurosploit greybox /tmp/DVWA --url http://localhost:8080/ --creds creds.yaml \
--subscription --model anthropic:claude-opus-4-8 --mcp -v
# host / infra — Linux / Windows / Active Directory (SSH/Win creds in creds.yaml):
neurosploit host 10.0.0.10 --creds creds.yaml --subscription --model anthropic:claude-opus-4-8 -v
# 🛰 Mission Control TUI — live panels (header/feed/findings/targets) + a composer
# you can type in WHILE the run streams (summary · pause · errors · notes):
neurosploit tui http://testphp.vulnweb.com/ --subscription --model anthropic:claude-opus-4-8 --mcp
Full step-by-step per ogni modalità (black/white/grey/host) è in TUTORIAL.md.
Niente login? Usa invece una API key — vedi Autenticazione.
Integra NeuroSploit nel tuo SDLC. Attiva/disattiva dalla REPL (/integrations) o dalla CLI
(neurosploit integrations enable github|gitlab|jira). I token non vengono mai salvati
— viene salvato solo il nome della variabile d'ambiente; il valore viene letto dal tuo ambiente.```bash
export GITHUB_TOKEN=ghp_... # PAT with repo scope (private repos)
neurosploit integrations enable github
neurosploit pr digininja/DVWA 42 --subscription --model anthropic:claude-opus-4-8 --comment
neurosploit watch myorg/private-app --branch main --subscription --model anthropic:claude-opus-4-8
export GITLAB_TOKEN=glpat-... ; neurosploit integrations enable gitlab neurosploit whitebox https://gitlab.com/myorg/private-svc --subscription --model anthropic:claude-opus-4-8
export JIRA_EMAIL=[email protected] JIRA_API_TOKEN=... # set base/project once: /integrations setup jira neurosploit whitebox https://github.com/myorg/app --jira --subscription --model anthropic:claude-opus-4-8
| Integrazione | Cosa ottieni | Variabili d'ambiente |
|-------------|--------------|----------|
| **GitHub** | clone privato · revisione + commento `pr` · branch `watch` | `GITHUB_TOKEN` |
| **GitLab** | clone privato per whitebox/greybox | `GITLAB_TOKEN` |
| **Jira** | una scheda per ogni finding (`--jira`) | `JIRA_EMAIL`, `JIRA_API_TOKEN` |
📖 Configurazione passo-passo per ogni strumento: **[TUTORIAL-INTEGRATION.md](https://github.com/joasasantos/neurosploit/blob/HEAD/TUTORIAL-INTEGRATION.md)**.
---
## ☁️ Credenziali cloud (AWS/GCP/Azure)
Aggiungi un blocco cloud a `creds.yaml` e l'harness esporta le giuste variabili d'ambiente così
gli agenti AWS/GCP/Azure possono utilizzare `aws` / `gcloud` / `az`. I segreti restano nel tuo
file/secret-manager; gli agenti eseguono **prima enumerazione in sola lettura, mai distruttiva**.```yaml
# --- AWS: static keys (or a named profile) ---
aws:
access_key_id: AKIA...
secret_access_key: ...
# session_token: ... # if using temporary creds
region: us-east-1
# profile: my-sso-profile # alternative to keys
# --- GCP: service-account JSON (path recommended; inline single-line also works) ---
gcp:
service_account_json: /path/to/sa.json
project: my-project-id
# --- Azure: service principal (recommended for automation) ---
azure:
tenant_id: ...
client_id: ...
client_secret: ...
subscription_id: ...
I don't see any content to translate. The input section is empty. Please provide the Markdown chunk you'd like me to translate.```bash
neurosploit host my-cloud-account --creds creds.yaml
--subscription --model anthropic:claude-opus-4-8 -v
Gli agenti coprono l'escalation dei privilegi IAM, l'esposizione dello storage (S3/GCS/Blob), compute e
rete, i segreti (Secrets Manager / Secret Manager / Key Vault),
l'abuso di service-account/SP e l'enumerazione delle identità (Entra ID). Best-practice
autenticazione: **AWS** access key o profilo; **GCP** un service-account JSON
(`GOOGLE_APPLICATION_CREDENTIALS`); **Azure** un service principal
(`az login --service-principal`).
---
## 👥 Identità multiple — test del controllo accessi (IDOR / BOLA / BFLA)
Fornisci a NeuroSploit due o più **ruoli nominati** in `creds.yaml` e si autenticherà
come ciascuno di essi e testerà l'accesso **cross-role** (un ruolo a bassi privilegi che raggiunge l'oggetto di un altro
utente o una funzione amministrativa è un finding):```yaml
admin:
jwt: eyJ... # per role: jwt | header (raw) | cookie | apikey | login+username+password
user:
apikey: abc123 # → X-Api-Key: abc123
victim:
cookie: "session=deadbeef"
No input content was provided for translation. Please supply the chunk text you want translated.```bash
neurosploit run https://app.example --creds creds.yaml
--subscription --model anthropic:claude-opus-4-8 -v
Ogni risultato è dimostrato con la coppia di richieste **autorizzata vs non autorizzata**, sotto
il guardrail di protezione dei dati (sola lettura, PII mascherate).
## 🏷️ Identificazione e attribuzione (anti-plagio)
Ogni richiesta è contrassegnata con un **User-Agent** identificativo (predefinito
`NeuroSploit/<ver> …`, modificabile con **`/ua`** o `NEUROSPLOIT_UA`) oltre a un
header `X-NeuroSploit-Scan`, e ogni risultato è **marcato** "Identified and
validated by NeuroSploit" — così la provenienza viaggia nel traffico, nel testo
del risultato, in `findings.json` e nel piè di pagina del report.
---
## Compilazione```bash
cd neurosploit-rs
cargo build --release # → target/release/neurosploit
Richiede un toolchain Rust (rustup). Consigliato: eseguire su Kali Linux (o sull'immagine Docker di Kali) così gli strumenti offensivi usati dagli agenti sono già presenti:```bash
docker run -it --rm kalilinux/kali-rolling
apt update && apt install -y curl nmap ffuf nodejs npm
Gli agenti degradano con garbo: se `rustscan` non è installato usano `nmap`; se non c'è nemmeno quello, eseguono sonde con `curl`. Se un browser Playwright MCP è disponibile, lo usano per le pagine pesanti in JavaScript, altrimenti ripiegano su `curl`.
---
## Utilizzo
Esegui **senza argomenti** per una procedura guidata interattiva:```bash
./target/release/neurosploit
Oppure usalo direttamente:```bash
./target/release/neurosploit run http://testphp.vulnweb.com/
--subscription --model anthropic:claude-opus-4-8 --mcp -v
./target/release/neurosploit run http://testphp.vulnweb.com/
--model anthropic:claude-opus-4-8 --model openai:gpt-5.1 --vote-n 3
git clone https://github.com/digininja/DVWA /tmp/DVWA
./target/release/neurosploit whitebox /tmp/DVWA
--subscription --model anthropic:claude-opus-4-8 -v
./target/release/neurosploit run http://testphp.vulnweb.com/ --offline
./target/release/neurosploit agents # library counts ./target/release/neurosploit models # providers & models ./target/release/neurosploit --help # full help with examples
### Opzioni (`run` / `whitebox`)
| Flag | Significato |
|------|-------------|
| `--model provider:model` | Ripetibile. Il primo = primario; gli altri fanno failover **e** formano la giuria di voto. |
| `--subscription` | Usa il login CLI locale (Claude/Codex/Gemini/Grok) invece di una chiave API. |
| `--mcp` | Abilita Playwright MCP (auto-provisioning tramite `npx`; i backend senza MCP usano strumenti integrati). |
| `--vote-n N` | Quanti modelli devono concordare che un finding sia reale (default 3 / 2 per whitebox). |
| `--max-agents N` | Limite massimo di agenti eseguiti (`0` = tutti quelli che corrispondono alla ricognizione). |
| `--offline` | Esegue l'intera pipeline senza chiamare alcun modello. |
| `-v, --verbose` | Registra ogni agente quando viene avviato, la ricognizione e i voti. |
### Autenticazione — esecuzione tramite chiave API *oppure* subscription
Puoi eseguire NeuroSploit in due modi. Sono indipendenti: scegli a ogni esecuzione.
#### 1) Tramite API (chiave API del provider)
Esporta la o le chiavi per i provider nel tuo pannello dei modelli, quindi esegui **senza**
`--subscription`. Funziona con qualsiasi provider compatibile con OpenAI.```bash
# pick one or more, depending on the models you select
export ANTHROPIC_API_KEY=sk-ant-... # anthropic:claude-*
export OPENAI_API_KEY=sk-... # openai:gpt-*
export GEMINI_API_KEY=AIza... # gemini:gemini-*
export XAI_API_KEY=xai-... # xai:grok-*
export NVIDIA_NIM_API_KEY=nvapi-... # nvidia_nim:*
export DEEPSEEK_API_KEY=... # deepseek:*
export MISTRAL_API_KEY=... # mistral:*
export DASHSCOPE_API_KEY=... # qwen:* (Alibaba DashScope)
export GROQ_API_KEY=... # groq:*
export TOGETHER_API_KEY=... # together:*
export MOONSHOT_API_KEY=... # moonshot:* (Kimi K3/K2)
export OPENROUTER_API_KEY=... # openrouter:*
# ollama needs no key (local)
# then run via API (note: NO --subscription)
./target/release/neurosploit run http://testphp.vulnweb.com/ \
--model anthropic:claude-opus-4-8 --vote-n 3 -v
# multi-provider voting panel via API (1st finds, the others adjudicate)
./target/release/neurosploit run http://testphp.vulnweb.com/ \
--model anthropic:claude-opus-4-8 --model openai:gpt-5.1 --model gemini:gemini-2.5-pro
Oppure inserisci le chiavi in un .env e caricalo (cp .env.example .env; modifica; set -a; . ./.env; set +a).
Provider → variabile d'ambiente → endpoint (tutti compatibili con OpenAI):
Esegui ./target/release/neurosploit models per l'elenco completo di provider/modelli.
--subscription gestisce il login della tua CLI agentica locale invece di una chiave API — installa e accedi prima a una delle CLI:
--subscription --model anthropic:claude-opus-4-8 --mcp -v
---
## Come funziona```
target ─▶ recon (curl/nmap/…) ─▶ INTELLIGENT agent selection (recon-aware)
─▶ parallel exploitation ─▶ cross-model validation vote
─▶ severity/score ─▶ report (HTML + Typst PDF) ─▶ RL reward update
Ogni esecuzione scrive una cartella autonoma runs/ns-<ts>-<target>/:
Un reward store per l'apprendimento per rinforzo (data/rl_state_rs.json) condiziona la selezione degli agenti nelle esecuzioni future.
agents_md/ (303)Ogni agente è un playbook markdown autonomo (metodologia ## User Prompt +
regole ## System Prompt rigide anti-falsi-positivi). Inserisci un nuovo .md nella
cartella corrispondente e l'harness lo rileva automaticamente.
Solo per test autorizzati. Gli agenti sono istruiti a rimanere nello scope, a non eseguire mai azioni distruttive/DoS e a richiedere una prova di sfruttamento. Sei responsabile di avere il permesso per qualsiasi target.
Joas A Santos & Red Team Leaders.
MIT.
| Modalità | Comando | Cosa fa |
|---|
| Black-box | neurosploit run <url> | ricognizione → selezione → exploit → voto → report |
| White-box | neurosploit whitebox <repo> | analisi sorgente/SAST (evidenza file:riga) |
| Grey-box | neurosploit greybox <repo> --url <app> | code review + exploit in tempo reale insieme |
| Host/Infra | neurosploit host <ip> --creds creds.yaml | test su Linux / Windows / AD e cloud (AWS/GCP/Azure) |
| AI / LLM red-team | neurosploit aitest <ai-url> | jailbreak e prompt injection + OWASP LLM Top 10 / MCP contro un agente AI reale |
| AI Skills / n8n | neurosploit skills <file|folder> | audit white-box delle definizioni di Skill/plugin e workflow n8n |
| Mission Control | neurosploit tui <url> | pannelli TUI live + composer durante l'esecuzione |
| Interattiva | neurosploit | sessione REPL persistente (riprende per progetto) |
.git/.env esposti, debug/actuator, credenziali di default, dashboard,
CORS), un CVE Hunter (nuclei mirato e intelligente), uno PoC Developer (scrive
script riproducibili nella cartella pocs/ dell'esecuzione) e test di
rate-limit — tutto sotto un severo guardrail di sicurezza dei dati/PII
(nessuna azione distruttiva o che modifichi lo stato; PII dimostrate con un campione
oscurato, mai scaricate)./proxy <url> (o /burp) instrada il traffico degli agenti
attraverso il tuo proxy di intercettazione locale, così puoi ispezionarlo e riprodurlo in Burp.summary, pause, …).<cwd>/.neurosploit/ conserva sessione, cronologia
delle esecuzioni e cronologia dei comandi; la REPL riprende alla riapertura. Nessun database richiesto.| macOS |
| ✅ |
| ✅ (Apple Silicon) |
| Windows | ✅ | ✅ |
--model prefix | Variabile d'ambiente | Base URL |
|---|
anthropic: | ANTHROPIC_API_KEY | api.anthropic.com |
openai: | OPENAI_API_KEY | api.openai.com |
gemini: | GEMINI_API_KEY | generativelanguage.googleapis.com |
xai: | XAI_API_KEY | api.x.ai |
nvidia_nim: | NVIDIA_NIM_API_KEY | integrate.api.nvidia.com |
deepseek: | DEEPSEEK_API_KEY | api.deepseek.com |
mistral: | MISTRAL_API_KEY | api.mistral.ai |
qwen: | DASHSCOPE_API_KEY | dashscope-intl.aliyuncs.com |
groq: | GROQ_API_KEY | api.groq.com |
together: | TOGETHER_API_KEY | api.together.xyz |
moonshot: | MOONSHOT_API_KEY | api.moonshot.ai |
openrouter: | OPENROUTER_API_KEY | openrouter.ai |
ollama: | (nessuna) | localhost:11434 |
--model prefix | CLI utilizzata | Login |
|---|
anthropic: | claude (Claude Code) | claude poi /login |
openai: | codex | codex login |
gemini: | gemini | gemini login |
xai: | grok | grok login |
| ./target/release/neurosploit run http://testphp.vulnweb.com/ \ |
| File | Contenuti |
|---|
status.json | running → complete con un riepilogo |
recon.json / recon.md | superficie d'attacco mappata |
exploitation.md | trascrizione grezza per agente |
findings.json / findings.md | risultati validati (riutilizzabili da altri strumenti/IA) |
report.html, report.typ, report.pdf | report finale (PDF tramite il motore Typst) |
| Categoria | Conteggio | Scopo |
|---|
vulns/ | 196 | Sfrutta una specifica classe di vulnerabilità |
recon/ | 12 | Raccolta informazioni / superficie d'attacco |
code/ | 78 | Revisione white-box del codice sorgente (SAST) |
meta/ | 17 | Orchestratore, validatore, valutatori, reporter, RL |