Objectif de la saison : Découvrir le test d'intrusion (Penetration Testing) et maîtriser les attaques web les plus répandues pour mieux s'en défendre.
💉 C501. Introduction au Pentesting & Faille XSS
Objectif : Comprendre le cadre légal et la méthodologie du Hacker Éthique, mettre en place son laboratoire d'attaque, et exploiter sa première vulnérabilité applicative : le Cross-Site Scripting (XSS).
1. Qu'est-ce que le PenTest ? (Méthodologie & Légalité)
Le test d'intrusion (Penetration Testing) consiste à attaquer un système avec autorisation pour en identifier les failles avant qu'un vrai attaquant ne le fasse. C'est du hacking légal et commandité. Ces attaques ciblent généralement la couche applicative (couche 7). Elles exploitent souvent un manque de validation des données fournies par l'utilisateur.
La Règle d'Or (Cadre Légal) :
Tout PenTest doit être couvert par une autorisation écrite du propriétaire du système. Sans cette autorisation, c'est un délit informatique puni par l'article 323-1 du Code pénal en France.
Le cycle de vie d'un PenTest (Les 4 phases) :
-
Reconnaissance : Collecter un maximum d'informations sur la cible (OSINT, scan...).
-
Scan & énumération : Identifier les services exposés, les versions, et les points d'entrée potentiels.
-
Exploitation : Exploiter les vulnérabilités identifiées pour obtenir un accès ou exfiltrer des données.
-
Post-exploitation & rapport : Mesurer l'impact réel, documenter et recommander des correctifs. C'est cette dernière étape qui donne toute la valeur au travail du penTesteur.
2. La Boîte à Outils (Le Lab)
Pour s'entraîner sans risquer la prison, on utilise des environnements contrôlés :
-
Kali Linux : La distribution Debian de référence maintenue par Offensive Security, dédiée au PenTest avec des centaines d'outils préinstallés.
-
Burp Suite : Un proxy HTTP qui se place entre le navigateur et le serveur. Il permet d'intercepter, de lire et de modifier les requêtes web à la volée.
-
DVWA (Damn Vulnerable Web App) : Une application web PHP/MySQL intentionnellement trouée, conçue pour l'apprentissage et la pratique des attaques.
3. Focus Vulnérabilité : Le XSS (Cross-Site Scripting)
Définition : Le XSS est une vulnérabilité qui permet à un attaquant d'injecter et d'exécuter du code JavaScript dans le navigateur d'une victime.
⚠️ Concept clé : Le code ne s'exécute pas sur le serveur, il s'exécute côté client (dans le navigateur de la personne qui visite la page).
À quoi ça sert pour un attaquant ?
-
Voler des cookies de session (pour prendre le contrôle d'un compte).
-
Rediriger la victime vers un site malveillant.
-
Modifier le contenu de la page à la volée (defacement).
-
Exfiltrer des données saisies dans des formulaires.
4. Les 3 Saveurs de l'XSS (Anatomie de l'attaque)
Il existe 3 grandes familles de XSS, classées selon le chemin emprunté par le script malveillant.
-
Type 0 : DOM-based (Le script furtif)
- Le script malveillant n'est jamais envoyé au serveur.
- Il est injecté directement dans l'URL et interprété localement par le JavaScript de la page.
- Exemple :
https://example.com/page?name=<script>alert(1)</script>.
-
Type 1 : Reflected (Le script réfléchi)
- Le script est envoyé au serveur via une requête HTTP (URL, formulaire...).
- Le serveur est complice malgré lui : il renvoie le script tel quel dans sa réponse HTML, sans le stocker.
- Condition : L'attaque n'est pas persistante, la victime doit obligatoirement cliquer sur un lien piégé (via email, phishing).
-
Type 2 : Stored (Le script persistant)
- Le script malveillant est enregistré en dur sur le serveur (base de données, fichier...).
- Il est exécuté automatiquement à chaque fois qu'une victime charge la page concernée.
- Gravité : C'est le type le plus dangereux car une seule injection fait des victimes en masse.
5. Hardening : Comment s'en protéger ?
En tant qu'Admin Sys, la règle d'or est de ne jamais faire confiance à une donnée externe (qu'elle vienne de l'URL, d'un formulaire ou d'une base de données). Voici les contre-mesures :
-
Échapper les sorties : Encoder les caractères spéciaux HTML (transformer
<en<) pour que le navigateur ne les lise pas comme du code. -
CSP (Content Security Policy) : Une règle côté serveur pour restreindre les sources de scripts autorisées.
-
HttpOnly sur les cookies : Un flag de sécurité qui empêche totalement le JavaScript d'accéder au cookie de session.
Challenge C501 : Déployer Kali, DVWA et exploitations XSS (Cross-site scripting)
📚 Ressources :
- Kali Docs : https://www.kali.org/docs/
- Burp Suite : https://www.it-connect.fr/tuto-burpsuite-proxy-web-local/
- OWASP XSS Cheatsheet : https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html
- OWASP DOM-based XSS Cheatsheet : https://cheatsheetseries.owasp.org/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.html
📂 C502. La Faille LFI (Local File Inclusion)
Objectif : Comprendre comment un attaquant peut forcer un serveur web à divulguer ses fichiers internes les plus sensibles (voire à exécuter des commandes), et apprendre à sécuriser le code PHP et l'architecture pour bloquer ces attaques.
1. Qu'est-ce qu'une LFI ? (Le Principe)
Une faille LFI (Local File Inclusion) permet à un attaquant de manipuler un paramètre non sécurisé pour forcer le serveur à lire, afficher, ou exécuter des fichiers locaux auxquels il ne devrait pas avoir accès. Ce type de vulnérabilité est répertorié sous la faille CWE-98.
Le problème à la source :
Tout vient d'une mauvaise pratique de développement, très courante en PHP, où l'entrée de l'utilisateur est injectée directement dans une fonction d'inclusion.
Code vulnérable classique : include($_GET['page']);.
Si l'URL est ?page=contact.php, le serveur inclut la page de contact. Mais l'attaquant peut remplacer ce nom par le chemin d'un fichier système critique.
2. L'Arsenal du Hacker : Les Techniques d'Exploitation
Pour exploiter cette faille, l'attaquant dispose de plusieurs techniques de contournement :
- Le Path Traversal (La traversée de répertoires) : L'astuce consiste à utiliser les caractères
../pour "remonter" dans l'arborescence des dossiers du serveur. En multipliant les../../.., on atteint la racine/du serveur Linux, puis on redescend vers le fichier cible. Exemple :?page=../../../etc/passwd. - Les Wrappers PHP (Pour lire du code) :
Si on essaie d'inclure un fichier PHP (ex:
config.php), le serveur va l'exécuter au lieu d'afficher son contenu. Pour contourner cela et lire les mots de passe dans le code source, on utilise un "wrapper" PHP. Exemple :php://filter/convert.base64-encode/resource=config.php. Le serveur renverra le code source converti en texte Base64, qu'il suffira de décoder. - Double encodage & Null Byte (Bypass de filtres) : Si le pare-feu ou le code bloque les
../, l'attaquant peut les encoder au format URL (ex:%2e%2e%2f) pour tromper la sécurité. - Upload + Include : Si le site permet d'uploader une image, l'attaquant y cache du code malveillant, puis utilise la faille LFI pour "inclure" cette fausse image et forcer le serveur à exécuter le code.
3. Le Butin : Quels fichiers cibler ?
Sur une architecture Linux typique, l'attaquant va viser des fichiers standards :
/etc/passwd: Pour récupérer la liste des utilisateurs du système./etc/shadow: Pour voler les mots de passe hashés du serveur (si les droits sont mal gérés)./proc/self/environ: Pour lire les variables d'environnement./var/log/apache2/access.log: Les journaux (logs) du serveur web.- Les fichiers
.phplocaux pour voler des credentials de base de données.
4. L'Escalade Ultime : LFI vers RCE
La LFI n'est souvent qu'une première étape. L'escalade des privilèges se passe ainsi :
- Lecture de fichiers.
- Vol de credentials (identifiants BDD).
- RCE (Remote Code Execution) via Log Poisoning. L'attaquant envoie une requête web contenant du code PHP caché dans son "User-Agent". Le serveur web stocke cette requête dans ses logs (
access.log). L'attaquant utilise ensuite la faille LFI pour inclure le fichier de log : le serveur lit le log, trouve le code PHP injecté, et l'exécute. C'est la prise de contrôle totale du serveur !
(Note sur la RFI - Remote File Inclusion : La RFI permet d'inclure directement un script hébergé sur le serveur du pirate, mais elle nécessite que l'option allow_url_include soit sur "On", ce qui est désactivé par défaut depuis PHP 5.2. La LFI est donc bien plus courante !)
5. Hardening (Comment s'en protéger ?)
En tant qu'Admin Sys et garant de la sécurité, voici comment bloquer les LFI :
- La Whitelist (Liste Blanche) : C'est la règle d'or. Ne jamais faire confiance à l'entrée utilisateur. Le développeur doit créer un tableau strict des pages autorisées et vérifier si la requête s'y trouve (ex: fonction
in_arrayen PHP). - Utiliser
basename(): Cette fonction PHP extrait uniquement le nom du fichier et supprime automatiquement toute tentative de traversée de répertoires (les fameux../). - Désactiver
allow_url_include: À vérifier systématiquement dans le fichier de configurationphp.ini. - Principe de moindre privilège : S'assurer que l'utilisateur Linux qui fait tourner le serveur web (
www-datapar exemple) n'a absolument pas les droits de lecture sur/etc/shadowou d'autres dossiers critiques.
Challenge C502 : Exploitations de failles LFI (Local File Inclusion)
📚 Ressources :
- Portswigger explication du Cross-site scripting (XXS) : https://portswigger.net/web-security/cross-site-scripting
- Owasp explication détaillée du path traversal : https://owasp.org/www-community/attacks/Path_Traversal
- Référence complète sur toutes les techniques LFI/RFI : https://hacktricks.wiki/en/pentesting-web/file-inclusion/index.html
- Liste exhaustive de payloads classés par technique : https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/File%20Inclusion
- Documentation officielle PHP sur tous les wrappers disponibles : https://www.php.net/manual/fr/wrappers.php
💉 C502.2 - Comprendre et exploiter les injections SQL (SQLi)
Objectif : Comprendre le mécanisme fondamental des vulnérabilités d'injection SQL (SQLi) liées à la confiance aveugle envers les entrées utilisateur. Découvrir les différentes familles d'attaques (Error-based, Blind, UNION) afin d'être capable d'exfiltrer des données ou contourner une authentification lors d'un audit, et maîtriser les contre-mesures incontournables (requêtes paramétrées, ORM, validation) pour sécuriser efficacement le code d'une application.
1. Le problème fondamental : La confiance aveugle
Une application web communique avec sa base de données (BDD) via des requêtes SQL. La vulnérabilité apparaît lorsque l'application utilise directement les saisies de l'utilisateur (comme un identifiant récupéré dans l'URL) pour construire sa requête par simple concaténation.
- Exemple vulnérable :
$query = "SELECT * FROM users WHERE id = '$id'"; - Si un attaquant saisit du code SQL malveillant à la place d'un simple identifiant, le moteur de la base de données ne fera pas la différence : il interprétera et exécutera aveuglément l'entrée de l'utilisateur comme s'il s'agissait de code légitime.
2. Les objectifs d'une attaque SQLi
En détournant la requête initiale, l'attaquant peut prendre le contrôle des données. Ses objectifs principaux sont :
- Contourner une authentification (ex: se connecter en tant qu'administrateur sans connaître le mot de passe).
- Extraire et voler des données sensibles (base de clients, mots de passe).
- Modifier ou supprimer des informations directement dans les tables.
- Dans certains cas critiques, compromettre entièrement le serveur qui héberge la base de données.
3. Les différentes familles d'injections SQL
On classe les injections SQL selon la manière dont les résultats de l'attaque "remontent" jusqu'à l'écran de l'attaquant :
- Basée sur l'erreur (Error-based) : C'est la plus visible. L'attaquant injecte un caractère (souvent une apostrophe
') qui ferme mal une chaîne de caractères et "casse" la requête d'origine. L'application affiche alors l'erreur renvoyée par la BDD, ce qui révèle de précieuses informations sur sa version ou sa structure. - Aveugle booléenne (Blind - Boolean-based) : L'application n'affiche aucune erreur, mais son comportement (affichage) change selon si on lui injecte une condition vraie ou fausse. L'attaquant doit deviner les données en posant des centaines de questions "vrai/faux" pour reconstituer les informations caractère par caractère. C'est un processus lent.
- Aveugle temporelle (Blind - Time-based) : La page ne change absolument pas visuellement. L'attaquant injecte des commandes de pause (comme
SLEEP(5)) et mesure le temps que met le serveur à répondre pour déduire si sa condition était vraie ou fausse. C'est la méthode la plus lente. - Basée sur UNION (UNION-based) : C'est la technique la plus puissante pour exfiltrer des données. L'opérateur SQL
UNIONpermet d'accoler les résultats d'une seconde requête (malveillante) à la première. Condition technique : les deux requêtes doivent obligatoirement posséder le même nombre de colonnes (nombre que l'on trouve généralement en injectant la commandeORDER BY).
4. Comment s'en protéger ?
La règle d'or est stricte : ne jamais concaténer directement des entrées utilisateur dans une requête SQL.
- La protection principale : Les requêtes paramétrées. On utilise des fonctions (comme
prepare()etexecute()) qui envoient d'abord le code SQL avec un emplacement réservé (souvent un?), puis qui envoient la valeur saisie par l'utilisateur séparément. Le moteur SQL sépare ainsi de manière étanche le "code" des "données", empêchant toute interprétation malveillante. - L'utilisation d'ORM (Object-Relational Mapper) : Des frameworks génèrent les requêtes à votre place et utilisent nativement des requêtes paramétrées par défaut, ce qui limite grandement les risques.
- La validation des entrées (en complément) :
- Vérifier systématiquement le type attendu (est-ce que l'entrée est bien un nombre entier ? un email bien formaté ?).
- Rejeter ou nettoyer les caractères suspects de contrôle SQL (
',",--,;).
- Le principe de moindre privilège : L'utilisateur SQL configuré par l'application pour se connecter à la base ne doit avoir que les droits strictement nécessaires (il ne doit absolument pas être "root").
🛠️ C503 - Pentest Interne : De la Reconnaissance à l'Exploitation (Focus MITM)
Objectif : Découvrir et maîtriser les principaux outils utilisés lors d'un test d'intrusion (pentest) interne, comprendre les mécanismes de défense réseau classiques (Firewall, IDS/IPS), et plonger dans le fonctionnement détaillé des attaques de type "Man-in-the-Middle" (MITM) ciblant les réseaux locaux.
PARTIE 1 : Les outils du Pentest Interne
La boîte à outils du pentester se divise en plusieurs catégories selon la phase de l'attaque. Pour être efficace, il faut choisir le bon outil au bon moment.
1. Outils de Reconnaissance et d'Énumération
L'objectif est de cartographier la cible, d'identifier les services actifs et de récolter un maximum d'informations avant d'attaquer.
-
Nmap : C'est le scanner réseau de référence. Il permet non seulement de découvrir les ports ouverts, mais aussi d'identifier le système d'exploitation et les versions précises des services. Il intègre un moteur de scripts (NSE) pour détecter des vulnérabilités.
-
Scan complet (versions, OS, tous les ports, verbeux) :
sudo nmap -sV -p- -A -oA nmap_result -v 192.168.1.0/24 -
Scan SYN (rapide et discret) avec détection de vulnérabilités :
sudo nmap -sS -p 1-1024 -O -oA nmap_result -v --script vuln 192.168.1.0/24 -
Découverte de machines simples (Ping scan / ARP) :
sudo nmap -sn 192.168.1-4.0/24 -oA nmap_result -v -
Scan avec les scripts de reconnaissance par défaut :
sudo nmap -sC IPCIBLE -
Scan ciblé sur la détection de vulnérabilités :
sudo nmap --script vuln IP CIBLE -
Scan de réseau avec détection des versions et de l'OS (verbeux et sauvegardé) :
sudo nmap -sV -v -O -oA nmap IP_Network/CIDR
-
-
Smbmap : Outil en ligne de commande dédié à l'énumération des partages SMB (Windows). Il permet de lister les répertoires, vérifier les permissions (lecture/écriture) et trouver des fichiers sensibles.
- Lister les partages avec un compte :
./smbmap.py -H 192.168.86.214 -u Administrator -p asdf1234 - Exécuter une commande à distance (si droits suffisants) :
python smbmap.py -u ariley -p 'P@$$w0rd1234!' -d ABC -x 'net group "Domain Admins" /domain' -H 192.168.2.50
- Lister les partages avec un compte :
-
Pingcastle : Outil d'audit pour Active Directory (AD). Très rapide, il génère une cartographie et un rapport de santé (Healthcheck) avec un score de risque (sur 100), mettant en évidence les comptes à privilèges, les anomalies et les relations d'approbation (Trusts) dangereuses.
- Lancer un bilan de santé :
.\PingCastle.exe --server dc01.example.com -user user -password password --healthcheck
- Lancer un bilan de santé :
-
Bloodhound : Outil graphique ultra-puissant qui extrait et cartographie les relations entre les objets d'un AD (utilisateurs, groupes, ordinateurs). Il permet de trouver visuellement les chemins les plus courts pour une escalade de privilèges vers le compte Administrateur du Domaine.
- (Collecte de données avec SharpHound) :
SharpHound.exe --CollectionMethod All
- (Collecte de données avec SharpHound) :
2. Scanners de Vulnérabilités
Ils automatisent la recherche de failles de sécurité connues sur les infrastructures ou les applications web.
- Nikto : Scanner web très simple, en ligne de commande, qui repère les fichiers dangereux, les serveurs obsolètes ou mal configurés.
- Commande de base :
nikto -h http://www.example.com
- Commande de base :
- Nuclei : Scanner de vulnérabilités moderne et collaboratif, basé sur des modèles (templates) au format YAML. Très rapide pour cibler des failles spécifiques.
- Scanner avec un dossier de templates :
nuclei -t templates-path/ -u http://www.example.com
- Scanner avec un dossier de templates :
- WPScan : Spécialisé exclusivement dans les sites WordPress. Il énumère les plugins vulnérables, les thèmes et les utilisateurs (nécessite un token API gratuit).
- Scanner complet (failles, utilisateurs, thèmes) :
wpscan --url http://www.example.com --api-token VULNDB_API_TOKEN -e v,u,t
- Scanner complet (failles, utilisateurs, thèmes) :
- OpenVAS & Nessus : Solutions lourdes (souvent sur VM) pour scanner automatiquement des réseaux entiers. Nessus est particulièrement réputé pour sa base de données de failles constamment actualisée.
3. Exploitation et Fuzzing
- Metasploit : Le framework ultime d'exploitation. Il regroupe des milliers d'exploits prêts à l'emploi.
- Chercher un exploit très fiable :
msf6> search wordpress type:exploit rank:excellent
- Chercher un exploit très fiable :
- SQLMap : Automatise la détection et l'exploitation complexe des failles d'injection SQL.
- Tester un paramètre, forcer le HTTPS et lister les bases :
sqlmap -u "http://www.example.com?id=1" -p id --level 3 --risk 2 --force-ssl --dbs
- Tester un paramètre, forcer le HTTPS et lister les bases :
- Hydra : Outil de brute-force (et attaques par dictionnaire) très rapide pour tester massivement des mots de passe sur divers protocoles (HTTP, SSH, FTP...).
- Brute-force d'une mire HTTP :
hydra -l admin -P /usr/share/wordlists/rockyou.txt -s 80 -f example.com http-get /admin
- Brute-force d'une mire HTTP :
- Dirbuster / FFuF : Outils de "fuzzing" web. Ils testent des milliers de mots issus d'un dictionnaire pour découvrir des fichiers ou dossiers cachés sur un serveur web.
- Dirbuster (graphique/CLI) :
dirbuster -u http://www.example.com -l /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt - FFuF (ultra-rapide en Go) :
ffuf -u http://www.example.com/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
- Dirbuster (graphique/CLI) :
💡 Bonnes pratiques du Pentester :
- Prise de notes : Indispensable (Cherry Tree, OneNote, Markdown) pour rédiger le rapport final.
- Sécurité et éthique : N'utiliser que des outils compris, sur des cibles autorisées. Nettoyer les traces (fichiers laissés par les outils), ne pas conserver les données sensibles trop longtemps, et avertir le client si un outil invasif est utilisé.
PARTIE 2 : Sécurité Réseau & Attaques Man-In-The-Middle (MITM)
Pour bien attaquer un réseau, il faut d'abord connaître les équipements de sécurité qui le protègent :
- Firewall (Pare-feu) : Contrôle le trafic entre les réseaux via des règles (IP, Port, Protocole). Il segmente le réseau.
- IDS / IPS : L'IDS (Détection) analyse le trafic et génère des alertes sur les comportements suspects. L'IPS (Prévention) va plus loin en bloquant activement ce trafic malveillant.
- WAF (Web Application Firewall) : Un pare-feu spécialisé pour le web HTTP/HTTPS. Il bloque les attaques applicatives (Injections SQL, XSS, CSRF).
- VPN : Encapsule et chiffre le trafic pour créer un tunnel sécurisé sur un réseau public.
1. Le concept du Man-in-the-Middle (MITM)
L'attaque MITM consiste à intercepter les communications entre deux machines sans qu'elles ne s'en rendent compte. L'attaquant, qui doit impérativement se trouver sur le même réseau local que la victime, s'intercale pour lire le trafic en clair, le modifier à la volée, ou y injecter des données malveillantes.
2. Les 3 techniques d'attaques MITM détaillées :
-
A. ARP Cache Poisoning (Empoisonnement ARP)
- Comment ça marche ? Le protocole ARP associe une adresse IP (ex: 192.168.1.1) à une adresse physique MAC sur un réseau Ethernet.
- La faille : L'ARP est un vieux protocole sans aucune sécurité. Si une machine reçoit une réponse ARP (même sans l'avoir demandée), elle met à jour son cache. Les réponses ne sont pas authentifiées.
- L'attaque : L'attaquant envoie massivement de fausses réponses ARP à la victime (en disant "Je suis la box internet") et à la box (en disant "Je suis la victime"). Les deux machines mettent à jour leur table ARP et s'envoient désormais tout leur trafic via le PC de l'attaquant.
- Outils :
arpspoof,ettercap,bettercap. - Protection : Configurer les switchs pour bloquer les trames falsifiées, utiliser des EDR, monitorer le trafic réseau.
-
B. DNS Spoofing (Usurpation DNS)
- Comment ça marche ? Le DNS agit comme l'annuaire d'internet, traduisant les noms de domaine en adresses IP.
- L'attaque : L'attaquant intercepte la requête DNS de la victime. Si la victime demande l'adresse de sa banque, l'attaquant répond avec l'adresse IP de son propre serveur malveillant (Phishing).
- Prérequis : Pour intercepter cette requête, l'attaquant doit d'abord avoir réussi un ARP Poisoning, avoir accès au serveur DNS du réseau, ou exploiter une faille sur ce serveur.
- Outils :
dnsspoof, souvent couplé àettercapoubettercap. - Protection : Configuration DNS sécurisée et protection stricte contre l'ARP Spoofing.
-
C. DHCP Spoofing
- Comment ça marche ? Le DHCP (Dynamic Host Configuration Protocol) attribue automatiquement les IP aux nouvelles machines via 4 étapes (Discover, Offer, Request, ACK).
- L'attaque : L'attaquant lance un faux serveur DHCP sur sa machine. Lorsqu'une victime se connecte au réseau et demande une IP en broadcast (DHCP DISCOVER), l'attaquant répond plus vite que le vrai serveur avec un DHCP OFFER piégé. Il attribue une IP à la victime, mais surtout, il se désigne lui-même comme étant la passerelle par défaut et le serveur DNS ! C'est une méthode MITM redoutable et souvent plus discrète que l'ARP spoofing. Il peut aussi provoquer un déni de service (DoS) sur le vrai serveur DHCP pour s'assurer d'être le seul à répondre.
- Outils :
responder. - Protection : Surveiller le trafic DHCP et activer le "DHCP snooping" sur les switchs professionnels (qui bloque les paquets DHCP OFFER provenant de ports non autorisés).
🛡️ La protection ultime contre le MITM : le chiffrement
Même si un attaquant réussit un MITM parfait, il ne pourra rien faire si les données sont chiffrées de bout en bout. L'utilisation généralisée du HTTPS et des VPN rend l'interception des données illisible pour l'attaquant, ruinant ainsi ses efforts d'écoute.
Challenge C503 : Attaque Man in the Middle et scans Nmap
📚 Ressources :
- Gitbook notes Secureaks : https://gitbook.secureaks.com/pentest/
- Metasploitable 2, environnement pentest & sec testing : https://docs.rapid7.com/metasploit/metasploitable-2/
🛡️ C504 - Vulnérabilités, Attaques Wi-Fi et Sécurité Active Directory
Objectif : Comprendre l'impact de la vulnérabilité historique EternalBlue, maîtriser les techniques d'audit et de défense des réseaux Wi-Fi, et identifier/corriger les mauvaises configurations courantes d'un environnement Active Directory (AD).
1️⃣ La Vulnérabilité EternalBlue (CVE-2017-0144)
EternalBlue est une faille critique qui a profondément marqué l'histoire de la cybersécurité. Elle est le parfait exemple des conséquences désastreuses que peut avoir l'utilisation de protocoles obsolètes combinée à un manque de mises à jour.
- La vulnérabilité : Il s'agit d'une faille d'exécution de code à distance (RCE) présente dans le protocole SMBv1 (Server Message Block), un très vieux protocole de partage de fichiers et d'imprimantes sous Windows.
- L'impact : La faille est redoutable car elle ne nécessite aucune interaction de la part de l'utilisateur (pas de clic sur un lien ou de pièce jointe). Elle permet à un attaquant distant et non authentifié d'injecter des paquets malveillants pour exécuter du code arbitraire avec les privilèges maximum (SYSTEM) sur la machine cible.
- Origine : L'exploit a été initialement découvert et développé en secret par la NSA américaine pour ses propres opérations de cyberespionnage.
- La fuite : Le groupe de hackers "Shadow Brokers" a réussi à dérober cet outil cyber-offensif et l'a publié publiquement sur Internet en avril 2017, le mettant à la disposition de tous les cybercriminels.
- Conséquences mondiales : Cette fuite a ouvert la boîte de Pandore. En mai et juin 2017, elle a permis la propagation de malwares dévastateurs de type "vers", notamment le ransomware WannaCry (qui a paralysé plus de 200 000 PC dans 150 pays, y compris des hôpitaux) et le malware destructeur NotPetya.
- La leçon à retenir : L'ironie de cette crise est que Microsoft avait publié le bulletin de sécurité correctif (MS17-010) en mars 2017, soit un mois avant la fuite. C'est la lenteur des entreprises à appliquer les correctifs (patch management) et leur réticence à désactiver le vieux protocole SMBv1 qui ont rendu cette épidémie possible.
2️⃣ Les Attaques Wi-Fi
Contrairement aux réseaux filaires, les ondes Wi-Fi voyagent dans l'air. N'importe qui se trouvant à portée physique du signal peut écouter ou interférer avec les communications, ce qui rend ces réseaux intrinsèquement vulnérables s'ils sont mal configurés.
Types d'attaques :
- Déni de Service (DoS) : L'attaquant n'a pas besoin d'être connecté au réseau. Il inonde le point d'accès (AP) ou les clients avec des trames de "désauthentification" falsifiées, forçant les utilisateurs légitimes à se déconnecter continuellement ou saturant totalement le matériel.
- Cracking : Consiste à casser les clés de sécurité.
- Sur les réseaux WPA-PSK, cela se fait souvent en capturant le "Handshake" (la poignée de main en 4 temps lors de la connexion légitime d'un utilisateur), puis en réalisant une attaque par dictionnaire (brute-force) hors-ligne pour deviner le mot de passe.
- Les attaquants ciblent aussi souvent le WPS (Wi-Fi Protected Setup), un système de code PIN à 8 chiffres souvent vulnérable au brute-force.
- Evil Twin (Jumeau Maléfique) : L'attaquant crée un faux point d'accès Wi-Fi portant exactement le même nom (SSID) que le réseau légitime de l'entreprise ou du café. Les appareils des victimes s'y connectent automatiquement. L'attaquant peut alors intercepter le trafic en clair ou afficher un faux portail de connexion (Phishing) pour voler des identifiants.
- KARMA / MANA : Une attaque plus sournoise. Nos téléphones crient constamment dans le vide "Es-tu là, réseau de ma Box ?" ou "Es-tu là, réseau du McDo ?". Le routeur malveillant de l'attaquant (comme un Wi-Fi Pineapple) écoute ces requêtes et répond : "Oui, c'est moi !", forçant ainsi l'appareil à se connecter à lui.
Outils et Commandes essentielles :
- Aircrack-ng : La suite couteau suisse du pentest Wi-Fi.
- Écoute et capture des paquets (Mode Monitor) :
airodump-ng wlan0mon. - Cassage d'une clé WPA via un fichier de capture :
aircrack-ng handshake.cap -w wordlist.txt.
- Écoute et capture des paquets (Mode Monitor) :
- MDK4 : Outil puissant pour générer des paquets malveillants, idéal pour tester la résilience d'un réseau.
- Test de déni de service par désauthentification :
mdk4 wlan0mon a -i [MAC] -m.
- Test de déni de service par désauthentification :
- Reaver : L'outil de référence pour automatiser l'exploitation et le brute-force des failles du code PIN WPS.
- Lancement de l'attaque :
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv.
- Lancement de l'attaque :
- Wifiphisher : Automatise la création d'Evil Twins et de fausses pages de connexion (portails captifs) pour tromper les utilisateurs.
- Attaque ciblée :
wifiphisher -aI wlan0 -jI wlan1 -p firmware-upgrade --handshake-capture handshake.pcap.
- Attaque ciblée :
Contre-mesures :
- Passer au standard WPA3 (qui rend les attaques par dictionnaire hors-ligne impossibles) ou utiliser WPA2 avec un mot de passe très long et complexe.
- Désactiver impérativement la fonctionnalité WPS sur tous les routeurs.
- Segmenter le réseau : créer un réseau "Invité" totalement isolé du réseau interne de l'entreprise.
- Déployer des systèmes de détection d'intrusion sans fil (WIDS) pour repérer l'apparition de Jumeaux Maléfiques ou d'attaques DoS.
3️⃣ Sécurité et Mauvaises Configurations d'Active Directory (AD)
L'Active Directory (AD) est l'annuaire central des entreprises sous Windows. Il gère tous les utilisateurs, les ordinateurs et les droits d'accès. S'il tombe, c'est tout le système d'information qui est compromis. C'est donc la cible numéro 1 des attaquants une fois infiltrés sur un réseau.
Vulnérabilités et Configurations à risques :
- Privilèges excessifs : La règle du "moindre privilège" n'est souvent pas respectée. On trouve trop de comptes inutiles dans le groupe "Administrateurs du domaine" (DA). Parfois, les groupes sont tellement imbriqués (le groupe A est dans le groupe B qui est dans le groupe C...) que les administrateurs ne savent même plus qui a réellement les droits d'administration.
- Mots de passe faibles et exposés : Des mots de passe de comptes de services (qui n'expirent jamais) sont parfois faciles à deviner. Pire, on trouve souvent des mots de passe écrits en clair dans des scripts (fichiers .bat, .ps1) ou laissés dans des dossiers partagés accessibles à tous.
- Protocoles obsolètes : L'utilisation de vieux protocoles comme NTLMv1 (vulnérable au relais d'authentification) ou l'usage du LDAP en clair sur le port 389, qui permet à un attaquant d'écouter le réseau pour intercepter des requêtes sensibles.
- Permissions (ACL) mal configurées : Des utilisateurs standards se retrouvent parfois avec des droits de modification sur des objets critiques de l'AD, leur permettant de s'octroyer eux-mêmes des droits d'administrateur.
- Manque d'isolation (Tiering) : Les administrateurs se connectent avec leur compte à haut privilège sur des machines bureautiques standards. Si cette machine est infectée, l'attaquant vole les identifiants administrateur.
Attaques AD courantes :
- Kerberoasting : N'importe quel utilisateur du domaine peut demander un ticket d'accès (TGS) pour un service. L'attaquant demande ce ticket, l'exporte, et tente de casser la signature chiffrée de ce ticket sur sa propre machine (hors-ligne) pour retrouver le mot de passe en clair du compte de service.
- Pass-the-Hash (PTH) : Windows ne stocke pas les mots de passe en clair, mais sous forme d'empreinte cryptographique (Hash NTLM). Le protocole NTLM accepte ce hash comme preuve d'identité valide. L'attaquant n'a donc pas besoin de déchiffrer le hash : il lui suffit de le voler en mémoire (via Mimikatz) et de le "passer" au serveur pour s'authentifier.
- Golden Ticket : L'attaque post-exploitation absolue. Une fois que l'attaquant est devenu administrateur du domaine, il vole la clé maîtresse de l'AD (le hash du compte
krbtgt). Il peut alors forger lui-même de faux tickets d'authentification Kerberos, se donnant un accès indétectable et illimité à n'importe quelle ressource du réseau, même si l'administrateur légitime change son mot de passe.
Outils d'évaluation et d'exploitation :
- PingCastle : Outil français de référence (Blue Team). Il génère un rapport de santé très visuel du domaine, attribue une note de risque et liste les vulnérabilités à corriger en priorité.
- Commande :
PingCastle.exe --healthcheck.
- Commande :
- BloodHound : L'outil favori des pentesters (Red Team). Il collecte toutes les données de l'AD (qui a le droit sur quoi, qui est connecté où) et dessine un immense graphe de relations. Il calcule ensuite automatiquement le chemin le plus court pour passer d'un simple utilisateur standard à un Administrateur du domaine.
- Commande de collecte :
SharpHound.exe --CollectionMethod All.
- Commande de collecte :
- Mimikatz : Le célèbre outil de post-exploitation de Benjamin Delpy. Utilisé pour extraire les mots de passe en clair ou les hashs directement depuis la mémoire RAM (processus LSASS) d'une machine Windows compromise, permettant ainsi les attaques Pass-the-Hash ou la création de Golden Tickets.
Challenge C504 : framework Metasploit, faille EternalBlue, piratage de réseaux Wi-Fi et l'élévation de privilèges sous Linux
📚 Ressources :
- Advanced Wifi scanning with crack-ng : https://www.youtube.com/watch?v=uKZb3D-PHS0
- Audit AD avec Pingcastle : https://www.it-connect.fr/comment-auditer-lactive-directory-avec-pingcastle/
💥 C505. Déni de Service (DoS) et Déni de Service Distribué (DDoS)
Objectif : Comprendre comment les attaquants font "tomber" des serveurs pour les rendre inaccessibles, apprendre à utiliser hping3 pour tester la résilience d'un système, et surtout, savoir comment configurer ses défenses pour encaisser le choc.
1. La théorie : DoS vs DDoS (Le combat de David contre Goliath)
L'objectif principal d'une attaque de déni de service est très simple : rendre un système ou un service totalement indisponible pour les vrais utilisateurs. L'attaquant va chercher à saturer les ressources de sa cible (le processeur, la mémoire, ou la bande passante) jusqu'à ce que la machine plante ou ne puisse plus répondre. Les conséquences pour une entreprise sont directes : interruption de services critiques, perte d'argent et mauvaise image auprès des clients.
Mais il y a une différence de taille selon l'arsenal utilisé :
- Le DoS (Déni de Service classique) : C'est une attaque menée depuis une seule et unique machine. Comme la source est unique, c'est généralement plus facile à repérer et à bloquer (avec un bon pare-feu).
- Le DDoS (Déni de Service Distribué) : C'est le niveau supérieur. L'attaque est orchestrée par un "botnet", c'est-à-dire une armée de milliers d'ordinateurs ou d'objets connectés infectés à travers le monde. C'est un véritable cauchemar à stopper car le trafic malveillant vient de partout en même temps et est dispersé géographiquement.
2. Les 4 grandes tactiques d'attaque
Les pirates utilisent différentes stratégies selon ce qu'ils veulent casser :
- Saturer les tuyaux (Attaques volumétriques) : Le but est de boucher la bande passante du réseau en envoyant une tonne de requêtes inutiles, comme un Ping flood (requêtes ICMP ou UDP).
- Épuiser le serveur (Épuisement de ressources) : Ici, on vise le cœur de la machine. On envoie des requêtes spécifiques (comme HTTP Flood ou Slowloris) qui forcent le serveur à consommer toute sa mémoire RAM ou son CPU.
- Casser l'application (Couche application) : On cible une fonctionnalité très lourde à calculer pour le serveur, comme en le bombardant de requêtes de recherche complexes (SQL) ou de requêtes DNS.
- Effet boule de neige (Amplification) : L'attaquant envoie une petite requête trompeuse à un serveur légitime sur internet (ex: un serveur d'heure NTP). Ce serveur, croyant répondre à la victime, lui renvoie une réponse énorme. Le trafic est amplifié.
Comment repérer qu'on se fait attaquer ?
- Le trafic réseau explose soudainement sans raison.
- Le site web devient extrêmement lent, puis totalement inaccessible.
- Les ressources du serveur (CPU, RAM, espace disque) sont dans le rouge.
- On observe des connexions venant de dizaines d'IP bizarres et inconnues.
3. Côté Red Team : Simuler l'attaque avec hping3
Pour tester si un serveur tient la charge, l'outil de référence sous Linux est hping3. Il permet de forger des paquets sur mesure.
-
Le déluge de Ping (ICMP Flood) : Envoie massivement de gros paquets pour saturer la connexion.
hping3 --flood -d 65495 --icmp <IP_de_la_cible> -
La saturation des connexions (TCP SYN Flood) : On lance des milliers de demandes de connexion au serveur web (port 80) sans jamais les terminer. Le serveur attend dans le vide et sature.
hping3 -d 65495 --syn --flood <IP_de_la_cible> -p 80 -
Le bombardement aveugle (UDP Flood) : Très efficace pour saturer des services comme le DNS (port 53).
hping3 --flood --udp -d 65495 <IP_de_la_cible> -p 53 -
L'attaque bas niveau (RAW IP Flood) : On envoie des paquets bruts directement sur la couche IP.
hping3 --flood --rawip -d 65495 <IP_de_la_cible>
4. Côté Blue Team : Mettre en place les boucliers
Face à ces attaques, il faut combiner plusieurs couches de protection :
1. Verrouiller la configuration (Contre le DoS) :
- Toujours surveiller son trafic réseau et ses ressources en temps réel pour voir venir la vague.
- Configurer les firewalls pour bloquer les requêtes malveillantes et utiliser le Rate Limiting (limiter le nombre de connexions par adresse IP).
- Côté développeurs : optimiser le code de l'application (éviter les requêtes trop lourdes) et limiter la taille des fichiers que les utilisateurs peuvent uploader.
2. Encaisser le choc (Contre le DDoS) :
- Faire appel à des professionnels : utiliser des boucliers spécialisés de protection dédiés comme Cloudflare ou Akamai.
- Mettre le site derrière un CDN (Content Delivery Network). Le réseau mondial du CDN absorbera le trafic à la place du petit serveur de l'entreprise.
- Utiliser des systèmes de détection et prévention automatiques (IDS/IPS) pour analyser le trafic et bloquer les flux suspects.
3. Prévoir le pire (Résilience) :
- Avoir une infrastructure capable de grossir automatiquement et configurer des systèmes de redondance pour répartir la charge sur plusieurs serveurs.
- Préparer un plan de réponse aux incidents pour que l'équipe sache exactement quoi faire quand l'attaque commence.
- S'entendre avec son Fournisseur d'Accès Internet (FAI) pour qu'il filtre le mauvais trafic avant même qu'il n'arrive sur votre réseau.
📚 Ressources :