Retour à l'accueil
CEH v12 · Module 03

Scanning de Réseaux

Si la reconnaissance c'est observer la maison de loin, le scanning c'est s'approcher et tester chaque porte et fenêtre méthodiquement. Modèle OSI, TCP/UDP, tous les types de scan Nmap avec sorties réelles, NSE, Masscan, Hping3, Netcat, évasion IDS et méthodologie professionnelle complète.

Module 03 / 20 Nmap Scanning 10 types de scan

Pourquoi le scanning est une science

Le scanning transforme les informations vagues de la phase 1 (Reconnaissance) en données concrètes et exploitables : quels ports sont ouverts, quels services tournent, quel OS est utilisé, quelles vulnérabilités existent. C'est la phase où tu construis la carte d'attaque précise de ta cible.

Règle professionnelle : un scan discret et méthodique vaut mille fois mieux qu'un scan brutal qui déclenche toutes les alarmes

Révision réseau essentielle

Avant de scanner, il faut maîtriser les bases réseau — le CEH les teste directement.

Le modèle OSI — les 7 couches (ordinogramme animé)

7
Application
HTTP, HTTPS, FTP, SMTP, DNS
6
Présentation
SSL/TLS, JPEG, MP4, ASCII
5
Session
NetBIOS, RPC, PPTP
4
Transport
TCP, UDP
3
Réseau
IP, ICMP, ARP, OSPF, BGP
2
Liaison
Ethernet, Wi-Fi, MAC, VLAN
1
Physique
Câbles, fibre, signaux radio

Mnémotechnique : « All People Seem To Need Data Processing »

TCP vs UDP

TCP
Orienté connexion (handshake 3 étapes), fiable, ordonné, plus lent. Utilisé pour HTTP, HTTPS, FTP, SSH, SMTP.
UDP
Sans connexion (fire and forget), non fiable, non ordonné, très rapide. Utilisé pour DNS, DHCP, SNMP, VoIP, Gaming.

Handshake TCP en 3 étapes — critique pour le CEH

CLIENTSERVEUR
Étape 1
SYN (seq=100)
Étape 2
SYN-ACK (seq=200, ack=101)
Étape 3
ACK (ack=201) — connexion établie

Flags TCP

FlagNomRôle
SYNSynchronizeInitier une connexion
ACKAcknowledgeConfirmer réception
FINFinishFermer proprement
RSTResetRéinitialiser (forcer)
PSHPushEnvoyer immédiatement
URGUrgentDonnées prioritaires

États des ports

ÉtatSignification
OPENService actif, accepte les connexions
CLOSEDPort accessible mais aucun service n'écoute
FILTEREDPare-feu bloque les paquets (pas de réponse)
OPEN|FILTEREDImpossible de distinguer (fréquent en UDP)

Ports importants à connaître par cœur

PortProtocoleService
21TCPFTP (contrôle)
22TCPSSH
23TCPTelnet (non chiffré, dangereux)
25TCPSMTP
53TCP/UDPDNS
80TCPHTTP
135TCPMSRPC (Windows)
139/445TCPSMB (Windows File Sharing)
161UDPSNMP
389/636TCPLDAP / LDAPS
443TCPHTTPS
1433TCPMicrosoft SQL Server
3306TCPMySQL / MariaDB
3389TCPRDP
5432TCPPostgreSQL
5900TCPVNC
27017TCPMongoDB

Nmap — l'outil roi du scanning

Nmap (Network Mapper) est l'outil de scanning le plus utilisé au monde — open source, multiplateforme, référence dans tous les examens CEH.

Installation
sudo apt install nmap       # Debian/Ubuntu/Kali
sudo yum install nmap       # CentOS/RHEL

TYPE 1 — Ping Sweep (-sn) : découverte d'hôtes actifs

~ — nmap -sn 192.168.1.0/24
$ nmap -sn 192.168.1.0/24

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 14:23 CAT
Nmap scan report for 192.168.1.1
Host is up (0.00042s latency).
MAC Address: C8:D7:19:AB:12:3F (Cisco Systems)

Nmap scan report for 192.168.1.10
Host is up (0.0023s latency).
MAC Address: 08:00:27:A1:BC:DE (Oracle VirtualBox)

