Agent IA autonome de test d'intrusion qui orchestre la reconnaissance multi-agents, l'exploitation, la post-exploitation et le reporting, avec un état d'engagement persistant.
Agent de test d'intrusion IA dans votre terminal.
Architecture multi-agents • Suivi de l'état de l'engagement • Plus de 20 fournisseurs de LLM
PentestCode est un agent de pentest autonome pour votre terminal. Pointez-le vers une cible et il exécute les outils, lit la sortie, met à jour sa vision du réseau et décide de la suite — comme le ferait un opérateur. Un fork dur de OpenCode (MIT), dépouillé de son orientation édition de code et reconstruit pour la sécurité offensive.
Bêta — il tient la route sur de vrais engagements et des CTF, mais attendez-vous à quelques aspérités. Ouvrez un ticket quand quelque chose casse ; c'est ce qui le rend meilleur.
Une instruction en entrée, une chaîne d'attaque complète en sortie :
you: "pentest 10.10.10.5, goal is domain admin"
| Étape | Ce que fait l'agent |
|---|---|
| Scan | nmap -sS -p- trouve 7 ports ouverts et parse le XML directement dans l'état de l'engagement |
| Reconnaissance | Ports 88 + 389 → Contrôleur de domaine. Déploie trois énumérateurs en parallèle (SMB, LDAP, HTTP) |
| Énumération | Session SMB nulle → partage accessible en écriture. LDAP → liste d'utilisateurs. Gobuster → répertoires web |
| Attaque | AS-REP roast → hash cassable → premier identifiant valide |
| Spray | Cet identifiant pulvérisé sur SMB, WinRM, LDAP et RDP sur chaque hôte connu |
| Exploitation | Point d'ancrage WinRM → l'agent post-exploitation extrait SAM / LSA / DPAPI |
| Résultat | Hash d'administrateur de domaine en main — chaque étape enregistrée avec sa chaîne de preuves |
Il est méthodique là où les humains deviennent paresseux : il pulvérise chaque identifiant contre chaque service sur chaque hôte, et il n'oublie pas de vérifier les choses. Tout ce qu'il apprend atterrit dans un état structuré que vous pouvez interroger en cours d'exécution avec /status, /vulns ou /creds.
npm install -g pentestcode-ai
# via curl
curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Un binaire unique et autonome — aucun Bun, Node ou runtime à installer. Linux et macOS, x64 et arm64.
Arch Linux (AUR) :
paru -S pentestcode-bin
Épingler une version :
PENTESTCODE_VERSION=0.1.7 curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Répertoire personnalisé :
PENTESTCODE_INSTALL=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/s0ld13rr/pentestcode/main/install.sh | bash
Depuis les sources :
bun install
bun run build --single --skip-embed-web-ui
# binary at packages/opencode/dist/pentestcode-<os>-<arch>/bin/pentestcode
pentestcode auth login # connect your LLM provider
pentestcode # interactive session
pentestcode --prompt "scan 10.10.10.0/24 and enumerate all services" # one-shot
Fonctionne avec plus de 20 fournisseurs via ai-sdk — Anthropic, OpenAI, Google, Azure, AWS Bedrock, Ollama, et plus encore.
Deux choses distinguent PentestCode d'un prompt de pentester collé dans une fenêtre de chat : une équipe d'agents et une mémoire qu'ils partagent.
La conception suit le modèle stratège-coordinateur issu de la recherche HPTSA — une amélioration de 4,3× par rapport à un agent unique :
┌─────────────┐
│ pentest │ strategist / coordinator
│ (lead) │ plans, dispatches, tracks state
└──────┬──────┘
┌───────┬───────┼───────┬───────┐
▼ ▼ ▼ ▼ ▼
┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐
│recon ││scan- ││explo-││iden- ││post- │
│ ││ner ││iter ││tity ││explo │ ... + 7 more
└──────┘└──────┘└──────┘└──────┘└──────┘
L'agent principal (pentest) découpe l'engagement en tâches et déploie des sous-agents spécialisés en parallèle — chacun avec son propre prompt système, ses permissions d'outils et ses connaissances métier. 13 agents au total : recon, scanner, enumerator, exploiter, identity (AD/Kerberos), infrastructure (SNMP/IPMI/bases de données), webapp (OWASP Top 10), post-exploit, exploit-dev, critic (vérificateur de faux positifs), reporter, plus des agents cachés pour la compression de contexte et la gestion de session.
Quand le scanner trouve un port, l'énumérateur le voit instantanément — parce que chaque agent lit et écrit dans un même état d'engagement structuré :
L'état survit à la session : fermez le terminal, revenez demain, et l'agent reprend là où il s'est arrêté. À côté, un fichier findings.md lisible par un humain journalise chaque vulnérabilité, identifiant et gain d'accès avec horodatage — faites tail -f dessus pour regarder l'engagement se dérouler.
18 outils de pentest intégrés en plus de bash. Les outils d'analyse sont obligatoires : après avoir lancé nmap, l'agent doit faire passer la sortie par nmap_parse plutôt que de grep le XML à la main, afin que chaque découverte atteigne l'état de l'engagement.