Sommaire
Préface — Bienvenue dans la Formation
IntroductionÀ qui s'adresse ce Cours
- Ce programme s'adresse à des informaticiens ayant déjà les bases en réseau et systèmes d'exploitation — il ne réexplique pas TCP/IP ou les commandes Linux de base.
- Objectif : passer d'une compréhension théorique de la sécurité à une pratique concrète du test d'intrusion, étape par étape.
Comment le Cours est Structuré
- 14 chapitres, du renseignement initial jusqu'aux fondations de la sécurité web et mobile.
- Chaque chapitre suit la même logique : concepts, démonstrations pratiques, puis une synthèse sous forme de checklist méthodologique.
- Les commandes montrées sont à exécuter uniquement dans l'environnement de labo isolé prévu pour ce cours.
Qu'est-ce qu'un Test d'Intrusion (Pentest) ?
IntroductionDéfinition
- Simulation autorisée d'une cyberattaque réelle, menée pour identifier des vulnérabilités et démontrer concrètement leur exploitabilité avant qu'un attaquant malveillant ne le fasse.
- Toujours encadré par un mandat écrit précisant le périmètre exact, les dates et les limites de l'intervention.
En quoi ça Diffère d'un Simple Scan
- Un scanner automatisé liste des failles potentielles ; un pentest va plus loin en tentant de les exploiter réellement, pour distinguer le risque théorique du risque réel.
- Implique une réflexion méthodologique humaine : chaînage de plusieurs faiblesses mineures pour obtenir un impact significatif, ce qu'un outil automatisé ne fait pas seul.
Le Rôle du Pentester
Rôle & ÉthiqueCe que Fait un Pentester
- Reproduit le comportement d'un attaquant réel, mais dans un cadre légal et contractuel strict.
- Documente chaque étape de sa démarche — pas seulement le résultat final, mais aussi la méthode suivie pour y parvenir.
- Restitue ses constats sous forme de rapport actionnable, compréhensible par des interlocuteurs techniques et non-techniques.
Responsabilités Non-Négociables
- Toujours agir strictement dans le périmètre autorisé par le mandat écrit — jamais au-delà, même si l'occasion se présente.
- Ne jamais causer de dommage évitable au système testé (pas de tests destructifs non validés au préalable).
- Protéger la confidentialité de toute donnée sensible rencontrée pendant la mission.
- Se tenir à jour techniquement : les vulnérabilités, outils et techniques évoluent en permanence.
Sommaire du Cours
SommairePartie 1 — Méthodologie & Reconnaissance
- Ch. 1 — Information Gathering & Service Enumeration
- Ch. 2 — Footprinting & Scanning
- Ch. 3 — Enumeration
- Ch. 4 — Vulnerability Assessment
- Ch. 5 — Auditing Fundamentals
- Ch. 6 — System/Host Based Attacks
- Ch. 7 — Network-Based Attacks
Partie 2 — Exploitation & Web
- Ch. 8 — The Metasploit Framework (MSF)
- Ch. 9 — Exploitation
- Ch. 10 — Post-Exploitation
- Ch. 11 — Social Engineering
- Ch. 12 — Introduction au Web & Protocole HTTP
- Ch. 13 — Web Application Pentesting
- Ch. 14 — Mobile App Pentest
Chapitre 1 : Information Gathering & Service Enumeration
Info Gathering & EnumerationCollecte d'Informations & Énumération Systèmes
Support officiel de cours pratique : Cartographie d'infrastructure, OSINT, Footprinting réseau, balayage avancé Nmap et énumération approfondie des services SMB, FTP, SSH, HTTP & MySQL.
1. Reconnaissance Passive
OSINT, empreintes web (Wappalyzer, WhatWeb), HTTrack, dorks Google, WHOIS, énumération DNS, sous-domaines et détection WAF.
2. Reconnaissance Active
Transferts de zone DNS, découverte d'hôtes (Ping Sweeps, ARP) et scans de ports Nmap avancés.
3. Service Enumeration
Analyse technique ciblée des ports 21 (FTP), 22 (SSH), 139/445 (SMB), 80/443 (HTTP) et 3306 (MySQL).
Architecture de la Phase d'Information Gathering
Concepts FondamentauxReconnaissance Passive (OSINT)
- Principe : Aucun contact direct ou paquet envoyé aux serveurs de la cible.
- Objectif : Identifier la surface d'attaque globale sans déclencher d'alerte IDS/IPS.
- Sources : Moteurs de recherche, registres publics DNS/WHOIS, archives web, fuites d'identifiants.
Reconnaissance Active
- Principe : Interactions directes avec les équipements et services cibles (TCP/UDP).
- Objectif : Cartographier précisément les hôtes actifs, ports ouverts et versions de services.
- Risque : Génération importante de logs dans les SIEM et alertes de sécurité réseau.
Passive Recon — Web Footprinting (WhatWeb, Wappalyzer & HTTrack)
OSINT / Web1. Empreinte Web via CLI (WhatWeb)
kali@kali:~$ whatweb hackersploit.org http://hackersploit.org [301 Moved Permanently] Country[EU], HTTPServer[cloudflare], IP[188.114.97.7] https://hackersploit.org/ [200 OK] HTML5, HTTPServer[cloudflare], JQuery[3.6.0], PHP[7.4.33], WordPress, X-Powered-By[PHP/7.4.33]
2. Aspiration de Site (HTTrack GUI)
Action: Download web site(s)
Web Addresses (URL): http://target.com
Mirror options: Save structure, images, JS scripts for offline code review.
3. Empreinte Navigateur (Wappalyzer)
- CMS : WordPress
- Analytics : Google Analytics, MonsterInsights 8.10.1
- SEO : Yoast SEO 19.10
- JS Libraries : jQuery 3.6.0, Dojo 1, Modernizr
- Payment : Patreon
Passive Recon — Google Dorking Pratique
OSINT / DorksOpérateurs de Recherche Avancés
site:*.target.com: Restreint la recherche au domaine et sous-domaines.filetype:pdf / docx / xlsx: Cible des extensions de documents spécifiques.intitle:"Index of": Détecte les répertoires web ouverts sans index.html.inurl:login / admin: Localise les portails d'authentification.
# Recherche de documents confidentiels PDF site:*.ine.com filetype:pdf
Résultat d'Exécution Google Dork
[PDF] CCIE Voice Volume II Mock Lab 1 :: Tasks
http://s3.www.ine.com > downloads > IEVO_WB2...
[PDF] Routing & Switching Manual
http://s3.www.ine.com > downloads > routing_swi...
[PDF] eWPT Pre Exam Manual / Walkthrough
https://assets.ine.com > eCPPTv2_PRE_EXAM
Passive Recon — Interrogation WHOIS & DNSRecon
DNS / WHOIS1. Registre WHOIS
kali@kali:~$ whois hackersploit.org Registrar WHOIS Server: whois.namecheap.com Creation Date: 2018-04-05T11:27:07Z Registrar Abuse Contact Email: abuse@namecheap.com Registry Registrant Name: REDACTED FOR PRIVACY Registry Registrant Organization: Privacy service provided by Withheld for Privacy ehf
2. Énumération DNSRecon
kali@kali:~$ dnsrecon -d zonetransfer.me [*] std: Performing General Enumeration against: zonetransfer.me... [-] DNSSEC is not configured for zonetransfer.me [*] SOA nsztm1.digi.ninja 81.4.108.41 [*] NS nsztm2.digi.ninja 34.225.33.2 [*] MX ASPMX.L.GOOGLE.COM 108.177.126.26 [*] A zonetransfer.me 5.196.105.14 [*] TXT zonetransfer.me google-site-verification=... [+] SRV _sip._tcp.zonetransfer.me 5.196.105.14 5060
Passive Recon — Sublist3r & Wafw00f
Subdomains / WAF1. Énumération de Sous-Domaines (Sublist3r)
└─$ ./sublist3r.py -d github.com [ - ] Searching now in Baidu.. [ - ] Searching now in Yahoo.. [ - ] Searching now in Google.. [ - ] Searching now in Bing.. [ - ] Searching now in Netcraft.. [ - ] Searching now in DNSdumpster.. [ - ] Searching now in SSL Certificates.. [-] Total Unique Subdomains Found: 100 www.github.com api.github.com assets-cdn.github.com blog.github.com codeload.github.com
2. Fingerprinting WAF (Wafw00f)
kali@kali:~$ wafw00f hackertube.net -a
\ ( W00f! )
\ /
\/
~ WAFW00F : v2.2.0 ~
[*] Checking https://hackertube.net
[+] The site https://hackertube.net is behind Sucuri CloudProxy (Sucuri Inc.) WAF.
[~] Number of requests: 7
Active Recon — Transfert de Zone DNS & Découverte d'Hôtes
Recon ActiveTransfert de Zone DNS (AXFR)
- Si le serveur DNS autoritatif est mal configuré, il divulgue l'intégralité de sa zone d'adressage.
# Tentative de transfert de zone via dig dig axfr @ns1.target.com target.com # Test automatique via host host -l target.com ns1.target.com
Découverte d'Hôtes (Host Discovery)
- Balayage réseau local / subnet pour identifier les machines vivantes.
# Ping sweep rapide avec fping fping -a -g 192.168.1.0/24 2>/dev/null # Scan ARP sur le réseau local arp-scan -l # Découverte d'hôtes sans scan de ports avec Nmap nmap -sn 192.168.1.0/24
Port Scanning — Fondamentaux Nmap
Nmap / ScanningMéthodes de balayage de ports réseau TCP et UDP
Modes de Balayage TCP
- TCP SYN Scan (
-sS) : Scan furtif par défaut. N'établit pas la connexion complète (reçoit SYN-ACK puis envoie RST). Requis privilèges root. - TCP Connect Scan (
-sT) : Établit le Handshake TCP complet (3-way). Utilisé sans privilèges root. - UDP Scan (
-sU) : Teste les services UDP en analysant les réponses ICMP Port Unreachable.
Commandes Nmap de Base
# Scan SYN rapide des ports principaux nmap -sS 192.168.1.10 # Scan de tous les ports (1-65535) nmap -p- 192.168.1.10 # Scan UDP des top ports nmap -sU --top-ports 20 192.168.1.10 # Détection de version de service & OS nmap -sV -O 192.168.1.10
Port Scanning — Nmap Avancé & Moteur NSE
Nmap / NSENmap Scripting Engine (NSE)
- Scripts automatisés pour la détection de bannières, la découverte et la détection de vulnérabilités.
- Catégories clés :
default,banner,vuln,safe.
# Exécution des scripts par défaut et vulnérabilités nmap -sC -sV 192.168.1.10 nmap --script=vuln 192.168.1.10
Évasion Pare-feu & Vitesse (Timing)
- Timing Templates : De
-T0(Paranoïaque/Furtif) à-T5(Agressif/Rapide). - Fragmentation & Leurres : Pour contourner les pare-feu applicatifs simples.
# Scan fragmenté avec leurres IP nmap -sS -f -D RND:10 192.168.1.10
Service Enumeration — SMB (Ports 139 / 445)
SMB EnumArchitecture du protocole Server Message Block
Ports & Versions SMB
- Port 139 : NetBIOS Session Service (SMB hérité sur NetBIOS).
- Port 445 : Direct SMB over TCP/IP (Standard moderne).
- Versions : SMBv1 (Fortement vulnérable - EternalBlue), SMBv2, SMBv3.
Concept de Session Nulle (Null Session)
- Permet à un attaquant anonyme de se connecter au service SMB sans nom d'utilisateur ni mot de passe (
User: "" / Pass: ""). - Révèle la liste des partages réseau, utilisateurs du domaine et politiques de mots de passe.
Service Enumeration — Outils SMB Pratiques
SMB / Commandessmbclient & enum4linux
# Lister les partages en session nulle smbclient -L //192.168.1.10 -U "" # Connexion à un partage spécifique smbclient //192.168.1.10/Partage -U "" # Énumération complète automatisée (Utilisateurs, Partages, Groupes) enum4linux -a 192.168.1.10
smbmap & CrackMapExec / NetExec
# Vérification des permissions sur les partages smbmap -H 192.168.1.10 # Scan SMB avec CrackMapExec en session nulle crackmapexec smb 192.168.1.10 -u '' -p '' --shares # Scripts Nmap dédiés SMB nmap --script "smb-enum-shares,smb-enum-users" -p 445 192.168.1.10
Service Enumeration — FTP (Port 21)
FTP EnumConnexion Anonyme & Commandes
- Accès par défaut activé si
anonymous:anonymousouanonymous: [Entrée]fonctionne. - Modes : Binary (fichiers exécutables/archives) vs ASCII (fichiers texte).
# Connexion au serveur FTP ftp 192.168.1.10 Name: anonymous Password: anonymous # Commandes internes FTP ls -la get fichier.txt put payload.txt
Scripts NSE & Brute-Force Hydra
- Détection automatique de l'accès anonyme et vulnérabilités FTP.
# Script Nmap FTP Anonyme nmap --script ftp-anon,ftp-bounce -p 21 192.168.1.10 # Attaque par force brute avec Hydra hydra -l user -P /usr/share/wordlists/rockyou.txt ftp://192.168.1.10
Service Enumeration — SSH (Port 22)
SSH EnumBanner Grabbing & Clés Privées
- Récupération de la bannière exacte du service OpenSSH.
- Utilisation de clés privées fuitées (
id_rsa) pour l'authentification.
# Récupération de la bannière via Netcat nc -vn 192.168.1.10 22 # Connexion via clé SSH privée (Permissions 600 obligatoires) chmod 600 id_rsa ssh -i id_rsa root@192.168.1.10
Auditing des Algorithmes & Brute-Force
- Détection des méthodes d'authentification supportées via Nmap.
# Script Nmap d'inspection SSH nmap -p 22 --script ssh2-enum-algos,ssh-auth-methods 192.168.1.10 # Brute-force d'identifiants SSH avec Hydra hydra -L users.txt -P passwords.txt ssh://192.168.1.10
Service Enumeration — HTTP / HTTPS (Ports 80 / 443)
HTTP EnumInspection Manuelle & En-têtes
- Examen des réponses d'en-tête (Server, X-Powered-By, Cookies).
- Analyse obligatoire du code source (Commentaires HTML, fichiers JS).
- Fichiers d'indexation :
robots.txt,sitemap.xml.
Commandes d'Inspection Réseau
# Récupération des en-têtes HTTP curl -I http://192.168.1.10 # Récupération complète avec en-têtes verbeux curl -v http://192.168.1.10 # Téléchargement de la page d'accueil wget http://192.168.1.10/robots.txt
Service Enumeration — Directory & File Fuzzing
HTTP FuzzingDécouverte de répertoires et fichiers cachés sur le serveur web
Gobuster & ffuf
# Énumération de répertoires avec Gobuster gobuster dir -u http://192.168.1.10 -w /usr/share/wordlists/dirb/common.txt # Recherche de fichiers spécifiques (.php, .txt, .html) gobuster dir -u http://192.168.1.10 -w wordlist.txt -x php,txt,html # Fuzzing rapide avec ffuf ffuf -u http://192.168.1.10/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Scanner Web Nikto
# Audit automatisé des vulnérabilités web courantes nikto -h http://192.168.1.10
Service Enumeration — CMS & Web Proxies
CMS / ProxiesÉnumération CMS (WPScan)
- Scan dédié aux sites WordPress pour identifier plugins, thèmes vulnérables et utilisateurs.
# Énumération des utilisateurs et plugins WordPress wpscan --url http://192.168.1.10 --enumerate u,vp,vt
Proxies d'Interception (Burp / ZAP)
- Capture, interception et modification à la volée des requêtes HTTP/HTTPS.
- Utilisation du Repeater pour rejouer des requêtes personnalisées.
Service Enumeration — MySQL (Port 3306)
MySQL EnumConnexion & Scripts Nmap
# Tentative de connexion directe en root mysql -h 192.168.1.10 -u root -p # Scripts NSE d'énumération MySQL nmap --script mysql-info,mysql-enum,mysql-empty-password -p 3306 192.168.1.10 # Brute-force d'accès MySQL hydra -l root -P /usr/share/wordlists/rockyou.txt mysql://192.168.1.10
Requêtes SQL d'Énumération Interne
-- Lister toutes les bases de données SHOW DATABASES; -- Sélectionner et examiner une base USE nom_de_db; SHOW TABLES; -- Extraire la liste des utilisateurs et hachages SELECT user, authentication_string FROM mysql.user;
Synthèse & Methodology Checklist — Chapitre 1
RécapitulatifChecklist Pratique d'Énumération sur le Terrain
- 1. OSINT : Exécuter Whois, Google Dorks, Sublist3r et vérifier la présence d'un WAF (wafw00f).
- 2. Discovery : Effectuer un scan d'hôtes vivants (
fping/arp-scan). - 3. Nmap : Lancer un scan complet
nmap -sS -sC -sV -p-vers l'hôte cible. - 4. SMB (139/445) : Tester la session nulle via
smbclientetenum4linux. - 5. Web (80/443) : Inspecter
robots.txt, la source HTML, puis lancergobusteretnikto. - 6. Services Annexes : Tester les accès anonymes ou par défaut sur FTP (21), SSH (22) et MySQL (3306).