Nmap scan report for 192.168.1.15
Host is up (0.0087s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap scan report for 192.168.1.20
Host is up (0.0012s latency).
MAC Address: 52:54:00:12:34:56 (QEMU Virtual NIC)

Nmap scan report for 192.168.1.100
Host is up (0.00089s latency).
MAC Address: B8:27:EB:A1:23:45 (Raspberry Pi Foundation)

Nmap done: 256 IP addresses (5 hosts up) scanned in 3.42 seconds
Analyse professionnelle
192.168.1.1 → routeur Cisco (passerelle) · 192.168.1.10 → VM VirtualBox (machine de test) · 192.168.1.15 → VM VMware (serveur virtuel) · 192.168.1.20 → VM QEMU/KVM · 192.168.1.100 → Raspberry Pi (IoT ou serveur léger). 5 cibles identifiées sur 256 adresses possibles — les adresses MAC révèlent les fabricants, une information précieuse.

TYPE 2 — SYN Scan (-sS) : le scan furtif standard

Scan par défaut de Nmap avec droits root — aussi appelé « Half-Open Scan ». La connexion n'est jamais complétée, donc rarement loggée.

Ordinogramme — Résultat selon l'état du port
SYN → SYN-ACK → RST = OPEN | SYN → RST-ACK = CLOSED | SYN → (silence) = FILTERED
~ — sudo nmap -sS 192.168.1.10
$ sudo nmap -sS 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 14:25 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00089s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 08:00:27:A1:BC:DE (Oracle VirtualBox)

Nmap done: 1 IP address (1 host up) scanned in 2.89 seconds
Analyse professionnelle — alerte haute valeur
21 (FTP) → vsftpd potentiel, credentials par défaut ? · 22 (SSH) → bruteforce possible · 23 (Telnet) → cleartext, sniffing possible · 3306 (MySQL) et 5432 (PostgreSQL) → bases de données exposées · 5900 (VNC) → accès bureau à distance · 445 (SMB) → EternalBlue / MS17-010 ? · 8180 (Tomcat ?) → interface admin web ? · 1524 (ingreslock) → backdoor connue sur Metasploitable. Verdict : ceci ressemble fortement à Metasploitable 2 — machine de test délibérément vulnérable.

TYPE 3 — Connect Scan (-sT) : handshake complet

Utilisable sans root mais loggé car la connexion est complétée puis fermée immédiatement (RST).

~ — nmap -sT 192.168.1.10
$ nmap -sT 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 14:28 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00091s latency).
Not shown: 977 closed tcp ports (conn-refused)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
80/tcp   open  http
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
8180/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds
-sS = root requis, furtif, rapide  ·  -sT = sans root, connexion complète loggée, plus lent

TYPE 4 — UDP Scan (-sU)

~ — sudo nmap -sU 192.168.1.10
$ sudo nmap -sU 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 14:31 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00089s latency).
Not shown: 957 closed udp ports (port-unreach)
PORT      STATE         SERVICE
53/udp    open          domain
67/udp    open|filtered dhcps
68/udp    open|filtered dhcpc
69/udp    open|filtered tftp
111/udp   open          rpcbind
123/udp   open          ntp
137/udp   open|filtered netbios-ns
138/udp   open|filtered netbios-dgm
161/udp   open          snmp
2049/udp  open          nfs

Nmap done: 1 IP address (1 host up) scanned in 1083.47 seconds
Analyse
53/udp (DNS) → serveur actif, zone transfer possible · 161/udp (SNMP) → community string "public" ? énumération possible · 137/udp (NetBIOS) → énumération possible · 2049/udp (NFS) → partages montables ? Le scan a pris 1083 secondes (18 minutes) — l'UDP scanning est lent par nature.

TYPE 5-7 — FIN / Xmas / Null Scan

Envoient des combinaisons de flags inhabituelles (FIN seul / FIN+PSH+URG / aucun flag). Basé sur la RFC 793 : port fermé → RST, port ouvert → silence.

~ — sudo nmap -sF 192.168.1.10
$ sudo nmap -sF 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 14:52 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00041s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE         SERVICE
21/tcp   open|filtered ftp
22/tcp   open|filtered ssh
23/tcp   open|filtered telnet
80/tcp   open|filtered http
3306/tcp open|filtered mysql

