
Test collaborativi di sicurezza delle applicazioni tra umani e agenti tramite CLI e MCP
<img width="400" height="160" alt="go-appsec/toolbox" src="https://assets.kitploit.com/production/public/readmes/12195/899658aaebd95d74c5a2eb8eff64d2234300b95d43084d8dd1153d2edb6a9107.png" /> [](https://github.com/go-appsec/toolbox/blob/main/LICENSE) [](https://github.com/go-appsec/toolbox/actions/workflows/tests-main.yml) [-Significant%20AI%2C%20fully%20reviewed-1f77b4)](https://github.com/vibesdk/vibe-scale/blob/main/scale/vibe-1.md#v2-u0-t0-score-10--significant-ai-fully-reviewed) **Strumenti di application security testing basati su MCP per il tuo coding agent.** Non uno scanner — un banco di lavoro collaborativo. Gli agent faticano con UI e API stateful; tu sei bravo in entrambe. Sectool ti permette di esplorare un'applicazione attraverso il suo proxy mentre un agent analizza e manipola lo stesso traffico autenticato che generi. Tu gestisci l'autenticazione e le interazioni con la UI, l'agent interroga i flussi, modifica le richieste, trova riflessioni, monitora interazioni out-of-band e tenta altre permutazioni. Combinare le vostre capacità rende più semplici le attività di routine, riduce la probabilità di trascurare indicatori nascosti e rende più approfonditi i test complessi. ## Per iniziare ### 1. Installa sectool ```bash go install github.com/go-appsec/toolbox/sectool@latest ``` **Non hai Go?** Scarica il binario per la tua piattaforma (Linux, macOS, Windows — amd64 e arm64) dalla [ultima release](https://github.com/go-appsec/toolbox/releases). ### 2. Avvia il server MCP (Model Context Protocol) ```bash sectool mcp ``` Questo avvia un server MCP sulla porta 9119 con un proxy HTTP integrato sulla porta 8080. ### 3. Configura il tuo browser Imposta le impostazioni del proxy del browser su `127.0.0.1:8080` (o sulla porta specificata con `--proxy-port`). Per l'intercettazione HTTPS, installa il certificato CA da `~/.sectool/ca.pem` (generato automaticamente al primo avvio). La maggior parte dei browser lo accetta tramite le proprie impostazioni dei certificati; su macOS puoi anche aggiungerlo al portachiavi di sistema. **Usi Burp?** Segui invece la [configurazione del proxy di Burp](https://portswigger.net/burp/documentation/desktop/external-browser-config), poi avvia sectool con `sectool mcp --burp`. ### 4. Connetti il tuo agent **Claude Code:** ```bash claude mcp add --transport http sectool http://127.0.0.1:9119/mcp ``` **Codex** (`~/.codex/config.toml`): ```toml [mcp_servers.sectool] url = "http://127.0.0.1:9119/mcp" ``` ### 5. Collabora Lavora con l'agent per costruire un piano di test ed eseguirlo insieme. L'agent può interrogare la cronologia del proxy, riprodurre richieste modificate, eseguire il crawling per endpoint e testare interazioni out-of-band mentre tu gestisci azioni basate su browser come l'autenticazione o l'interazione con la UI e la sua revisione. ## Opzioni del server ### Backend del proxy **Nativo:** Proxy integrato con wire-fidelity e supporto HTTP/1.1, HTTP/2 e WebSocket. Progettato per essere capace quanto Burp per il testing MITM. Un singolo binario fornisce il server MCP, il proxy e la CLI — completamente autonomo e utilizzabile in ambienti headless. **Burp (opzionale):** Se preferisci una GUI per rivedere le azioni dell'agent o hai già Burp in esecuzione, installa l'estensione MCP dal BApp Store e assicurati che il server MCP sia in esecuzione su `http://127.0.0.1:9876/`. | Opzione | Descrizione | |--------|-------------| | (predefinito) | Rilevamento automatico: prova prima Burp MCP, altrimenti usa il proxy nativo | | `--proxy-port 8080` | Forza il proxy nativo sulla porta specificata | | `--burp` | Forza Burp MCP (fallisce se non disponibile) | ### Opzioni di sessione #### Workflow Sectool determina automaticamente il workflow appropriato quando l'agent chiama lo strumento `workflow` all'inizio di una sessione. Puoi saltare questo passaggio e risparmiare token specificando il workflow in anticipo: ```bash sectool mcp # Default: agent selects task type via workflow tool sectool mcp --workflow explore # Pre-set exploration mode sectool mcp --workflow test-report # Pre-set validation mode sectool mcp --workflow none # No workflow instructions sectool mcp --workflow multi # Multiple agents share the server ``` | Modalità | Descrizione | |------|-------------| | (predefinita) | L'agent seleziona il tipo di attività chiamando lo strumento `workflow`, riceve istruzioni di collaborazione | | `explore` | Security testing esplorativo; tutti gli strumenti disponibili | | `test-report` | Validazione di uno specifico report di vulnerabilità; strumenti di crawling esclusi | | `none` | Nessuna istruzione di workflow, tutti gli strumenti disponibili immediatamente | | `multi` | Per quando più utenti o agent condividono il server; nasconde le funzionalità in cui un agent potrebbe confondere un altro | Le istruzioni di workflow guidano gli agent verso un testing collaborativo invece di cercare di fare tutto in autonomia o di accompagnarti attraverso un processo senza aggiungere valore. Se hai idee per migliorare la collaborazione degli agent, [apri una issue](https://github.com/go-appsec/toolbox/issues). #### Note Il flag `--notes` abilita gli strumenti `notes_save` e `notes_list` per salvare osservazioni collegate ai flussi. Disabilitato per impostazione predefinita per mantenere minimo l'uso del contesto nelle sessioni brevi. Abilitalo quando prevedi molteplici findings o compattazioni della conversazione. ### Trasporti MCP Il server espone due endpoint: - `/mcp` - Streamable HTTP (consigliato) - `/sse` - SSE (legacy, per client più vecchi) ## Esempio di utilizzo della CLI La CLI condivide lo stato con l'agent e fornisce un'interfaccia user-friendly per rivedere, riprodurre e scriptare. Tutti i comandi della CLI corrispondono a strumenti MCP, quindi l'agent condivide lo stesso stato. ```bash # Review what the proxy captured while you browsed sectool proxy summary sectool proxy list --host example.com sectool proxy cookies --name session_id # Crawl an app to discover endpoints and forms sectool crawl create --url https://example.com sectool crawl summary <session_id> # Replay a captured request with modifications sectool replay send --flow <flow_id> --set-header "X-Test: value" # Set up out-of-band interaction testing and check for callbacks sectool oast create sectool oast poll <oast_id> sectool oast get <event_id> # Compare two flows, detect reflections, inspect JWTs sectool diff <flow_a> <flow_b> --scope response sectool reflected <flow_id> sectool jwt <token> # Export a flow, edit it offline, and resend sectool proxy export <flow_id> # ... edit ./sectool-requests/<flow_id>/request.http ... sectool replay send --bundle <flow_id> ``` Usa `sectool <command> --help` per le opzioni dettagliate. ## Funzionalità principali - **Proxy wire-fidelity** - MITM HTTP/1.1 e HTTP/2 che preserva l'ordine degli header, il casing e le anomalie di protocollo - **Replay e mutazione** - Riscrivi il traffico live tramite regole match/replace o reinvia richieste catturate con modifiche attraverso un'API ottimizzata per gli agent - **Flow diffing** - Confronto strutturato e content-type-aware di due flussi (a livello di path JSON, testo unificato, dimensione binaria) per una rapida validazione dei report - **Analisi della superficie JS** - estrai endpoint, route e segreti da bundle JavaScript/HTML, poi espandi qualsiasi call site nelle sue richieste utilizzabili - **Rilevamento di riflessioni** - Trova valori dei parametri di richiesta riflessi nelle risposte attraverso molteplici varianti di encoding per far emergere punti di injection - **OAST** - Testing di interazioni out-of-band tramite Interactsh; crea domini, esegui il polling per callback DNS/HTTP/SMTP - **Redirect probing** - Le sessioni OAST possono restituire redirect 307 per rilevare se un target segue i redirect, utile per catene SSRF e bypass di validazione - **Crawling** - Scopri endpoint, form e struttura dell'applicazione; avvia dalla cronologia del proxy o da URL - **Supporto WebSocket** - Intercettazione a livello di frame, proxying e match/replace per messaggi WebSocket - **Modalità workflow** - Guida dell'agent specifica per attività (explore, test-report) per migliorare la qualità della collaborazione e ridurre lo spreco di token - **Utility di encoding** - Encoding/decoding URL, Base64, HTML, hashing (MD5/SHA/HMAC), ispezione JWT - **Integrazione Burp Suite** - Frontend GUI opzionale tramite l'estensione Burp MCP; oppure esecuzione completamente headless con il proxy nativo ## Scansione automatizzata Abbina sectool a [sidenuclei](https://github.com/go-appsec/toolbox-sidenuclei), un sidecar first-party che esegue [Nuclei](https://github.com/projectdiscovery/nuclei) contro ogni endpoint che tocchi. Avvia sectool con `--notes`, collega `sidenuclei` alla tua sessione, e scansiona ogni endpoint usando la richiesta catturata reale, così i test vengono eseguiti con i tuoi parametri, cookie e sessione autenticata effettivi. I findings arrivano come note `finding` collegate al flusso che le ha attivate, offrendoti copertura extra mentre tu e il tuo agent vi concentrate sul testing manuale. ## Supporto per protocolli personalizzati Oltre a HTTP e WebSocket, sectool supporta protocolli personalizzati e binari (generalmente request / response) attraverso un modello di adattatore sidecar. Scrivi un adattatore per connetterti e comunicare usando la nostra API sidecar. Il traffico del sidecar arriva nella stessa timeline unificata dei flussi, quindi `flow_get`, `diff_flow`, `replay_send` e altri strumenti funzionano senza modifiche. Gli adattatori possono essere scritti in qualsiasi linguaggio tramite l'API JSON-RPC 2.0, oppure in Go con il client SDK che gestisce registrazione, caching delle regole ed emissione dei flussi. Il [sidecar SDK & protocol](https://github.com/go-appsec/toolbox/blob/main/sidecar/README.md) documenta entrambi.