Reconnaissance & Nmap
Avant d'attaquer, il faut connaitre sa cible. Maitrise les techniques de reconnaissance passive et active, et deviens expert du scanner le plus puissant : Nmap.
- Comprendre la difference entre reconnaissance passive et active
- Maitriser les sources OSINT (Shodan, Censys, Google dorks, WHOIS)
- Scanner des reseaux et des hotes avec Nmap
- Enumerer les services, versions et systemes d'exploitation
- Utiliser le Nmap Scripting Engine (NSE) pour des scans avances
- Appliquer des techniques d'evasion pour contourner les firewalls et IDS
- Realiser un footprinting avance (DNS, sous-domaines, technologies web)
π T3.1 β La reconnaissance : premiere phase du pentest
La reconnaissance (ou information gathering) est la toute premiere phase d'un test d'intrusion. Elle consiste a collecter un maximum d'informations sur la cible avant de lancer la moindre attaque.
Imagine un cambrioleur professionnel (legal !). Avant de tenter quoi que ce soit, il passe des jours a observer sa cible : les horaires, les cameras, les rondes de securite, les points d'entree, les habitudes des occupants. C'est exactement ce que fait un pentester lors de la phase de reconnaissance. Plus tu en sais, plus tes attaques seront chirurgicales et efficaces.
Reconnaissance passive vs active
Reconnaissance passive
Tu collectes des informations sans interagir directement avec la cible. La cible ne sait pas qu'elle est observee.
- OSINT : sources ouvertes (sites web, reseaux sociaux, forums)
- WHOIS : informations d'enregistrement de domaine
- DNS public : enregistrements DNS accessibles a tous
- Google Dorks : recherches avancees Google
- Shodan / Censys : moteurs de recherche IoT et services exposes
- Certificate Transparency : logs publics de certificats SSL
- Reseaux sociaux : LinkedIn, Twitter, GitHub des employes
Reconnaissance active
Tu interagis directement avec les systemes de la cible. Tu envoies des paquets, tu scannes des ports, tu testes des services.
- Scan de ports : Nmap, Masscan, Unicornscan
- Enumeration de services : banniere grabbing, fingerprinting
- Scan de vulnerabilites : Nessus, OpenVAS
- Brute force DNS : enumeration de sous-domaines
- Web crawling : spider les applications web
Les sources OSINT essentielles
| Outil / Source | Type | Usage | Exemple |
|---|---|---|---|
| Shodan | Moteur IoT | Trouve les services exposes sur Internet (webcams, serveurs, SCADA) | shodan search apache country:FR |
| Censys | Moteur IoT | Scan massif d'Internet, certificats, services | censys search "target.com" |
| Google Dorks | Recherche avancee | Decouvrir des fichiers sensibles, pages d'admin, erreurs | site:target.com filetype:pdf |
| WHOIS | Base registrar | Proprietaire du domaine, serveurs DNS, dates | whois target.com |
| theHarvester | Outil OSINT | Emails, sous-domaines, hotes, noms d'employes | theHarvester -d target.com -b all |
| Maltego | Graphes OSINT | Cartographie des relations entre entites (personnes, domaines, IP) | Interface graphique de visualisation |
| Recon-ng | Framework | Framework modulaire de reconnaissance (comme Metasploit pour l'OSINT) | recon-ng -w target_workspace |
| SpiderFoot | Automatisation | Scan OSINT automatise avec 200+ modules | spiderfoot -s target.com -t all |
| crt.sh | Certificats | Recherche dans les Certificate Transparency logs | curl "https://crt.sh/?q=%.target.com&output=json" |
| Have I Been Pwned | Fuites | Verifier si des emails/mots de passe ont fuite | Recherche par domaine ou email |
Google Dorks β Recherches chirurgicales
π°οΈ T3.2 β Nmap : le scanner de reference
Nmap (Network Mapper) est l'outil de scan reseau le plus utilise au monde. Cree par Gordon "Fyodor" Lyon en 1997, il est open source, gratuit, et incontournable pour tout pentester ou administrateur reseau.
Installation
Syntaxe de base
nmap [type de scan] [options] {cible}
# Cibles possibles :
nmap 192.168.1.1 # IP unique
nmap 192.168.1.1-254 # Plage d'IP
nmap 192.168.1.0/24 # Sous-reseau CIDR
nmap scanme.nmap.org # Nom de domaine
nmap -iL targets.txt # Liste de cibles depuis un fichier
Decouverte d'hotes (Host Discovery)
Avant de scanner les ports, Nmap determine quels hotes sont en ligne. Par defaut, il utilise un ping scan combine (ICMP echo, TCP SYN 443, TCP ACK 80, ICMP timestamp).
Types de scan de ports
| Option | Nom | Methode | Furtivite | Precision | Privileges |
|---|---|---|---|---|---|
-sS |
SYN Scan | Envoie SYN, attend SYN/ACK, puis RST (pas de connexion complete) | ββββ | βββββ | root |
-sT |
Connect Scan | Connexion TCP complete (3-way handshake) | ββ | βββββ | user |
-sU |
UDP Scan | Envoie des paquets UDP, analyse les reponses ICMP | βββ | βββ | root |
-sA |
ACK Scan | Envoie ACK pour mapper les regles du firewall | ββββ | ββ | root |
-sF |
FIN Scan | Envoie FIN β les ports fermes repondent RST | βββββ | βββ | root |
-sX |
Xmas Scan | Flags FIN+PSH+URG actives (sapin de Noel) | βββββ | βββ | root |
-sN |
Null Scan | Aucun flag TCP active | βββββ | βββ | root |
-sW |
Window Scan | Comme ACK, mais analyse la taille de la fenetre TCP | ββββ | ββ | root |
π¬ T3.3 β Enumeration de services et versions
Connaitre les ports ouverts ne suffit pas. Il faut savoir quel service tourne sur chaque port, quelle version, et si possible identifier le systeme d'exploitation. C'est la que la magie de Nmap opère.
Detection de services (-sV)
Detection du systeme d'exploitation (-O)
Scan agressif (-A)
L'option -A combine plusieurs fonctionnalites en une seule commande :
# -A est equivalent a : # -sV (detection de version) # -O (detection d'OS) # -sC (scripts par defaut) # --traceroute (trace de routage) nmap -A 192.168.1.20
-A est tres bruyant. Il genere beaucoup de trafic et sera facilement detecte par un IDS. Utilise-le uniquement quand la furtivite n'est pas une priorite (audit interne, lab).
π T3.4 β Nmap Scripting Engine (NSE)
Le Nmap Scripting Engine (NSE) transforme Nmap d'un simple scanner en un veritable framework de pentest. Il permet d'executer des scripts Lua pour automatiser des taches : detection de vulnerabilites, brute force, enumeration avancee, et bien plus.
Categories de scripts
| Categorie | Description | Exemple |
|---|---|---|
auth |
Test d'authentification (credentials par defaut, contournement) | ftp-anon, ssh-auth-methods |
brute |
Attaques par force brute sur les services | ftp-brute, ssh-brute |
vuln |
Detection de vulnerabilites connues | smb-vuln-ms17-010, ssl-heartbleed |
exploit |
Exploitation active de vulnerabilites | ftp-vsftpd-backdoor |
discovery |
Decouverte d'informations supplementaires | http-enum, dns-brute |
default |
Scripts surs et utiles (actives avec -sC) |
http-title, ssh-hostkey |
safe |
Scripts qui ne plantent pas le service cible | banner, dns-nsid |
intrusive |
Scripts agressifs pouvant impacter la cible | http-put, smb-brute |
Utilisation des scripts NSE
Top 15 des scripts NSE indispensables
| # | Script | Categorie | Description |
|---|---|---|---|
| 1 | http-enum | discovery | Enumere les repertoires et fichiers web connus (/admin, /phpmyadmin, /wp-login) |
| 2 | smb-vuln-ms17-010 | vuln | Detecte EternalBlue (MS17-010), la vuln exploitee par WannaCry |
| 3 | ftp-anon | auth | Verifie si le serveur FTP autorise les connexions anonymes |
| 4 | ssl-heartbleed | vuln | Detecte la vulnerabilite Heartbleed (CVE-2014-0160) dans OpenSSL |
| 5 | http-vuln-cve2017-5638 | vuln | Detecte Apache Struts RCE (exploitation par Equifax breach) |
| 6 | dns-brute | discovery | Brute force les sous-domaines DNS |
| 7 | ssh-brute | brute | Attaque par dictionnaire sur SSH |
| 8 | http-sql-injection | vuln | Detecte les parametres vulnerables aux injections SQL |
| 9 | smb-enum-shares | discovery | Liste les partages SMB et leurs permissions |
| 10 | ssl-enum-ciphers | discovery | Enumere les suites de chiffrement SSL/TLS supportees |
| 11 | http-robots.txt | discovery | Recupere et analyse le fichier robots.txt |
| 12 | vuln (categorie) | vuln | Execute tous les scripts de detection de vulnerabilites |
| 13 | mysql-empty-password | auth | Verifie si MySQL accepte les connexions sans mot de passe |
| 14 | http-headers | discovery | Recupere les en-tetes HTTP (info serveur, securite) |
| 15 | banner | discovery | Recupere les bannieres des services (version, info) |
Exemples concrets de scripts NSE
π₯· T3.5 β Techniques d'evasion
Les firewalls et IDS/IPS modernes detectent les scans Nmap classiques. Un bon pentester doit connaitre les techniques d'evasion pour contourner ces protections. Nmap offre de nombreuses options a cet effet.
Fragmentation de paquets (-f)
Leurres (Decoys) (-D)
Les decoys, c'est comme envoyer 10 personnes deguisees en toi dans un batiment. Le garde de securite voit 11 personnes suspectes mais ne sait pas laquelle est la vraie. Il peut bloquer tout le monde ou personne β dans les deux cas, ca te donne un avantage.
Timing templates (-T0 a -T5)
| Option | Nom | Delai entre paquets | Usage |
|---|---|---|---|
-T0 |
Paranoid | ~5 minutes | Evasion d'IDS extreme β tres lent |
-T1 |
Sneaky | ~15 secondes | Evasion d'IDS β lent |
-T2 |
Polite | ~0.4 seconde | Reduit la charge reseau |
-T3 |
Normal | Par defaut | Equilibre entre vitesse et fiabilite |
-T4 |
Aggressive | ~10 ms | Reseau rapide et fiable |
-T5 |
Insane | ~5 ms | Reseau local rapide β peut manquer des ports |
Autres techniques d'evasion
πΊοΈ T3.6 β Footprinting avance
Au-dela de Nmap, un pentester doit maitriser d'autres outils de reconnaissance pour cartographier completement sa cible : DNS, sous-domaines, technologies web, certificats.
Enumeration DNS
Decouverte de sous-domaines
Fingerprinting des technologies web
Certificate Transparency Logs
Les Certificate Transparency (CT) logs sont des registres publics de tous les certificats SSL/TLS emis. Ils revelent souvent des sous-domaines internes que l'organisation n'a pas voulu exposer.
internal-admin.target.com, ce sous-domaine apparait dans les CT logs β meme s'il n'est pas accessible publiquement. C'est une mine d'or pour la reconnaissance passive.
π» T3.7 β Lab : Terminal Nmap
Mets en pratique tes connaissances Nmap dans ce terminal interactif. Scanne le reseau cible 10.10.10.0/24 et decouvre les services, vulnerabilites et informations cachees.
Exercice : associe le bon type de scan au bon scenario
π Furtivite requise
π Audit complet
β‘ Verification rapide
π Recherche de vulns
π T3.8 β Quiz de revision
Points cles du Module T3
- La reconnaissance est la premiere phase d'un pentest : passive (OSINT, sans contact) vs active (scan, avec contact direct)
- Nmap est le scanner de reference : il decouvre les hotes, scanne les ports, detecte les services et identifie les OS
- Le SYN Scan (-sS) est le scan par defaut : rapide, precis, et relativement furtif (half-open)
- La detection de version (-sV) et d'OS (-O) sont essentielles pour identifier les logiciels vulnerables
- Le NSE (Nmap Scripting Engine) transforme Nmap en framework de pentest avec 600+ scripts
- Les techniques d'evasion (-f, -D, -T0/T1, --source-port, -sI) contournent les firewalls et IDS
- Le footprinting avance combine DNS enumeration, decouverte de sous-domaines et fingerprinting web
- Les Certificate Transparency logs revelent des sous-domaines caches (crt.sh)
- Toujours avoir une autorisation ecrite avant de scanner un reseau qui ne t'appartient pas
- La commande
nmap -Acombine version, OS, scripts par defaut et traceroute β puissant mais bruyant