
Framework d'agents IA pour les tests de sécurité en boîte noire avec orchestration autonome multi-agents, outils de pentesting intégrés, et intégration MCP pour les workflows de bug bounty, red team et tests de pénétration.
https://github.com/user-attachments/assets/a67db2b5-672a-43df-b709-149c8eaee975
# Clone
git clone https://github.com/GH05TCREW/pentestagent.git
cd pentestagent
# Setup (creates venv, installs deps)
.\scripts\setup.ps1 # Windows
./scripts/setup.sh # Linux/macOS
# Or manual
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows
source venv/bin/activate # Linux/macOS
pip install -e ".[all]"
playwright install chromium # Required for browser tool
Créez .env à la racine du projet :
ANTHROPIC_API_KEY=sk-ant-...
PENTESTAGENT_MODEL=claude-sonnet-4-20250514
Ou pour OpenAI :
OPENAI_API_KEY=sk-...
PENTESTAGENT_MODEL=gpt-5
Tout modèle supporté par LiteLLM fonctionne.
Pointer PentestAgent vers n'importe quel endpoint compatible OpenAI via OPENAI_API_BASE :
OPENAI_API_KEY=your-relay-token
OPENAI_API_BASE=https://relay.example/v1
PENTESTAGENT_MODEL=openai/<model-name-on-your-relay>
Pour les endpoints compatibles Anthropic, utilisez ANTHROPIC_API_BASE à la place.
Voir .env.example pour les notes complètes sur les fournisseurs et les options d'embedding.
pentestagent # Launch TUI
pentestagent -t 192.168.1.1 # Launch with target
pentestagent tui --docker # Run tools in Docker container
Exécutez les outils dans un conteneur Docker pour l'isolation et les outils de pentest préinstallés.
# Base image with nmap, netcat, curl
docker run -it --rm \
-e ANTHROPIC_API_KEY=your-key \
-e PENTESTAGENT_MODEL=claude-sonnet-4-20250514 \
ghcr.io/gh05tcrew/pentestagent:latest
# Kali image with metasploit, sqlmap, hydra, etc.
docker run -it --rm \
-e ANTHROPIC_API_KEY=your-key \
ghcr.io/gh05tcrew/pentestagent:kali
# Build
docker compose build
# Run
docker compose run --rm pentestagent
# Or with Kali
docker compose --profile kali build
docker compose --profile kali run --rm pentestagent-kali
Le conteneur exécute PentestAgent avec un accès aux outils de pentest Linux. L'agent peut utiliser nmap, msfconsole, sqlmap, etc. directement via l'outil terminal.
Nécessite que Docker soit installé et en cours d'exécution.
PentestAgent propose trois modes, accessibles via des commandes dans le TUI :
| Mode | Commande | Description |
|---|---|---|
| Assist | /assist <tâche> | Une instruction unique, avec exécution d'outils |
| Agent | /agent <tâche> | Exécution autonome d'une seule tâche |
| Crew | /crew <tâche> | Mode multi-agent. L'orchestrateur génère des travailleurs spécialisés |
| Interact | /interact <tâche> | Mode interactif. Discutez avec l'agent, il vous aidera et vous guidera pendant la procédure de pentest |
/assist <task> One single-shot instruction.
/agent <task> Run autonomous agent on task
/crew <task> Run multi-agent crew on task
/interact <task> Chat with the agent in guided mode
/target <host> Set target
/tools List available tools
/notes Show saved notes
/report Generate report from session
/memory Show token/memory usage
/prompt Show system prompt
/conversations Browse and restore saved conversations
/mcp <list/add> Visualizes or adds a new MCP server.
/spawn [target] [--scope CIDR] [--model M] [--no-rag] [--no-mcp]
Manually spawn a child MCP agent from the TUI.
/despawn <server_name>
Terminate and remove a previously spawned child agent.
/clear Clear chat and history
/quit Exit (also /exit, /q)
/help Show help (also /h, /?)
Appuyez sur Esc pour arrêter un agent en cours d'exécution. Ctrl+Q pour quitter.
PentestAgent inclut des playbooks d'attaque préconstruits pour les tests de sécurité en boîte noire. Les playbooks définissent une approche structurée pour des évaluations de sécurité spécifiques.
Exécuter un playbook :
pentestagent run -t example.com --playbook thp3_web

PentestAgent inclut des outils intégrés et supporte MCP (Model Context Protocol) pour l'extensibilité.
Outils intégrés : terminal, browser, notes, web_search (nécessite TAVILY_API_KEY), spawn_mcp_agent
spawn_mcp_agent)spawn_mcp_agent est un outil intégré qui permet à un agent en cours d'exécution de générer une copie enfant de lui-même en tant que serveur MCP subordonné connecté via stdio. Le processus enfant est totalement isolé — son propre runtime, client LLM, historique de conversation et magasin de notes — et son ensemble complet d'outils est injecté dans les outils disponibles de l'agent parent après la génération.
Cela permet des workflows hiérarchiques multi-agents sans aucune orchestration externe : l'agent s'organise lui-même en déléguant des sous-tâches ciblées à des enfants qu'il génère à la demande.
| Argument | Type | Défaut | Description |
|---|---|---|---|
target | string | — | Cible de pentest à transmettre à l'enfant |
scope | string[] | — | Cibles/CIDR dans le périmètre pour l'enfant |
model | string | var. env. | Identifiant du modèle, remplace PENTESTAGENT_MODEL sur l'enfant |
no_rag | boolean | false | Ignorer l'initialisation du moteur RAG sur l'enfant |
no_mcp | boolean | true | Ignorer les connexions aux serveurs MCP externes sur l'enfant (recommandé) |
Après le retour de spawn_mcp_agent, les outils de l'enfant (run_task, run_task_async, await_tasks, etc.) sont disponibles lors du prochain appel d'outil. Le nom du serveur de l'enfant est attribué automatiquement (par exemple child_agent_1) et renvoyé dans le résultat.
Exemple — orchestrateur déléguant une reconnaissance parallèle à deux enfants :
# Turn 1: spawn two isolated child agents
spawn_mcp_agent target="10.0.1.0/24" scope=["10.0.1.0/24"]
spawn_mcp_agent target="10.0.2.0/24" scope=["10.0.2.0/24"]
# Turn 2: children's tools are now available — delegate work asynchronously
child_agent_1__run_task_async task="Full port scan and service enumeration"
child_agent_2__run_task_async task="Full port scan and service enumeration"
# Turn 3: wait and collect
child_agent_1__await_tasks task_ids=["<id1>"] timeout_seconds=600
child_agent_2__await_tasks task_ids=["<id2>"] timeout_seconds=600
child_agent_1__get_task_result task_id="<id1>"
child_agent_2__get_task_result task_id="<id2>"
/spawn et /despawn)