Nmap done: 1 IP address (1 host up) scanned in 1.73 seconds
~ — sudo nmap -sX 192.168.1.10
$ sudo nmap -sX 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 14:55 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00043s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE         SERVICE
21/tcp   open|filtered ftp
22/tcp   open|filtered ssh
23/tcp   open|filtered telnet
25/tcp   open|filtered smtp
80/tcp   open|filtered http
3306/tcp open|filtered mysql
5432/tcp open|filtered postgresql
5900/tcp open|filtered vnc

Nmap done: 1 IP address (1 host up) scanned in 1.81 seconds
~ — sudo nmap -sN 192.168.1.10
$ sudo nmap -sN 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 14:57 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00044s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE         SERVICE
21/tcp   open|filtered ftp
22/tcp   open|filtered ssh
23/tcp   open|filtered telnet
80/tcp   open|filtered http
3306/tcp open|filtered mysql

Nmap done: 1 IP address (1 host up) scanned in 1.69 seconds
Windows répond RST sur tous les ports (ouverts et fermés) → ces 3 scans sont inefficaces contre Windows, mais efficaces contre Linux/Unix

TYPE 8 — ACK Scan (-sA) : cartographier le pare-feu

Ne cherche pas les ports ouverts mais identifie les ports filtrés (pare-feu actif) vs non filtrés.

~ — sudo nmap -sA 192.168.1.10
$ sudo nmap -sA 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 15:01 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00041s latency).
Not shown: 987 unfiltered tcp ports (reset)
PORT     STATE    SERVICE
22/tcp   filtered ssh
80/tcp   filtered http
443/tcp  filtered https
3306/tcp filtered mysql
8080/tcp filtered http-proxy

Nmap done: 1 IP address (1 host up) scanned in 2.14 seconds
Analyse
Les ports "filtered" indiquent un pare-feu actif sur ces ports ; les ports "unfiltered" n'en ont pas. Utile pour comprendre la configuration du pare-feu et guider le choix des techniques d'évasion.

TYPE 9 — Version Detection (-sV) : identifier les services

~ — nmap -sV 192.168.1.10
$ nmap -sV 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 15:05 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00089s latency).

PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet      Linux telnetd
25/tcp   open  smtp        Postfix smtpd
53/tcp   open  domain      ISC BIND 9.4.2
80/tcp   open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X
445/tcp  open  netbios-ssn Samba smbd 3.0.20-Debian
3306/tcp open  mysql       MySQL 5.0.51a-3ubuntu5
5432/tcp open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open  vnc         VNC (protocol 3.3)
8180/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1

Service Info: Host: metasploitable; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Nmap done: 1 IP address (1 host up) scanned in 13.47 seconds
Analyse professionnelle — c'est de l'or pur
vsftpd 2.3.4 → CVE-2011-2523, backdoor (port 6200 s'ouvre après un smiley « :) » dans le username) · OpenSSH 4.7p1 → version 2008, système non patché depuis des années · Apache 2.2.8 → multiples CVEs critiques · Samba 3.0.20 → CVE-2007-2447 (username map script RCE) · MySQL 5.0.51a → authentification bypass possible · VNC protocole 3.3 → auth faible ou absente ? · Tomcat 1.1 sur le port 8180 → interface admin /manager exposée ?
Un rapport de version, c'est une liste de courses pour l'exploitation.

TYPE 10 — OS Fingerprinting (-O)

~ — sudo nmap -O 192.168.1.10
$ sudo nmap -O 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 15:10 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00090s latency).

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop

OS detection performed. Please report any incorrect results.
Nmap done: 1 IP address (1 host up) scanned in 4.58 seconds

Scan tout-en-un (-A)

Combine OS detection + Version detection + Script scanning + Traceroute.

~ — sudo nmap -A -T4 192.168.1.10 (extrait)
$ sudo nmap -A -T4 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org ) at 2024-11-15 15:15 CAT
Nmap scan report for 192.168.1.10
Host is up (0.00089s latency).

PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to 192.168.1.5
|      Logged in as ftp
|      Control connection is plain text
|_     Data connections will be plain text

22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey:
|   1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
|_  2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)

23/tcp   open  telnet      Linux telnetd

80/tcp   open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
| http-methods:
|   Supported Methods: GET HEAD POST OPTIONS
|   Potentially risky methods: TRACE
|_http-server-header: Apache/2.2.8 (Ubuntu) DAV/2
|_http-title: Metasploitable2 - Linux

