← FormationCertifIT CEH Formation
Accueil
Cours ▾
🟢 Débutant 🟡 Intermédiaire 🔴 Expert
Terminal Quiz Examen blanc Objectifs Schémas Flashcards Fiches
Niveau Débutant

Fondamentaux du Ethical Hacking

Les bases indispensables : reconnaissance, scan et énumération des cibles

  • 01

    Fondamentaux de l'Éthique Hacking

    Principes, lois, cadres légaux et méthodologie du pentest

    ▼
    • ✓ Qu'est-ce qu'un Ethical Hacker ? Rôles et responsabilités Facile
    • ✓ Types de hackers : White Hat, Black Hat, Grey Hat, Red/Blue Team Facile
    • ✓ Cadre légal : autorisation, Chartes d'engagement, RGPD Moyen
    • ✓ Normes et certifications : CEH, OSCP, PTES, OWASP Facile
    • ✓ Méthodologie de pentest en 5 phases (PTES) Moyen
    • ✓ Éthique professionnelle et Code of Ethics EC-Council Facile
    • ✓ Configuration du lab : VirtualBox, VMs cibles (Metasploitable, DVWA) Moyen
    • ✓ Introduction à Kali Linux et ses outils principaux Facile

    🔍 Comprendre l'Hacking Éthique en Profondeur

    Un ethical hacker est un expert en sécurité qui teste les systèmes avec une autorisation écrite préalable, dans le but légal et éthique de découvrir les failles avant que des attaquants malveillants ne les exploitent. La différence fondamentale avec un « black hat » réside dans le consentement et la portée (scope) définis contractuellement.

    Pourquoi c'est important : En mission, le client exige une preuve d'autorisation écrite avant le moindre test : sans scope signé, un simple ping peut relever de l'article 323-1 du Code pénal. Le SOC, lui, classe tout incident selon que l'action était autorisée ou non.
    L'analogie qui aide : Un serrurier avec un mandat du propriétaire : il ouvre la porte légalement, documente chaque étape et referme derrière lui. Sans mandat, le même geste devient une effraction.

    Il existe trois grandes catégories d'acteurs :

    • White Hat : agit légalement, avec autorisation, dans un objectif défensif (le cas du CEH).
    • Black Hat : agit illégalement, sans autorisation, à des fins malveillantes (vol de données, extorsion).
    • Grey Hat : mélange — accède parfois sans autorisation mais sans intention malveillante (zone grise juridique).

    Red Team simule des attaques réelles ; Blue Team défend et répond ; Purple Team fusionne les deux pour améliorer la détection.

    Cadre légal : en France, l'intrusion dans un système sans autorisation est punie par le Code pénal (art. 323-1, jusqu'à 5 ans de prison). Toute action de pentest doit être couverte par un contrat d'autorisation et respecter le RGPD. Le code de déontologie EC-Council exige de ne jamais causer de dommage et de toujours informer le client.

    📋 Méthodologie de Pentest (PTES)

    Le processus CEH/PTES se déroule en 5 phases systématiques :

    • 1. Reconnaissance (Footprinting) : collecte d'informations sur la cible (OSINT, WHOIS, DNS).
    • 2. Scanning : découverte active des hôtes, ports, services et vulnérabilités.
    • 3. Gain d'accès : exploitation des failles pour pénétrer le système.
    • 4. Maintien de l'accès : persistance, pivoting vers d'autres machines.
    • 5. Effacement des traces : nettoyage des logs pour éviter la détection (dans le cadre autorisé).
    Méthodologie complémentaire : l'ISO 27001 / NIST 800-115 décrivent aussi des cadres (Préparation, Évaluation, Rapport). Un rapport final documente chaque étape, vulnérabilité trouvée, risque et recommandation.

    🛠️ Mise en Place du Laboratoire

    Pour pratiquer en toute légalité, montez un environnement isolé (VirtualBox / VMware) :

    • Attaquant : Kali Linux (outils offensifs préinstallés).
    • Cibles vulnérables : Metasploitable 2/3 (Linux), DVWA / OWASP WebGoat (web), Windows XP/Win7 (legacy, réseau NAT isolé uniquement).
    • Réseau : mode « Host-Only » ou « NAT » pour ne jamais exposer vos VM à Internet.
    • Outils essentiels Kali : nmap, metasploit, wireshark, burpsuite, hydra, sqlmap, john, aircrack-ng.
    # Vérifier l'environnement Kali
    kali@kali:~$ uname -a
    Linux kali 6.x... #1 SMP PREEMPT ...
    kali@kali:~$ ip a            # Adresses réseau
    kali@kali:~$ cat /etc/issue  # Version de la distribution
    Démonstration pas à pas : Travaillez uniquement en lab isolé (VirtualBox en Host-Only). Étape 1 : vérifiez le contrat de mission et le périmètre. Étape 2 : démarrez Kali et la cible Metasploitable 2 hors réseau. Étape 3 : lancez uname -a puis ip a pour valider l'environnement avant tout test.
    Pièges classiques : Piège CEH 312-50 : confondre Grey Hat et White Hat. Le Grey Hat agit sans autorisation, même avec de bonnes intentions, et reste hors la loi. Erreur d'outil : lancer nmap sur une IP publique sans autorisation.
    À vous de jouer : Un collègue vous demande de tester le site de son entreprise sans papier signé. Que faites-vous ?
    Voir la réponse

    Vous refusez et exigez une autorisation écrite précisant le périmètre et la durée. En France, l'accès sans autorisation est puni par l'article 323-1, même en lab cela s'apprend : toujours Host-Only ou NAT isolé.

  • 02

    Reconnaissance

    OSINT, footprinting, collecte d'informations passive et active

    ▼
    • ✓ Reconnaissance passive : OSINT, WHOIS, DNS, Wayback Machine Facile
    • ✓ Reconnaissance active : ping, traceroute, banner grabbing Moyen
    • ✓ Footprinting avec theHarvester, Recon-ng, Shodan Moyen
    • ✓ Google Dorks et recherche avancée (site:, filetype:, inurl:) Facile
    • ✓ Social Engineering pour la reconnaissance (LinkedIn, réseaux sociaux) Moyen
    • ✓ Maltego : analyse de relations et cartographie d'infrastructure Difficile
    • ✓ WHOIS, ARIN, RIPE : informations sur les propriétaires IP Facile
    • ✓ Rapport de reconnaissance : structuration et documentation Moyen

    🔍 Reconnaissance Passive vs Active

    La reconnaissance (ou footprinting) constitue la première phase de toute méthodologie de pentest. Elle consiste à collecter un maximum d'informations sur la cible avant même de l'attaquer. On distingue deux approches fondamentales :

    Pourquoi c'est important : En mission, commencer par du passif (OSINT) évite d'alerter le SOC adverse avant d'avoir cartographié la cible. Un ping prématuré laisse une trace dans les logs et fait perdre l'effet de surprise autorisé par le contrat.
    L'analogie qui aide : Observer une maison depuis la rue et les annonces publiques, sans toucher la poignée de la porte. Le jour où vous frappez (ping), le propriétaire sait que vous êtes là.
    • Reconnaissance passive : l'attaquant n'établit aucun contact direct avec la cible. Toutes les informations sont collectées via des sources tierces : moteurs de recherche, bases WHOIS, archives web, bases de données publiques. La cible ne peut absolument pas détecter cette activité. C'est l'approche la plus sûre et la plus utilisée en phase initiale.
    • Reconnaissance active : l'attaquant contacte directement la cible (ping, traceroute, banner grabbing, requêtes DNS). La cible peut théoriquement détecter ces actions à travers ses logs. Cette approche fournit des informations plus précises mais expose l'attaquant.
    Point clé examen CEH : la reconnaissance passive est toujours recommandée en première étape car elle ne laisse aucune trace côté cible. Un bon pentester commence toujours par l'OSINT avant toute interaction directe.

    📋 OSINT : WHOIS, DNS et RIRs

    WHOIS permet de retrouver le propriétaire d'un nom de domaine ou d'une plage d'adresses IP. Les informations WHOIS incluent le registrant, le registrar, les dates de création/expiration, et les serveurs DNS de nom. Les RIRs (Regional Internet Registries) gèrent l'allocation des adresses IP par région : ARIN (Amérique du Nord), RIPE NCC (Europe, Moyen-Orient), APNIC (Asie-Pacifique), LACNIC (Amérique latine) et AFRINIC (Afrique).

    Les enregistrements DNS essentiels à interroger :

    • A : adresse IPv4 associée au domaine
    • AAAA : adresse IPv6 associée
    • MX : serveurs de messagerie (révèle l'infrastructure email)
    • NS : serveurs de noms (indique l'hébergement DNS)
    • TXT : enregistrements texte (SPF, DKIM, vérifications de propriétés)
    • CNAME : alias vers un autre domaine
    ### WHOIS - Informations sur le propriétaire
    kali@kali:~$ whois example.com
    kali@kali:~$ whois 203.0.113.50
    
    ### DNS - Requêtes ciblées
    kali@kali:~$ dig example.com A
    kali@kali:~$ dig example.com MX
    kali@kali:~$ dig example.com NS
    kali@kali:~$ dig example.com TXT
    kali@kali:~$ dig example.com ANY +noall +answer
    
    ### nslookup - Alternative rapide
    kali@kali:~$ nslookup -type=MX example.com
    kali@kali:~$ nslookup -type=NS example.com
    Démonstration pas à pas : Comparez en lab isolé. Étape 1 (passive) : whois example.com et dig example.com MX sans toucher la cible web. Étape 2 (active) : ping -c 2 puis traceroute vers votre VM cible autorisée. Étape 3 : constatez que seule l'étape 2 apparaît dans les logs de la cible.
    Point clé examen CEH : les enregistrements TXT révèlent souvent des informations critiques comme les serveurs autorisés à envoyer des emails (SPF) et les clés DKIM, ce qui peut servir à préparer des attaques par phishing ciblé.

    🌐 Wayback Machine et Archives Web

    La Wayback Machine (archive.org) conserve des captures snapshot de sites web depuis 1996. C'est un outil puissant pour la reconnaissance passive car elle permet de découvrir d'anciennes versions d'un site, des pages supprimées, des structures d'URL anciennes, et parfois des informations qui n'auraient jamais dû être publiques. On peut l'utiliser via l'interface web ou en ligne de commande.

    ### Wayback Machine CLI
    kali@kali:~$ waybackurls example.com > wayback_results.txt
    kali@kali:~$ cat wayback_results.txt | head -50
    
    ### Exemple via l'API web
    https://web.archive.org/web/20240101*/example.com

    🔎 Google Dorks : Recherche Avancée

    Les Google Dorks (opérateurs de recherche avancée) exploitent la syntaxe de Google pour trouver des informations sensibles indexed publiquement. C'est l'une des techniques OSINT les plus puissantes pour la phase de reconnaissance passive.

    • site: restreint la recherche à un domaine — site:example.com
    • filetype: cible un type de fichier spécifique — filetype:pdf site:example.com
    • inurl: recherche dans les URL — inurl:admin site:example.com
    • intitle: recherche dans les titres — intitle:"index of" "parent directory"
    • intext: recherche dans le contenu — intext:"password" site:example.com
    ### Exemples de Google Dorks puissants
    site:example.com filetype:pdf
    site:example.com filetype:sql
    site:example.com inurl:admin
    site:example.com intitle:"index of" "parent directory"
    site:example.com filetype:env
    site:example.com inurl:login intext:"password"
    site:example.com filetype:doc OR filetype:xls confidential
    allinurl:admin upload site:example.com
    Point clé examen CEH : Google Dorks est une technique 100% passive et 100% légale (tant que les résultats sont publics). L'examen CEH teste fréquemment la connaissance de ces opérateurs.

    🛠️ theHarvester : Collecte d'Emails et Sous-domaines

    theHarvester est un outil OSINT qui recherche des emails, des noms d'hôtes, des sous-domaines et des adresses IP publics associés à un domaine cible. Il interroge plusieurs sources : moteurs de recherche (Google, Bing, Yahoo), des services DNS, Shodan et des sources spécialisées. C'est un incontournable de la phase de reconnaissance passive.

    ### theHarvester - Collecte complète
    kali@kali:~$ theHarvester -d example.com -b google,bing,linkedin -l 200
    
    ### Sources disponibles
    kali@kali:~$ theHarvester -d example.com -b all -f report.html
    
    ### Limites et options
    kali@kali:~$ theHarvester -d example.com -b google -l 100 -c
    # -c : utilise des requêtes DNS brute-force en plus
    # -f : génère un rapport HTML/XML

    🔍 Shodan : Moteur de Recherche d'Appareils

    Shodan (shodan.io) est un moteur de recherche spécialisé dans les appareils connectés à Internet : serveurs, caméras IP, routeurs, systèmes SCADA/IoT, bases de données exposées. Contrairement à Google, Shodan indexe les banner de services (pas le contenu web). L'interface web permet des filtres puissants, et la clé API permet l'automatisation.

    ### Shodan via l'interface web (recherche avancée)
    # Trouver des caméras exposées :
    webcam has_screenshot:true
    
    # Trouver des bases de données MySQL exposées :
    port:3306 "MySQL" country:FR
    
    # Via API avec shodan CLI :
    kali@kali:~$ shodan init VOTRE_CLE_API
    kali@kali:~$ shodan search "apache 2.4.49" --filename banner.txt
    kali@kali:~$ shodan host 203.0.113.50
    Point clé examen CEH : Shodan peut révéler des services exposés involontairement sur Internet (bases de données, panneaux d'administration, caméras). Un pentester l'utilise pour identifier la surface d'attaque de sa cible.

    🗺️ Maltego : Cartographie de Relations

    Maltego est un outil d'analyse de renseignement (OSINT) qui présente les informations sous forme de graphes de relations (entités connectées). Il utilise des « transforms » pour extraire automatiquement des données depuis diverses sources (WHOIS, DNS, DNSGrep, Twitter, etc.). La version communautaire (Maltego CE) est gratuite et suffisante pour débuter. L'outil permet de cartographier visuellement l'infrastructure d'une cible : domaines, sous-domaines, IP, emails, employés, technologies utilisées.

    ⚙️ Recon-ng : Framework Modulaire OSINT

    Recon-ng est un framework de reconnaissance complet, similaire à Metasploit mais dédié à l'OSINT. Il dispose d'une architecture modulaire avec des « modules » pour chaque source de données (WHOIS, Shodan, Google, etc.) et des « spools » pour exporter les résultats. Il est particulièrement efficace pour automatiser la collecte d'informations sur de multiples cibles.

    ### Recon-ng - Installation et utilisation
    kali@kali:~$ recon-ng
    [recon-ng][default] > workspace create myproject
    [recon-ng][default][myproject] > marketplace install recon/domains-hosts/google_site_web
    [recon-ng][default][myproject] > modules load recon/domains-hosts/google_site_web
    [recon-ng][default][myproject][google_site_web] > info
    [recon-ng][default][myproject][google_site_web] > options set SOURCE example.com
    [recon-ng][default][myproject][google_site_web] > run
    
    ### Export des résultats
    [recon-ng][default][myproject] > db insert domains
    [recon-ng][default][myproject] > show hosts
    Point clé examen CEH : Recon-ng est souvent comparé à Metasploit pour sa structure modulaire. Maîtriser l'installation de modules depuis le marketplace et l'export de résultats est essentiel pour l'examen CEH.
    Pièges classiques : Piège CEH : dire que la reconnaissance active est indétectable. C'est l'inverse : le passif ne laisse aucune trace côté cible, l'actif est loggé. Erreur d'outil : confondre footprinting et fingerprinting.
    À vous de jouer : Quelle méthode choisir en premier et pourquoi ?
    Voir la réponse

    La passive (OSINT, WHOIS, DNS publics). Elle ne contacte pas directement la cible, donc elle est invisible et toujours légale sur données publiques.

  • 03

    Scan de Réseaux

    Découverte de ports, services, OS fingerprinting et détection de firewalls

    ▼
    • ✓ Types de scan : TCP Connect, SYN, ACK, UDP, NULL, XMAS, FIN Moyen
    • ✓ Nmap en profondeur : -sS, -sT, -sU, -O, -sV, -A, -script Moyen
    • ✓ OS fingerprinting : techniques passives et actives Difficile
    • ✓ Détection de firewalls et IPS/IDS : techniques d'évasion Difficile
    • ✓ Scan de vulnérabilités : Nmap NSE, Nessus, OpenVAS Moyen
    • ✓ Hping3 : scan et test de firewall custom Difficile
    • ✓ Masscan : scan à grande vitesse sur des /16 Moyen
    • ✓ Résultats de scan : interprétation et analyse Facile

    🔍 Le 3-Way Handshake TCP

    Avant de comprendre les types de scan, il faut maîtriser le 3-way handshake TCP, le processus qui établit toute connexion TCP fiable :

    Pourquoi c'est important : Tout diagnostic de scan commence par SYN, SYN-ACK, ACK. En SOC, voir un SYN sans ACK final répété mille fois, c'est la signature d'un scan SYN en cours contre le SI.
    L'analogie qui aide : Trois signes de tête pour entrer dans une salle : vous saluez (SYN), on vous répond (SYN-ACK), vous confirmez (ACK). Si on vous répond non (RST), la porte est fermée ; si personne ne répond, un vigile filtre.
    • Étape 1 — SYN : le client envoie un segment SYN (seq=x) pour demander l'ouverture de la connexion.
    • Étape 2 — SYN-ACK : si le port est ouvert, le serveur répond SYN-ACK (seq=y, ack=x+1).
    • Étape 3 — ACK : le client confirme avec ACK (ack=y+1). La connexion est établie.

    Si le port est fermé, le serveur répond par un paquet RST (Reset). Si un firewall filtre le port, la réponse est simplement absente (timeout). Cette différence de réponse est la base de toute interprétation de scan.

    Point clé examen CEH : SYN → ouvert, RST → fermé, aucune réponse → filtré. C'est LE schéma de base à retenir pour l'examen CEH. Chaque type de scan manipule ces flags différemment pour contourner les filtrages.

    📋 Les Types de Scan et leurs Flags

    • TCP Connect Scan (-sT) : établit la connexion TCP complète via l'appel système connect(). Complet mais bruyant et loggé par la cible. Utilisé quand l'utilisateur n'a pas de privilège root.
    • SYN Scan / Half-Open (-sS) : envoie un SYN puis coupe la connexion après la réponse SYN-ACK (envoi de RST). Aucune connexion complète n'est établie, ce qui est plus furtif. C'est le scan par défaut de Nmap en root.
    • ACK Scan (-sA) : envoie un ACK sans connexion préalable. Aucune réponse (deux fois) = port filtré ; réponse RST = non filtré. Utile pour cartographier les règles du firewall, pas les ports ouverts.
    • FIN Scan (-sF) : envoie un flag FIN seul. Les ports fermés répondent RST, les ports ouverts ignorent le paquet (selon RFC 793). Utile pour contourner les filtres (certains IDS ne loggent pas les FIN).
    • NULL Scan (-sN) : envoie un paquet sans aucun flag. Même logique que FIN : RST = fermé, pas de réponse = ouvert.
    • XMAS Scan (-sX) : envoie tous les flags (FIN, PSH, URG) simultanément, comme un « arbre de Noël ». RST = fermé, silence = ouvert.
    • UDP Scan (-sU) : envoie des datagrammes UDP (ICMP port unreachable = fermé ; réponse UDP = ouvert ; silence = filtré/ouvert). Lent car UDP est sans connexion.
    ### Les principaux scans Nmap
    kali@kali:~$ nmap -sS 203.0.113.50          # SYN half-open (défaut root)
    kali@kali:~$ nmap -sT 203.0.113.50          # TCP Connect complet
    kali@kali:~$ nmap -sA 203.0.113.50          # ACK - détection de filtrage
    kali@kali:~$ nmap -sF 203.0.113.50          # FIN - contournement de filtres
    kali@kali:~$ nmap -sN 203.0.113.50          # NULL - aucun flag
    kali@kali:~$ nmap -sX 203.0.113.50          # XMAS - tous les flags
    kali@kali:~$ nmap -sU 203.0.113.50          # UDP scan (lent)
    Démonstration pas à pas : Observez en lab isolé : lancez nmap -sS contre votre Metasploitable et capturez avec Wireshark (filtre tcp.flags.syn==1). Étape 1 : SYN part. Étape 2 : SYN-ACK = port ouvert, RST = port fermé, silence = filtré. Étape 3 : votre machine envoie RST pour ne pas établir la connexion complète.
    Point clé examen CEH : FIN/NULL/XMAS ne fonctionnent généralement pas contre Microsoft Windows (qui répond toujours par RST). Ces scans sont surtout efficaces contre les systèmes Unix/Linux. L'examen CEH teste cette différence.

    🛠️ Nmap en Profondeur

    Nmap (Network Mapper) est l'outil de scan le plus utilisé au monde. Ses options principales à maîtriser :

    • -O : détection du système d'exploitation (OS fingerprinting actif).
    • -sV : détection des versions des services (ex. OpenSSH 7.6p1).
    • -A : mode agressif = -O + -sV + OS detection + default scripts.
    • -sC : exécute les scripts par défaut (légers et sûrs).
    • -p- : scanne les 65535 ports TCP (tous les ports).
    • --script : exécute des scripts NSE spécifiques (vuln, smb-enum, etc.).
    ### Nmap - Commandes complètes
    kali@kali:~$ nmap -sS -sV -O -v 203.0.113.50
    kali@kali:~$ nmap -A -T4 203.0.113.50       # Agressif
    kali@kali:~$ nmap -sC -sV -p- 203.0.113.50  # Scripts défaits + tous ports
    kali@kali:~$ nmap -sS -p 1-1000 --open 203.0.113.0/24
    kali@kali:~$ nmap --script vuln 203.0.113.50    # Scan de vulnérabilités
    kali@kali:~$ nmap --script smb-enum-shares -p 445 203.0.113.50
    kali@kali:~$ nmap -T4 -F 203.0.113.50           # Fast scan (100 ports)
    Point clé examen CEH : le flag -p- (tous les 65535 ports) est couramment demandé dans l'examen. Retenir que -A combine -O et -sV, et que -sC charge les scripts par défaut du NSE.

    🧩 OS Fingerprinting : Actif et Passif

    L'OS fingerprinting vise à déterminer le système d'exploitation d'une cible. Il existe deux approches :

    • Fingerprinting actif (-O) : envoie des paquets TCP/IP spéciaux (du comportement anormal des flags, des options TCP, TTL, tailles de fenêtre) et analyse les réponses. Précise mais détectable.
    • Fingerprinting passif : analyse les traces laissées par la cible dans le trafic (TTL des paquets, tailles de window, options IP). Utilisé par p0f et Wireshark. Indétectable.
    ### OS Detection Nmap
    kali@kali:~$ nmap -O 203.0.113.50
    # Résultats typiques : "Running: Linux 3.X", "OS CPE: cpe:/o:linux:linux_kernel:3.2"
    
    ### Fingerprinting passif avec p0f
    kali@kali:~$ p0f -i eth0
    # Analyse le trafic sans contacter la cible
    Point clé examen CEH : le fingerprinting actif est detecté facilement, le passif est invisible. La détection OS de Nmap repose sur des signatures de paquets TCP/IP (tests ISN, options TCP, TTL, fenêtre).

    🛡️ Détection et Évasion de Firewalls/IDS

    Les firewalls et IDS/IPS filtrent certain types de paquets. Plusieurs techniques d'évasion existent dans Nmap :

    • Fragmentation (-f) : découpe les paquets en fragments de 8 octets pour contourner les filtres qui scrutent les en-têtes TCP.
    • Timing (-T0 à -T5) : -T0 (paranoïde) envoie les paquets très lentement pour éviter la détection par les IDS ; -T5 (insane) très rapide.
    • Decoys (-D) : envoie les scans depuis de fausses adresses IP (leurres) en plus de la vraie.
    • Source port (--source-port) : force le port source (ex. 53/port DNS) pour contourner certains firewalls qui autorisent le trafic DNS.
    • MTU (--mtu) : définit la taille des fragments (multiple de 8).
    • Source address (-S) : spoofe une adresse source (les réponses ne reviennent alors plus à l'attaquant).
    ### Techniques d'évasion Nmap
    kali@kali:~$ nmap -sS -f 203.0.113.50                    # Fragmentation
    kali@kali:~$ nmap -sS -T0 203.0.113.50                   # Timing paranoïde
    kali@kali:~$ nmap -sS -D 10.0.0.1,10.0.0.2,ME 203.0.113.50   # Decoys (ME = ma vraie IP)
    kali@kali:~$ nmap -sS --source-port 53 203.0.113.50      # Port source DNS
    kali@kali:~$ nmap -sS -g 80 --data-length 32 203.0.113.50   # Port source + bourrage de paquet
    
    ### Hping3 - Scan custom et test de firewall
    kali@kali:~$ hping3 -S -p 80 203.0.113.50               # SYN sur port 80
    kali@kali:~$ hping3 -S -p 80 -c 3 203.0.113.50          # Limiter à 3 paquets
    kali@kali:~$ hping3 -A -p 80 203.0.113.50               # ACK probe
    kali@kali:~$ hping3 -F 203.0.113.50 --scan 1-1000 -S     # Scan multi-ports
    
    ### Masscan - Scan ultra-rapide d'un /16
    kali@kali:~$ sudo masscan 203.0.113.0/16 -p80,443 --rate 1000
    # Rompre en quelques minutes ce que Nmap ferait en heures
    Point clé examen CEH : les decoys (-D) obligent à écrire « ME » pour inclure la vraie adresse dans la liste des leurres. La fragmentation -f est efficace contre les IDS qui ne réassemblent pas les fragments.

    💥 Scan de Vulnérabilités : NSE, Nessus, OpenVAS

    Après l'identification des services, on recherche des vulnérabilités connues (CVE) sur les versions détectées. Trois approches complémentaires :

    • Nmap NSE (--script) : le moteur de scripts intégré à Nmap. Le script « vuln » teste rapidement les failles connues ; des scripts spécifiques couvrent SMB, SMTP, MySQL, HTTP, etc.
    • Nessus (Tenable) : scanner commercial de référence, extrêmement complet. Génère des rapports détaillés avec risque (Critical/High/Medium/Low) et recommandations de remédiation.
    • OpenVAS (Greenbone) : alternative open source à Nessus, basé sur le NVT (Network Vulnerability Tests) et embarquant un gestionnaire de vulnérabilités.
    ### Nmap NSE - Scan de vulnérabilités
    kali@kali:~$ nmap --script vuln 203.0.113.50
    kali@kali:~$ nmap -sV --script http-enum 203.0.113.50
    kali@kali:~$ nmap -p 445 --script smb-vuln-* 203.0.113.50
    kali@kali:~$ nmap -sV --script mysql-info -p 3306 203.0.113.50
    
    ### Liste des scripts NSE
    kali@kali:~$ ls /usr/share/nmap/scripts/ | head -20
    kali@kali:~$ nmap --script-help http-enum
    
    ### OpenVAS / Nessus (interface graphique)
    # Démarrage du service :
    kali@kali:~$ sudo gvm-start    # OpenVAS
    kali@kali:~$ sudo nessusd      # Nessus
    # Ensuite configurer la cible, le type de scan et lancer l'audit.
    Point clé examen CEH : Nessus attribue un score de risque (Critical, High, Medium, Low) aux vulnérabilités détectées. Nmap NSE « vuln » est plus léger et suffit pour une première passe rapide.

    📊 Interprétation des Résultats

    # Exemple de sortie Nmap standard :
    PORT     STATE    SERVICE    VERSION
    22/tcp   open     ssh        OpenSSH 7.6p1 Ubuntu 4ubuntu0.7
    80/tcp   open     http       Apache httpd 2.4.29
    443/tcp  open     https      Apache httpd 2.4.29
    445/tcp  filtered microsoft-ds   <-- port filtré par firewall
    1000/tcp closed   tcpwrapped
    • open : le port accepte les connexions, un service écoute.
    • filtered : le firewall bloque ou le paquet est perdu (aucune réponse).
    • unfiltered : le port répond RST ACK mais l'état est inconnu (scans ACK).
    • closed : le port répond RST mais aucun service ne se trouve derrière.
    Point clé examen CEH : un port « filtered » signifie qu'un firewall intercepte, un port « open » qu'un service écoute et qu'il pourra être énuméré en phase 4. Chaque port ouvert dans un rapport doit être suivi de l'énumération du service correspondant.
    Pièges classiques : Piège CEH : inverser fermé et filtré. RST = fermé, silence = filtré. Erreur : croire que le handshake UDP existe (UDP est sans connexion).
    À vous de jouer : Un port ne répond rien au SYN. Conclusion ?
    Voir la réponse

    Port filtré : un pare-feu bloque ou jette le paquet. Il faudra tester l'évasion ou l'énumération par un autre vecteur autorisé.

  • 04

    Énumération

    Collecte d'informations détaillées : users, shares, services, SNMP, LDAP

    ▼
    • ✓ Énumération NetBIOS/SMB : nbtstat, net view, smbclient Moyen
    • ✓ Enum4linux et SMBMap : extraction complète d'infos AD Moyen
    • ✓ Énumération SNMP : snmpwalk, snmp-check, community strings Difficile
    • ✓ Énumération LDAP : ldapsearch, ldapenum, annuaire Active Directory Difficile
    • ✓ Énumération DNS : zone transfers, subdomain brute-force Moyen
    • ✓ Énumération des utilisateurs : Hydra, Metasploit aux modules Moyen
    • ✓ Énumération NFS, RPC, NTP : techniques et outils Difficile
    • ✓ Rapport d'énumération : synthèse des découvertes Moyen

    🔍 Qu'est-ce que l'Énumération ?

    L'énumération est la deuxième phase active du pentest (après le scan). Elle consiste à extraire activement des informations détaillées d'un système cible : noms d'utilisateurs, partages réseau, groupes, politiques de compte, versions de services, annuaire. Elle est « active » car elle crée une connexion réelle avec les services de la cible. Contrairement au scan (qui identifie le port), l'énumération interroge le service derrière le port pour en soutirer le maximum d'informations exploitables lors de la phase d'exploitation.

    Pourquoi c'est important : Le scan donne des ports, l'énumération donne des noms d'utilisateurs et des partages : sans elle, l'exploitation est aveugle et le rapport reste une simple liste de ports.
    L'analogie qui aide : Après avoir repéré les tiroirs (ports), on les ouvre et on lit les étiquettes (utilisateurs, partages, politiques) au lieu de forcer au hasard.
    Point clé examen CEH : l'énumération est le trait d'union entre le scan et l'exploitation. Un port ouvert sans énumération ne fournit aucune donnée d'exploitation ; l'énumération transforme une liste de ports en cible exploitable. Les deux types d'infos les plus précieux sont les noms d'utilisateurs et les partages accessibles.

    📋 Énumération NetBIOS/SMB (Ports 137, 139, 445)

    NetBIOS est un protocole historique de partage de fichiers (Windows) au-dessus de TCP/UDP ; SMB (Server Message Block) est le protocole de partage qui a évolué sur le port 445. Ces services exposent souvent des noms de machine, noms d'utilisateur et partages accessibles sans authentification. Les outils classiques :

    • nbtstat -a : affiche la table NetBIOS d'une machine distante (nom, type de service, utilisateur).
    • net view : liste les partages et ressources partagées d'une machine.
    • smbclient -L : liste les partages SMB disponibles sur une cible.
    ### Énumération NetBIOS/SMB
    kali@kali:~$ nbtstat -a 203.0.113.50            # Table NetBIOS distante
    kali@kali:~$ net view \\\\203.0.113.50          # Partages visibles
    kali@kali:~$ smbclient -L //203.0.113.50        # Liste des partages SMB
    kali@kali:~$ smbclient //203.0.113.50/share -N  # Connecter un partage sans mot de passe
    
    ### Test de connexion anonyme (null session)
    kali@kali:~$ smbclient -L //203.0.113.50 -U "" -N
    # Si Anonymous/FORCE_VALID  -> partage 100% accessible en null session
    Démonstration pas à pas : Déroulé : après nmap -sV, listez les services (SMB 445, SNMP 161, LDAP 389). Interrogez chacun avec une connexion réelle (smbclient, snmpwalk, ldapsearch). Notez utilisateurs et partages anonymes : ce sont les premières cibles autorisées.
    Point clé examen CEH : le port 445 (SMB) remplace 139 (NetBIOS) sur les Windows modernes. Les « null sessions » (connexion sans identifiants) permettent souvent de lister les utilisateurs et partages. Ce sont des cibles quotidiennes pour les tests CEH.

    🐧 Enum4linux : Le Couteau Suisse SMB/AD

    Enum4linux automatise l'extraction de toutes les informations d'une machine Windows/AD via SMB : utilisateurs, groupes, partages, politiques de mot de passe, sessions ouvertes. Idéal pour débuter une énumération complète d'une cible Windows. On commence par une simple requête de partage, puis on remonte toute la hiérarchie.

    ### Enum4linux - Usage complet
    kali@kali:~$ enum4linux -U 203.0.113.50        # Énumérer les utilisateurs
    kali@kali:~$ enum4linux -S 203.0.113.50        # Énumérer les partages
    kali@kali:~$ enum4linux -G 203.0.113.50        # Énumérer les groupes
    kali@kali:~$ enum4linux -P 203.0.113.50        # Politiques de mot de passe
    kali@kali:~$ enum4linux -a 203.0.113.50        # Tout énumérer (all)
    # Sortie typique : [*] Share Enumeration, [+] Name: admin, Index: 1000
    # Politique : Password Info: Password must change every 42 days
    Point clé examen CEH : le flag -a (tout énumérer) est le réflexe du CEH débutant : il lance toutes les énumérations SMB possibles en une seule commande et fournit le rapport de base de toute analyse Windows.

    🗃️ SMBMap : Cartographie des Partages

    SMBMap permet de parcourir récursivement les partages SMB et de chercher des fichiers sensibles (fichiers de config, scripts, clés). Il vérifie aussi les permissions d'écriture, utiles pour savoir si l'on peut déposer une charge utile. Contrairement à smbclient, il automatise l'inventaire complet sans session interactive.

    ### SMBMap - Énumération avancée des partages
    kali@kali:~$ smbmap -H 203.0.113.50            # Anonyme
    kali@kali:~$ smbmap -H 203.0.113.50 -u utilisateur -p motdepasse
    kali@kali:~$ smbmap -H 203.0.113.50 -r share    # Parcourir récursivement un partage
    kali@kali:~$ smbmap -H 203.0.113.50 -R share -A "config"   # Rechercher fichiers "config"
    kali@kali:~$ smbmap -H 203.0.113.50 --download share/file.txt  # Télécharger un fichier

    🧬 Énumération SNMP (UDP 161/162)

    SNMP (Simple Network Management Protocol) supervise les équipements réseau. Il fonctionne par OIDs (Object Identifiers) organisés dans une hiérarchie MIB. Les community strings sont les « mots de passe » du protocole : public = lecture, private = écriture, souvent par défaut. Un SNMP mal configuré peut révéler la table de routage, les interfaces, les utilisateurs et même les mots de passe de logiciels (Windows SNMP expose parfois le service).

    ### Énumération SNMP
    kali@kali:~$ snmpwalk -v2c -c public 203.0.113.50   # Parcourir toute l'arborescence
    kali@kali:~$ snmpwalk -v2c -c public 203.0.113.50 1.3.6.1.4.1.77.1.2.25   # Utilisateurs Windows
    kali@kali:~$ snmpwalk -v2c -c public 203.0.113.50 1.3.6.1.4.1.77.1.2.25.1.1  # Accès réseau
    kali@kali:~$ snmpcheck 203.0.113.50 -c public -v2c   # Snmp-check automatisé
    kali@kali:~$ snmpget -v2c -c public 203.0.113.50 1.3.6.1.2.1.1.1.0   # SysDescr
    # -v2c : version SNMP, -c : community string
    Point clé examen CEH : les IDs SNMP « 1.3.6.1.4.1.77.1.2.25 » (utilisateurs Windows) sont un classique de l'examen CEH. Retenir que community = « public » en lecture par défaut et que SNMP tourne sur UDP 161 (requêtes) / 162 (traps).

    👤 Énumération LDAP : Annuaire Active Directory

    LDAP (Lightweight Directory Access Protocol) est le protocole d'accès aux annuaires, notamment Active Directory de Microsoft. Port 389 (LDAP) / 636 (LDAPS). Une énumération LDAP permet de lister les utilisateurs, groupes, ordinateurs, unités d'organisation (OU) et les attributs de chaque objet. Si l'annuaire accepte les connexions anonymes, la collecte est immédiate.

    ### Énumération LDAP
    kali@kali:~$ ldapsearch -x -h 203.0.113.50 -b "dc=domaine,dc=com"       # Base entière
    kali@kali:~$ ldapsearch -x -h 203.0.113.50 -b "dc=domaine,dc=com" "(objectClass=user)"  # Utilisateurs
    kali@kali:~$ ldapsearch -x -h 203.0.113.50 -b "dc=domaine,dc=com" "(objectClass=user)" sAMAccountName
    kali@kali:~$ ldapsearch -x -h 203.0.113.50 -b "dc=domaine,dc=com" "(objectClass=computer)" dNSHostName
    # -x : simple bind, -h : hôte, -b : base DN, filtre LDAP = (objectClass=...)
    Point clé examen CEH : dans Active Directory, la base DN suit la forme dc=domaine,dc=extension. Le filtre (objectClass=user) permet de lister les utilisateurs, (objectClass=computer) les postes — autant de cibles pour l'exploitation ultérieure.

    🌍 Énumération DNS : Zone Transfers et Sous-domaines

    Les zone transfers (AXFR) permettent de copier toute la zone DNS d'un serveur de noms : c'est LA faille classique d'énumération DNS. Si le serveur n'est pas correctement configuré, il renvoie la liste complète des sous-domaines. Les brute-force de sous-domaines (dnsrecon, sublist3r) complètent cette approche en devinant les noms communs contre sa liste de dictionnaire.

    ### Zone transfer avec dig
    kali@kali:~$ dig example.com AXFR @ns1.example.com   # Tentative de transfert de zone
    kali@kali:~$ dig axfr example.com @203.0.113.53       # Si succès : TOUTE la zone est exposée
    
    ### dnsrecon - Reconnaissance DNS complète
    kali@kali:~$ dnsrecon -d example.com -t axfr          # Tentative de zone transfer
    kali@kali:~$ dnsrecon -d example.com -D /usr/share/wordlists/domains.txt -t brt     # Brute-force
    kali@kali:~$ dnsrecon -d example.com -a               # Tout récupérer
    
    ### sublist3r - Énumération de sous-domaines via les sources OSINT
    kali@kali:~$ sublist3r -d example.com
    kali@kali:~$ sublist3r -d example.com -b             # Silence, sans bannière
    Point clé examen CEH : si un dig AXFR aboutit, toutes les cartes DNS de la cible sont données : sous-domaines de périmètre, serveurs Internes, etc. C'est une vulnérabilité récurrente dans les questions d'examen CEH.

    🔑 Énumération d'Utilisateurs : RPC, Hydra

    Les services RPC (rpcclient via MSRPC) permettent de valider la présence de comptes sans les attaquer. Hydra automatise le brute-force de connexion (SSH, RDP, SMB, HTTP) en combinant dictionnaires d'utilisateurs et de mots de passe. Les noms d'utilisateurs énumérés précédemment deviennent les « mots clés » d'entrée.

    ### rpcclient - Énumération d'utilisateurs via MSRPC
    kali@kali:~$ rpcclient -U "" -N 203.0.113.50      # Session anonyme
    rpcclient $> enumdomusers                       # Liste des utilisateurs du domaine
    rpcclient $> enumdomgroups                      # Liste des groupes
    rpcclient $> queryuser 1002                     # Détails d'un utilisateur spécifique
    rpcclient $> getdompwinfo                       # Politiques de mot de passe
    
    ### Hydra - Brute-force de connexions
    kali@kali:~$ hydra -L users.txt -P pass.txt ssh://203.0.113.50 -t 4
    kali@kali:~$ hydra -L users.txt -P pass.txt smb://203.0.113.50
    kali@kali:~$ hydra -l admin -P pass.txt http-get://203.0.113.50/admin
    kali@kali:~$ hydra -L users.txt -P pass.txt rdp://203.0.113.50
    # -L : fichier de logins, -P : fichier de mots de passe, -t : threads
    Point clé examen CEH : l'énumération des utilisateurs avec rpcclient (enumdomusers) est souvent le prérequis avant Hydra : on cible uniquement les noms trouvés, ce qui réduit drastiquement le bruit et le temps de brute-force. Politique de mot de passe = on adapte le dictionnaire.

    🖥️ NFS/RPC et NTP

    Le partage de fichiers Unix NFS (port 2049) est contrôlé par le démon rpcbind (port 111). showmount -e liste les partages NFS exportés : si une exportation est permissive (no_root_squash, world-readable), elle peut être montée directement. Le serveur NTP (port 123) et l'outil ntpq servent à la synchronisation mais aussi à l'énumération (liste de pair, informations de statut).

    ### Énumération NFS/RPC
    kali@kali:~$ showmount -e 203.0.113.50            # Liste des exports NFS
    # Sortie : Export list for 203.0.113.50 : /home (everyone)
    kali@kali:~$ sudo mkdir -p /mnt/nfs
    kali@kali:~$ sudo mount -t nfs 203.0.113.50:/home /mnt/nfs
    kali@kali:~$ ls -la /mnt/nfs                      # Explorer le contenu monté
    
    ### rpcinfo - Inventaire des services RPC
    kali@kali:~$ rpcinfo -p 203.0.113.50              # Lister les ports/services RPC
    
    ### Énumération NTP
    kali@kali:~$ ntpq -c peers 203.0.113.50           # Liste des pairs (serveurs NTP)
    kali@kali:~$ ntpdc -c monlist 203.0.113.50        # Liste des clients ayant interrogé (souvent indexé)
    kali@kali:~$ ntptrace 203.0.113.50                # Trace la chaîne NTP
    Point clé examen CEH : une export NFS du type /home (everyone) est montable par tout le monde. Un « showmount -e » qui répond expose immédiatement toute l'arborescence partagée. L'option « no_root_squash » sur une exportation est une porte d'entrée vers un accès root (DoS potentiel selon l'examen).

    📝 Synthèse et Rapport d'Énumération

    Chaque découverte d'énumération doit être consignée dans un rapport structuré : hôte, service, port, données extraites, et impact potentiel. Communication de l'information et traçabilité sont des exigences du code de conduite CEH. On note aussi quels comptes/partages sont accessibles anonymement : ce sont les premières portes d'entrée.

    # Modèle de rapport d'énumération
    # | Hôte           | Service | Port | Données extraites                     | Impact        |
    # | 203.0.113.50   | SMB     | 445  | partage DATA accessible en null session| Lecture donnée ftp |
    # | 203.0.113.10   | LDAP    | 389  | bind anonyme = 286 utilisateurs AD     | Brute-force possible |
    # | 203.0.113.10   | SNMP    | 161  | community public | info système/réseaux | DoS, récolte |
    Pièges classiques : Piège CEH : dire que l'énumération est passive. Elle est active : elle établit une connexion réelle et est loggée. Erreur : sauter l'énumération et brute-forcer directement.
    À vous de jouer : Quelle donnée a le plus de valeur après un scan ?
    Voir la réponse

    Les noms d'utilisateurs valides et les partages accessibles anonymement : ils conditionnent Hydra, rpcclient et l'accès initial.

FormationCertifIT CEH Formation

Formation EC-Council Certified Ethical Hacker complète.

Parcours

  • Débutant
  • Intermédiaire
  • Expert

Pratique

  • Terminal Pentest
  • Quiz CEH
  • Flashcards
  • Fiches

Ressources

  • Documentation CEH

EC-Council CEH Formation © 2026 — Créé par Horizon 5 — www.horizon5.org

Horizon 5 est un organisme de formation indépendant, sans affiliation ni approbation des éditeurs de certifications cités. Les examens officiels sont passés séparément auprès des organismes certificateurs.