HattarySecFormation Pentest
Cours pratique Préface — Bienvenue dans la Formation
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) ?

Introduction

Dé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 & Éthique

Ce 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

Sommaire

Partie 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 & Enumeration

Collecte 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 Fondamentaux

Reconnaissance 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 / Web

1. 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)

HTTrack Website Copier v3.49

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)

Wappalyzer Extension Output
  • 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 / Dorks

Opé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

Google Search Results : site:*.ine.com filetype:pdf

[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 / WHOIS

1. 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 / WAF

1. É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 Active

Transfert 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 / Scanning

Mé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 / NSE

Nmap 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 Enum

Architecture 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 / Commandes

smbclient & 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 Enum

Connexion Anonyme & Commandes

  • Accès par défaut activé si anonymous:anonymous ou anonymous: [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 Enum

Banner 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 Enum

Inspection 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 Fuzzing

Dé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 Enum

Connexion & 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écapitulatif

Checklist 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 smbclient et enum4linux.
  • 5. Web (80/443) : Inspecter robots.txt, la source HTML, puis lancer gobuster et nikto.
  • 6. Services Annexes : Tester les accès anonymes ou par défaut sur FTP (21), SSH (22) et MySQL (3306).