3306/tcp open  mysql       MySQL 5.0.51a-3ubuntu5
| mysql-info:
|   Protocol: 10
|   Version: 5.0.51a-3ubuntu5
|   Thread ID: 8
|   Capabilities flags: 43564
|   Some Capabilities: Support41Auth, SupportsTransactions
|_  Status: Autocommit

5900/tcp open  vnc         VNC (protocol 3.3)
| vnc-info:
|   Protocol version: 3.3
|_  Security types: VNC Authentication (2)

OS details: Linux 2.6.9 - 2.6.33

TRACEROUTE
HOP RTT     ADDRESS
1   0.90 ms 192.168.1.10

Nmap done: 1 IP address (1 host up) scanned in 43.27 seconds

NSE — Nmap Scripting Engine

Permet d'exécuter des scripts automatisés pour des tâches spécifiques — l'un des aspects les plus puissants de Nmap.

CatégorieUtilisation
authTester des credentials par défaut
bruteBruteforce de services
defaultScripts standards (-sC)
discoveryCollecte d'informations
exploitExploitation de vulnérabilités
safeScripts non dangereux
vulnScan de vulnérabilités

EternalBlue (MS17-010)

nmap --script smb-vuln-ms17-010 -p 445 192.168.1.10
Host script results:
| smb-vuln-ms17-010:
|   VULNERABLE
|   Remote Code Execution vulnerability in Microsoft SMBv1
|     Risk factor: HIGH
|     IDs: CVE-2017-0143
|_    Disclosure date: 2017-03-14

Backdoor vsftpd

nmap --script ftp-vsftpd-backdoor -p 21 192.168.1.10
| ftp-vsftpd-backdoor:
|   VULNERABLE (Exploitable)
|   IDs: CVE-2011-2523
|   Exploit results:
|     Shell command: id
|_    Results: uid=0(root) gid=0(root)

Scan complet de vulnérabilités

nmap --script vuln 192.168.1.10
$ nmap --script vuln 192.168.1.10

