🛡️ Rapport pentest — PTES + OWASP Testing Guide v4
Format : Word (DOCX) + LaTeX · 4 templates · PTES + OWASP-compliant Auteur : Équipe pédagogique ITAG · Cyber Pack Mise à jour : 2026
🎯 Description
Templates de rapport de test d'intrusion (pentest) conformes au PTES (Penetration Testing Execution Standard) et à l'OWASP Testing Guide v4. Format pro pour livrer à un client B2B.
📋 Contenu (4 templates)
1. Executive Summary (2-3 pages)
Pour la direction non-tech :- Contexte de la mission
- Verdict global (red / orange / green)
- Top 5 risques métier
- Recommandations prioritaires
2. Technical Report complet (40-80 pages)
- Scope & Methodology (PTES — 7 phases)
- Reconnaissance summary (OSINT, fingerprinting)
- Threat Modeling (STRIDE, attaque trees)
- Vulnerability Analysis (par OWASP Top 10 mapping + CWE)
- Exploitation (proof of concept, screenshots)
- Post-Exploitation (impact, lateral movement)
- Findings détaillés (un par vulnérabilité)
- Description, CVSS 3.1 score, impact, reproduction steps, remediation
- Remediation roadmap (P1/P2/P3 + délais SLA)
3. Findings template (par vuln)
- Title + CVE/CWE references
- CVSS 3.1 base + temporal + environmental
- Affected components
- Reproduction (POC code, curl, screenshots)
- Remediation détaillée + références (OWASP, NIST)
4. Appendices
- Logs (sanitized)
- Captures réseau (PCAP refs)
- Tools utilisés (Metasploit, Burp, nmap, etc.)
- Scope statement signé
🧠 Standards couverts
- PTES (Penetration Testing Execution Standard)
- OWASP Testing Guide v4.2
- NIST SP 800-115
- ISO/IEC 27002
💼 Cas d'usage
- Pentester freelance livrant à un client
- Red team interne livrant à RSSI
- Préparation OSCP / CEH / PenTest+
- Étudiant master cybersécurité (mémoire)
📄 Template rapport de pentest complet
# RAPPORT DE TEST D'INTRUSION
Client : [Nom de l'organisation]
Date de la mission : [JJ/MM/AAAA] — [JJ/MM/AAAA]
Référence : [REF-2026-XXX]
Niveau de confidentialité : CONFIDENTIEL
Pentesteur : [Prénom Nom] · [certification : OSCP / CEH / PNPT]
1. Résumé exécutif
Cette section est destinée au RSSI, DSI et direction générale. Elle ne contient pas de détails techniques.
Contexte de la mission
[Nom de l'organisation] a mandaté [Nom du prestataire / pentesteur] pour réaliser un test d'intrusion de type [black box / grey box / white box] sur le périmètre défini ci-dessous, du [JJ/MM/AAAA] au [JJ/MM/AAAA].
Verdict global
🔴 CRITIQUE — Des vulnérabilités permettant une compromission complète du système ont été identifiées. Une action corrective immédiate est requise.
(Adapter le verdict : 🔴 Critique / 🟠 Élevé / 🟡 Modéré / 🟢 Faible)
Tableau de synthèse des vulnérabilités
| Sévérité | Nombre | Description courte |
|---|---|---|
| 🔴 Critique | [N] | Compromission immédiate possible |
| 🟠 Haute | [N] | Exposition de données sensibles |
| 🟡 Moyenne | [N] | Risque exploitable sous conditions |
| 🟢 Faible | [N] | Bonne pratique non respectée |
| ℹ️ Informationnelle | [N] | Observation sans impact direct |
| TOTAL | [N] |
Corriger les vulnérabilités critiques et hautes dans un délai de 30 jours. Un re-test est recommandé à l'issue des corrections.
2. Périmètre & Objectifs
Adresses IP / URLs en scope
| Cible | Type | Description |
|---|---|---|
| [192.168.x.x/24] | Réseau | Infrastructure interne |
| [https://app.exemple.fr] | Web app | Application principale |
| [smtp.exemple.fr:25] | Service | Serveur de messagerie |
| [À COMPLÉTER] | [À COMPLÉTER] | [À COMPLÉTER] |
- [Systèmes de production tiers non inclus dans le périmètre]
- [Attaques par déni de service (DoS/DDoS)]
- [Ingénierie sociale sur les employés]
Type de test
- [ ] Black box (aucune information fournie)
- [x] Grey box (informations partielles : comptes, architecture)
- [ ] White box (accès complet au code source et documentation)
Règles d'engagement
- Tests autorisés uniquement sur le périmètre listé ci-dessus
- Fenêtre horaire : [HH:MM] — [HH:MM] (heure locale [Paris / Douala / Montréal])
- Contact d'urgence : [Prénom Nom] · [+33 X XX XX XX XX]
- En cas d'impact sur la production : arrêt immédiat et notification sous 30 minutes
3. Méthodologie
Phases PTES (Penetration Testing Execution Standard)
| Phase | Nom | Description |
|---|---|---|
| 1 | Pre-engagement | Définition du périmètre, règles d'engagement, NDA, contrat signé |
| 2 | Intelligence Gathering | OSINT, fingerprinting DNS/WHOIS, énumération de services |
| 3 | Threat Modeling | Identification des actifs critiques, modèles d'attaque STRIDE |
| 4 | Vulnerability Analysis | Scan automatisé + analyse manuelle, mapping OWASP Top 10 / CWE |
| 5 | Exploitation | Exploitation des vulnérabilités identifiées, preuve de concept (PoC) |
| 6 | Post-Exploitation | Escalade de privilèges, mouvement latéral, persistance, exfiltration |
| 7 | Reporting | Documentation des findings, recommandations, roadmap corrective |
| Outil | Version | Usage |
|---|---|---|
| Nmap | 7.94 | Scan de ports, fingerprinting OS |
| Burp Suite Pro | 2023.x | Analyse de trafic HTTP, fuzzing web |
| Metasploit | 6.x | Exploitation, post-exploitation |
| Nikto | 2.1.6 | Scan vulnérabilités web automatisé |
| SQLmap | 1.7.x | Test injection SQL automatisé |
| Hydra | 9.x | Attaques par force brute |
| Gobuster | 3.x | Énumération de répertoires/vhosts |
| LinPEAS/WinPEAS | latest | Escalade de privilèges post-exploitation |
| [À COMPLÉTER] | [À COMPLÉTER] | [À COMPLÉTER] |
4. Vulnérabilités découvertes
4.1 Tableau récapitulatif
| ID | Titre | Sévérité | CVSS v3 | Statut |
|---|---|---|---|---|
| VUL-01 | SQL Injection — /login | 🔴 Critique | 9.8 | À corriger |
| VUL-02 | Missing Security Headers | 🟡 Moyenne | 5.3 | À corriger |
| VUL-03 | Outdated OpenSSH (version 7.x) | 🟢 Faible | 3.7 | À planifier |
| [VUL-XX] | [À COMPLÉTER] | [À COMPLÉTER] | [X.X] | À corriger |
4.2 Fiches détaillées
VUL-01 · SQL Injection — Formulaire de connexion
| Champ | Valeur |
|---|---|
| Titre | SQL Injection dans le paramètre username du formulaire /login |
| Sévérité | 🔴 Critique |
| CVSS v3 | 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| CVE | N/A (vulnérabilité spécifique à l'application) |
| CWE | CWE-89 — Improper Neutralization of Special Elements in SQL Command |
| URL affectée | https://app.exemple.fr/login |
| Paramètre | username (méthode POST) |
Le paramètre username du formulaire de connexion est directement interpolé dans une requête SQL sans échappement ni utilisation de requêtes préparées. Un attaquant non authentifié peut contourner l'authentification ou extraire l'intégralité de la base de données.
Preuve (Proof of Concept)
POST /login HTTP/1.1
Host: app.exemple.fr
username=admin'--&password=anything
Résultat : connexion réussie en tant qu'administrateur sans mot de passe valide.
[Insérer screenshot de l'accès obtenu]
Impact
- Contournement complet de l'authentification
- Extraction de toutes les données utilisateurs (noms, emails, mots de passe hashés)
- Possibilité d'exécution de commandes système via
xp_cmdshell(SQL Server) ouINTO OUTFILE(MySQL)
Recommandation
- Utiliser des requêtes préparées (Prepared Statements) avec paramètres liés
- Mettre en place un WAF (Web Application Firewall) en couche de défense complémentaire
- Auditer l'ensemble des requêtes SQL de l'application
// À REMPLACER (vulnérable)
$query = "SELECT * FROM users WHERE username='$username'";
// PAR (sécurisé)
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$username]);
Deadline de remédiation : 0-15 jours (P1 — Critique)
VUL-02 · Missing Security Headers
| Champ | Valeur |
|---|---|
| Titre | En-têtes de sécurité HTTP absents |
| Sévérité | 🟡 Moyenne |
| CVSS v3 | 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) |
| CVE | N/A |
| CWE | CWE-693 — Protection Mechanism Failure |
| URL affectée | Toutes les pages de l'application |
Les en-têtes de sécurité HTTP suivants sont absents de toutes les réponses du serveur, exposant l'application à des attaques XSS, clickjacking et fuites d'information.
En-têtes manquants
| En-tête | Impact si absent |
|---|---|
Content-Security-Policy | XSS, injection de contenu |
X-Frame-Options | Clickjacking |
X-Content-Type-Options | MIME sniffing |
Strict-Transport-Security | Attaques MITM / downgrade SSL |
Referrer-Policy | Fuite d'URL sensibles |
Ajouter dans la configuration Apache/Nginx ou dans le code applicatif :
# Apache (.htaccess)
Header set Content-Security-Policy "default-src 'self'"
Header set X-Frame-Options "DENY"
Header set X-Content-Type-Options "nosniff"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header set Referrer-Policy "no-referrer-when-downgrade"
Deadline de remédiation : 31-60 jours (P2 — Moyenne)
VUL-03 · Version OpenSSH obsolète
| Champ | Valeur |
|---|---|
| Titre | OpenSSH version 7.4 — vulnérabilités connues non patchées |
| Sévérité | 🟢 Faible |
| CVSS v3 | 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N) |
| CVE | CVE-2023-38408 (OpenSSH < 9.3p2) |
| CWE | CWE-1035 — OWASP A06:2021 — Vulnerable and Outdated Components |
| Cible | [IP du serveur SSH] port 22 |
Le serveur SSH expose la version OpenSSH_7.4p1 dans sa bannière. Cette version est obsolète et associée à plusieurs CVE dont CVE-2023-38408 permettant une exécution de code à distance dans certaines configurations.
Preuve
$ nmap -sV -p 22 [IP_CIBLE]
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
Recommandation
Mettre à jour OpenSSH vers la version ≥ 9.3p2. Sur Debian/Ubuntu :
apt-get update && apt-get upgrade openssh-server
Deadline de remédiation : 61-90 jours (P3 — Faible)
5. Recommandations prioritaires — Roadmap 90 jours
| Horizon | Actions prioritaires | Responsable |
|---|---|---|
| 0-30j | ✅ Corriger VUL-01 (SQL Injection) · Activer HTTPS partout | Dev + DevSecOps |
| 31-60j | ✅ Ajouter security headers · Mettre en place WAF | Ops + Dev |
| 61-90j | ✅ Mettre à jour OpenSSH · Audit complet des dépendances | SysAdmin |
| Continu | Re-test après corrections · DAST dans CI/CD · Formation OWASP | RSSI |
6. Annexes
Annexe A — Commandes utilisées
# Scan réseau initial
nmap -sC -sV -oA scan_initial [PLAGE_IP]
Énumération web
gobuster dir -u https://app.exemple.fr -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Test SQL Injection
sqlmap -u "https://app.exemple.fr/login" --data="username=test&password=test" --batch --dbs
Vérification headers HTTP
curl -I https://app.exemple.fr
Annexe B — Extrait output Nmap
Nmap scan report for app.exemple.fr ([IP])
Host is up (0.045s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
80/tcp open http Apache httpd 2.4.6
443/tcp open ssl/https Apache httpd 2.4.6
| ssl-cert: Subject: commonName=app.exemple.fr
| Not valid before: 2025-01-01T00:00:00
| Not valid after: 2026-01-01T00:00:00
📥 Téléchargement
Télécharger ce template · ← Catalogue Word · Parcours Cyber →
ITAG · OWASP, PTES sont des standards ouverts. ITAG produit ses templates indépendamment.