
Kollaborative Anwendungssicherheitstests zwischen Menschen und Agenten über CLI und 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) **MCP-basierte Werkzeuge für Anwendungssicherheitstests für deinen Coding-Agenten.** Kein Scanner — eine kollaborative Werkbank. Agenten haben Schwierigkeiten mit UI und zustandsbehafteten APIs; du bist in beidem gut. Sectool ermöglicht es dir, eine Anwendung durch ihren Proxy zu erkunden, während ein Agent denselben authentifizierten Datenverkehr analysiert und manipuliert, den du erzeugst. Du kümmerst dich um Authentifizierung und UI-Interaktionen, der Agent fragt Flows ab, mutiert Requests, findet Reflections, überwacht Out-of-Band-Interaktionen und versucht andere Permutationen. Die Kombination eurer Fähigkeiten macht Routineaufgaben einfacher, verborgene Indikatoren weniger wahrscheinlich übersehen und komplexe Tests gründlicher. ## Erste Schritte ### 1. Sectool installieren ```bash go install github.com/go-appsec/toolbox/sectool@latest ``` **Kein Go?** Lade das Binary für deine Plattform (Linux, macOS, Windows — amd64 und arm64) aus dem [neuesten Release](https://github.com/go-appsec/toolbox/releases) herunter. ### 2. Den MCP-Server (Model Context Protocol) starten ```bash sectool mcp ``` Dies startet einen MCP-Server auf Port 9119 mit einem integrierten HTTP-Proxy auf Port 8080. ### 3. Deinen Browser konfigurieren Richte die Proxy-Einstellungen deines Browsers auf `127.0.0.1:8080` (oder den mit `--proxy-port` angegebenen Port). Für HTTPS-Interception installiere das CA-Zertifikat aus `~/.sectool/ca.pem` (wird beim ersten Start automatisch generiert). Die meisten Browser akzeptieren es über ihre Zertifikatseinstellungen; unter macOS kannst du es auch zum Systemschlüsselbund hinzufügen. **Verwendest du Burp?** Folge stattdessen der [Proxy-Konfiguration von Burp](https://portswigger.net/burp/documentation/desktop/external-browser-config) und starte sectool dann mit `sectool mcp --burp`. ### 4. Deinen Agenten verbinden **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. Zusammenarbeiten Arbeite mit dem Agenten zusammen, um einen Testplan zu erstellen und ihn gemeinsam auszuführen. Der Agent kann den Proxy-Verlauf abfragen, modifizierte Requests erneut senden, nach Endpunkten crawlen und auf Out-of-Band-Interaktionen testen, während du browserbasierte Aktionen wie Authentifizierung oder die Interaktion mit und Überprüfung der UI übernimmst. ## Server-Optionen ### Proxy-Backends **Native:** Integrierter Proxy mit Wire-Fidelity und Unterstützung für HTTP/1.1, HTTP/2 und WebSocket. Entwickelt, um für MITM-Tests so leistungsfähig wie Burp zu sein. Ein einziges Binary stellt den MCP-Server, den Proxy und die CLI bereit — vollständig eigenständig und in Headless-Umgebungen nutzbar. **Burp (optional):** Wenn du eine GUI bevorzugst, um die Aktionen des Agenten zu überprüfen, oder bereits Burp laufen hast, installiere die MCP-Erweiterung aus dem BApp Store und stelle sicher, dass der MCP-Server auf `http://127.0.0.1:9876/` läuft. | Option | Beschreibung | |--------|-------------| | (Standard) | Automatische Erkennung: versucht zuerst Burp MCP, fällt auf den nativen Proxy zurück | | `--proxy-port 8080` | Erzwingt den nativen Proxy auf dem angegebenen Port | | `--burp` | Erzwingt Burp MCP (schlägt fehl, wenn nicht verfügbar) | ### Sitzungsoptionen #### Workflow Sectool bestimmt automatisch den passenden Workflow, wenn der Agent zu Beginn einer Sitzung das `workflow`-Tool aufruft. Du kannst diesen Schritt überspringen und Tokens sparen, indem du den Workflow vorab angibst: ```bash sectool mcp # Standard: Agent wählt Aufgabentyp über das workflow-Tool sectool mcp --workflow explore # Voreingestellter Explorationsmodus sectool mcp --workflow test-report # Voreingestellter Validierungsmodus sectool mcp --workflow none # Keine Workflow-Anweisungen sectool mcp --workflow multi # Mehrere Agenten teilen sich den Server ``` | Modus | Beschreibung | |------|-------------| | (Standard) | Agent wählt den Aufgabentyp durch Aufruf des `workflow`-Tools und erhält Kollaborationsanweisungen | | `explore` | Exploratives Sicherheitstesten; alle Tools verfügbar | | `test-report` | Validierung eines bestimmten Schwachstellenberichts; Crawl-Tools ausgeschlossen | | `none` | Keine Workflow-Anweisungen, alle Tools sofort verfügbar | | `multi` | Für den Fall, dass mehrere Benutzer oder Agenten den Server teilen; blendet Funktionen aus, bei denen ein Agent einen anderen verwirren könnte | Workflow-Anweisungen leiten Agenten zu kollaborativem Testen an, anstatt zu versuchen, alles autonom zu erledigen oder dich durch einen Prozess zu führen, ohne Mehrwert zu bieten. Wenn du Ideen zur Verbesserung der Agenten-Kollaboration hast, [eröffne ein Issue](https://github.com/go-appsec/toolbox/issues). #### Notizen Das `--notes`-Flag aktiviert die Tools `notes_save` und `notes_list` zum Speichern von Beobachtungen, die mit Flows verknüpft sind. Standardmäßig deaktiviert, um die Kontextnutzung für kurze Sitzungen minimal zu halten. Aktiviere es, wenn du mehrere Findings oder Konversationskompaktierungen erwartest. ### MCP-Transporte Der Server stellt zwei Endpunkte bereit: - `/mcp` - Streamable HTTP (empfohlen) - `/sse` - SSE (Legacy, für ältere Clients) ## Beispielhafte CLI-Nutzung Die CLI teilt den Zustand mit dem Agenten und bietet eine benutzerfreundliche Oberfläche zum Überprüfen, erneuten Senden und Skripten. Alle CLI-Befehle entsprechen MCP-Tools, sodass der Agent denselben Zustand teilt. ```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> ``` Verwende `sectool <command> --help` für detaillierte Optionen. ## Hauptfunktionen - **Wire-Fidelity-Proxy** - HTTP/1.1- und HTTP/2-MITM unter Beibehaltung von Header-Reihenfolge, Groß-/Kleinschreibung und Protokollanomalien - **Replay und Mutation** - Live-Datenverkehr über Match/Replace-Regeln umschreiben oder erfasste Requests mit Modifikationen über eine agentenoptimierte API erneut senden - **Flow-Diffing** - Strukturierter, Content-Type-bewusster Vergleich zweier Flows (JSON auf Pfadebene, vereinheitlichter Text, Binärgröße) zur schnellen Berichtsvalidierung - **JS-Oberflächenanalyse** - Endpunkte, Routen und Secrets aus JavaScript/HTML-Bundles extrahieren und dann jede Aufrufstelle in ihre nutzbaren Requests erweitern - **Reflection-Erkennung** - In Antworten reflektierte Request-Parameterwerte über mehrere Kodierungsvarianten hinweg finden, um Injektionspunkte aufzudecken - **OAST** - Out-of-Band-Interaktionstests über Interactsh; Domains erstellen, auf DNS/HTTP/SMTP-Callbacks warten - **Redirect-Probing** - OAST-Sitzungen können 307-Redirects zurückgeben, um zu erkennen, ob ein Ziel Redirects folgt, nützlich für SSRF-Ketten und Validierungsumgehungen - **Crawling** - Endpunkte, Formulare und Anwendungsstruktur entdecken; aus Proxy-Verlauf oder URLs initialisieren - **WebSocket-Unterstützung** - Frame-Level-Interception, Proxying und Match/Replace für WebSocket-Nachrichten - **Workflow-Modi** - Aufgabenspezifische Agenten-Anleitung (explore, test-report) zur Verbesserung der Kollaborationsqualität und Reduzierung von Token-Verschwendung - **Kodierungsdienstprogramme** - URL-, Base64-, HTML-Kodierung/-Dekodierung, Hashing (MD5/SHA/HMAC), JWT-Inspektion - **Burp Suite-Integration** - Optionales GUI-Frontend über die Burp MCP-Erweiterung; oder vollständig headless mit dem nativen Proxy betreiben ## Automatisiertes Scannen Kombiniere sectool mit [sidenuclei](https://github.com/go-appsec/toolbox-sidenuclei), einem First-Party-Sidecar, das [Nuclei](https://github.com/projectdiscovery/nuclei) gegen jeden Endpunkt ausführt, den du berührst. Starte sectool mit `--notes`, hänge `sidenuclei` neben deiner Sitzung an, und es scannt jeden Endpunkt mit dem echten erfassten Request, sodass Tests mit deinen tatsächlichen Parametern, Cookies und deiner authentifizierten Sitzung ausgeführt werden. Findings landen als `finding`-Notizen, die mit dem Flow verknüpft sind, der sie ausgelöst hat, und bieten dir zusätzliche Abdeckung, während du und dein Agent sich auf manuelles Testen konzentrieren. ## Unterstützung benutzerdefinierter Protokolle Über HTTP und WebSocket hinaus unterstützt sectool benutzerdefinierte und binäre Protokolle (im Allgemeinen Request/Response) über ein Sidecar-Adaptermodell. Schreibe einen Adapter, um dich über unsere Sidecar-API zu verbinden und zu kommunizieren. Der Sidecar-Datenverkehr landet in derselben einheitlichen Flow-Timeline, sodass `flow_get`, `diff_flow`, `replay_send` und andere Tools ohne Änderung funktionieren. Adapter können in jeder Sprache über die JSON-RPC 2.0-API geschrieben werden, oder in Go mit dem SDK-Client, der Registrierung, Regel-Caching und Flow-Emission übernimmt. Das [Sidecar-SDK & Protokoll](https://github.com/go-appsec/toolbox/blob/main/sidecar/README.md) dokumentiert beides.