Starting Nmap 7.94 ( https://nmap.org )
Nmap scan report for 192.168.1.10

PORT     STATE SERVICE
21/tcp   open  ftp
| ftp-vsftpd-backdoor:
|   VULNERABLE: CVE-2011-2523 (CRITICAL)

80/tcp   open  http
| http-csrf:
|   Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=192.168.1.10
|   Found the following possible CSRF vulnerabilities:
|     Path: http://192.168.1.10/phpMyAdmin/
|     Form id: login_form
|_    Form action: index.php
| http-sql-injection:
|   Possible sqli for queries:
|_    http://192.168.1.10/dvwa/vulnerabilities/sqli/?id=1%27&Submit=Submit
| http-stored-xss:
|   VULNERABLE:
|_    http://192.168.1.10/dvwa/vulnerabilities/xss_s/

445/tcp  open  microsoft-ds
| smb-vuln-ms17-010:
|_  VULNERABLE: MS17-010 EternalBlue (CRITICAL)

3306/tcp open  mysql
| mysql-empty-password:
|   VULNERABLE:
|   MySQL is accessible with empty password for user 'root'
|_    Risk: HIGH

Nmap done: 1 IP address (1 host up) scanned in 128.43 seconds

Scripts HTTP utiles — http-enum

nmap --script http-enum -p 80 192.168.1.10
$ nmap --script http-enum -p 80 192.168.1.10

PORT   STATE SERVICE
80/tcp open  http
| http-enum:
|   /phpMyAdmin/: phpMyAdmin
|   /dvwa/: DVWA v1.0.7
|   /admin/: Possible admin folder
|   /backup/: Possible backup folder
|   /test/: Test page
|   /robots.txt: Robots file
|   /cgi-bin/: Potentially interesting directory w/ listing
|   /icons/: Potentially interesting folder w/ directory listing
|_  /index.php: Drupal possible admin page

Masscan — scanning ultra-rapide

Masscan peut scanner l'internet entier en quelques minutes — beaucoup plus rapide que Nmap mais moins précis.

sudo masscan 192.168.1.0/24 -p1-65535 --rate=1000
$ sudo masscan 192.168.1.0/24 -p1-65535 --rate=1000

Starting masscan 1.3.2 (http://bit.ly/14GZzcT) at 2024-11-15 15:30:00 GMT
Initiating SYN Stealth Scan
Scanning 256 hosts [65535 ports/host]

Discovered open port 22/tcp on 192.168.1.10
Discovered open port 80/tcp on 192.168.1.10
Discovered open port 21/tcp on 192.168.1.10
Discovered open port 3306/tcp on 192.168.1.10
Discovered open port 445/tcp on 192.168.1.10
Discovered open port 5432/tcp on 192.168.1.10
Discovered open port 5900/tcp on 192.168.1.10
Discovered open port 8180/tcp on 192.168.1.10
Discovered open port 80/tcp on 192.168.1.1
Discovered open port 443/tcp on 192.168.1.1

Rate: 998.23 kpps

Workflow professionnel Masscan + Nmap

Masscan (large et rapide) Extraire IPs actives Nmap (précis et détaillé)
Bash — les 3 étapes
# Étape 1 : scan rapide avec Masscan
sudo masscan 192.168.1.0/24 -p1-65535 --rate=1000 -oG masscan_results.txt

# Étape 2 : extraire les IPs actives
grep "open" masscan_results.txt | cut -d " " -f4 | sort -u > live_hosts.txt

# Étape 3 : scan approfondi Nmap sur les cibles trouvées
nmap -sV -sC -O -iL live_hosts.txt -oA rapport_final

Hping3 — forgeur de paquets

Permet de créer des paquets TCP/UDP/ICMP personnalisés — utilisé pour tester les pare-feux et effectuer des tests de charge (DoS en lab).

Ping ICMP classique

hping3 -1 192.168.1.10
$ hping3 -1 192.168.1.10

HPING 192.168.1.10 (eth0 192.168.1.10): icmp mode set, 28 headers + 0 data bytes
len=28 ip=192.168.1.10 ttl=64 id=42341 icmp_seq=0 rtt=0.7 ms
len=28 ip=192.168.1.10 ttl=64 id=42342 icmp_seq=1 rtt=0.5 ms
len=28 ip=192.168.1.10 ttl=64 id=42343 icmp_seq=2 rtt=0.6 ms

--- 192.168.1.10 hping statistic ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.5/0.6/0.7 ms

SYN scan manuel sur le port 80

hping3 -S -p 80 192.168.1.10
$ hping3 -S -p 80 192.168.1.10

HPING 192.168.1.10 (eth0 192.168.1.10): S set, 40 headers + 0 data bytes
len=46 ip=192.168.1.10 ttl=64 id=0 sport=80 flags=SA seq=0 win=5840 rtt=0.9 ms
len=46 ip=192.168.1.10 ttl=64 id=0 sport=80 flags=SA seq=1 win=5840 rtt=0.8 ms

--- 192.168.1.10 hping statistic ---
2 packets transmitted, 2 packets received, 0% packet loss
flags=SA = SYN-ACK reçu → port 80 ouvert confirmé

Firewall walking (ACK scan)

hping3 -A -p 80 192.168.1.10 --count 3
$ hping3 -A -p 80 192.168.1.10 --count 3

HPING 192.168.1.10 (eth0 192.168.1.10): A set, 40 headers + 0 data bytes
len=46 ip=192.168.1.10 ttl=64 id=0 sport=80 flags=R seq=0 win=0 rtt=1.1 ms
len=46 ip=192.168.1.10 ttl=64 id=0 sport=80 flags=R seq=1 win=0 rtt=0.9 ms

--- 192.168.1.10 hping statistic ---
3 packets transmitted, 3 packets received, 0% packet loss
flags=R = RST reçu → port non filtré par le pare-feu

SYN Flood (simulation DoS — lab uniquement)

sudo hping3 --flood -S -p 80 192.168.1.10
$ sudo hping3 --flood -S -p 80 192.168.1.10

HPING 192.168.1.10 (eth0 192.168.1.10): S set, 40 headers + 0 data bytes
hping in flood mode, no replies will be shown

--- 192.168.1.10 hping statistic ---
128473 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
Le SYN flood est une attaque DoS — à n'utiliser que sur un lab isolé, jamais sans autorisation

Netcat — le couteau suisse du réseau

Peut créer des connexions TCP/UDP, écouter sur des ports, transférer des fichiers, créer des backdoors simples.

~ — nc -nv 192.168.1.10 21
$ nc -nv 192.168.1.10 21

(UNKNOWN) [192.168.1.10] 21 (ftp) open
220 (vsFTPd 2.3.4)
La bannière révèle immédiatement vsftpd 2.3.4 → backdoor connue (CVE-2011-2523) !
~ — nc -nv 192.168.1.10 22
$ nc -nv 192.168.1.10 22

(UNKNOWN) [192.168.1.10] 22 (ssh) open
SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1
~ — nc -nv 192.168.1.10 80
$ nc -nv 192.168.1.10 80
HEAD / HTTP/1.0
[Entrée deux fois]

(UNKNOWN) [192.168.1.10] 80 (http) open
HTTP/1.1 200 OK
Date: Fri, 15 Nov 2024 14:00:00 GMT
Server: Apache/2.2.8 (Ubuntu) DAV/2
X-Powered-By: PHP/5.2.4-2ubuntu5.10
Content-Type: text/html
Server: Apache/2.2.8 + PHP/5.2.4 → deux versions obsolètes avec des CVEs critiques.

Netcat en mode écoute (listener)

Bash
# Machine A (attaquant) - écoute sur le port 4444
nc -lvnp 4444

# Machine B (cible) - se connecte
nc 192.168.1.5 4444
Sortie sur l'attaquant
listening on [any] 4444 ...
connect to [192.168.1.5] from (UNKNOWN) [192.168.1.10] 52341

Options Nmap avancées

Bash — sélection de ports
nmap -p 22,80,443,3306 192.168.1.10   # ports spécifiques
nmap -p 1-1024 192.168.1.10           # plage de ports
nmap -p- 192.168.1.10                 # tous les ports (1-65535)
nmap --top-ports 100 192.168.1.10     # top 100 ports
~ — nmap -p 22,80,443,3306 192.168.1.10
$ nmap -p 22,80,443,3306 192.168.1.10

PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   open   http
443/tcp  closed https
3306/tcp open   mysql

Contrôle du timing (-T)

NiveauNomUsage
-T0ParanoidIDS ultra-furtif, très lent
-T1SneakyÉvasion IDS
-T2PolitePeu de bande passante
-T3NormalPar défaut
-T4AggressiveRéseau rapide
-T5InsaneTrès rapide, peu fiable

Formats de sortie

Bash
nmap -sV 192.168.1.10 -oN rapport.txt   # lisible humain
nmap -sV 192.168.1.10 -oX rapport.xml   # XML parseable
nmap -sV 192.168.1.10 -oA rapport_complet  # tous formats

Techniques d'évasion Nmap

Quand une cible a un IDS/IPS, il faut masquer ses scans — voici les techniques officielles du CEH.

Fragmentation (-f)

Bash
sudo nmap -sS -f 192.168.1.10
sudo nmap -sS -ff 192.168.1.10   # fragments de 16 octets

Decoy Scan (-D) — fausse identité (ordinogramme)

Envoie des paquets qui semblent venir de plusieurs IPs simultanément — l'IDS voit une attaque depuis 10 adresses, impossible d'isoler la vraie.

Bash
sudo nmap -sS -D 10.0.0.1,10.0.0.2,10.0.0.3,ME 192.168.1.10
10.0.0.1SYN →192.168.1.10:80
10.0.0.2SYN →192.168.1.10:80
10.0.0.3SYN →192.168.1.10:80
TON_IP (réelle)SYN →192.168.1.10:80
L'IDS voit 4 sources distinctes — impossible de savoir laquelle est l'attaquant réel

Autres techniques

Bash — Spoofing, source port, délais
sudo nmap -sS -S 10.0.0.100 -e eth0 192.168.1.10   # IP spoofing
sudo nmap -sS --source-port 53 192.168.1.10        # port DNS souvent autorisé
sudo nmap -sS --scan-delay 1s 192.168.1.10         # délai entre paquets

Commande d'évasion complète professionnelle

Bash
sudo nmap -sS -T1 -f --data-length 25 -D RND:10 --source-port 53 \
          -sV --version-intensity 1 -O \
          --randomize-hosts -oA rapport_furtif \
          192.168.1.10

Traceroute — cartographier le chemin réseau

Permet de voir tous les routeurs traversés entre toi et la cible — essentiel pour comprendre l'architecture réseau.

~ — traceroute 192.168.1.10
$ traceroute 192.168.1.10

 1  192.168.1.1     0.412 ms   # routeur local (LAN)
 2  10.0.0.1        2.413 ms   # routeur interne
 3  172.16.0.1      5.234 ms   # autre segment interne
 4  * * *                      # pare-feu suspect (filtré)
 5  203.0.113.1    15.678 ms   # IP publique — sortie internet
 6  192.168.1.10   16.234 ms   # cible atteinte
Architecture déduite : LAN → réseau interne → DMZ (pare-feu au hop 4) → Internet → Cible.

Workflow complet de scanning professionnel

La méthodologie complète qu'un ethical hacker suit pendant la phase de scanning.

1
Découverte d'hôtes actifs
nmap -sn 192.168.1.0/24 -oG hosts_actifs.txt
2
Scan de ports rapide
nmap -sS -T4 --top-ports 1000 -iL live.txt
3
Scan complet de tous les ports
nmap -sS -p- -T4 -iL live.txt
4
Version + OS sur ports ouverts
nmap -sV -O -sC -iL live.txt
5
Scan de vulnérabilités
nmap --script vuln -iL live.txt
6
UDP sur ports critiques
nmap -sU -p 53,67,68,69,111,123,161,2049
7
Génération du rapport
Conversion XML → HTML avec xsltproc

Résumé comparatif de tous les types de scans

ScanFlagMécanismeAvantageLimite
SYN-sSSYN / RSTFurtif, rapideRoot requis
Connect-sTHandshake completSans rootLoggé
UDP-sUPaquets UDPServices UDPTrès lent
FIN-sFFlag FIN seulÉvasion IDSInefficace sur Windows
Xmas-sXFIN+PSH+URGÉvasion IDSInefficace sur Windows
Null-sNAucun flagÉvasion IDSInefficace sur Windows
ACK-sAFlag ACKMapping firewallNe détecte pas les ports ouverts

Résumé — ce que l'examen va tester

  • TCP handshake en 3 étapes et tous les flags TCP
  • SYN scan vs Connect scan — différences et usages
  • FIN/Xmas/Null scan — pourquoi ils évitent les IDS mais échouent sur Windows
  • ACK scan — sert à cartographier le pare-feu, pas à trouver des ports ouverts
  • -sV et -O — ce qu'ils révèlent
  • NSE — catégories de scripts et usage de --script vuln
  • Timing -T0 à -T5 — quand utiliser chaque niveau
  • Techniques d'évasion : fragmentation, decoy, source port
  • Masscan vs Nmap — vitesse vs précision
  • Netcat pour le banner grabbing

Questions type examen — Module 3

Clique sur une question pour révéler la réponse.

Q1Quel type de scan Nmap effectue un demi-handshake TCP sans jamais établir de connexion complète ?+
→ SYN Scan (-sS) — Half-Open Scan
Q2Un scan renvoie open|filtered sur un port UDP. Que signifie cet état ?+
→ Nmap ne peut pas distinguer ouvert de filtré — pas de réponse reçue
Q3Quel flag Nmap masque l'attaquant en générant du trafic depuis plusieurs IPs leurres ?+
→ -D (Decoy Scan)
Q4Un pentester utilise nmap -sA. Quel est l'objectif principal ?+
→ Cartographier les règles du pare-feu (ports filtrés vs non filtrés)
Q5Pourquoi les scans FIN, Xmas et Null sont-ils inefficaces contre Windows ?+
→ Windows répond RST sur tous les ports, rendant la distinction impossible
Q6Quelle commande Nmap détecte les services ET leurs versions sur les ports ouverts ?+
→ nmap -sV
Q7Un scan révèle vsftpd 2.3.4 sur le port 21. Quel est le risque immédiat ?+
→ Backdoor connue CVE-2011-2523 — accès root possible
Q8Quel outil peut scanner tous les ports de l'internet entier en quelques minutes grâce à sa vitesse extrême ?+
→ Masscan
Q9Quel niveau de timing Nmap est recommandé pour éviter la détection par IDS ?+
→ -T0 (Paranoid) ou -T1 (Sneaky)
Q10Un hacker envoie des paquets TCP avec les flags FIN, PSH et URG simultanément. Quel type de scan effectue-t-il ?+
→ Xmas Scan (-sX)