Firewall and IDS/IPS Evasion

🎯 Objectif

Apprendre à contourner les règles de pare-feu (firewall) et les systèmes de détection/prévention d'intrusion (IDS/IPS) à l'aide de différentes techniques proposées par Nmap.


🔥 Comprendre Firewalls et IDS/IPS

Composant
Rôle

Firewall

Filtrer ou bloquer les connexions non autorisées selon des règles.

IDS (Intrusion Detection System)

Détecte les connexions suspectes et alerte l'administrateur.

IPS (Intrusion Prevention System)

Prévient activement les connexions suspectes en les bloquant.

⚠️ IDS = détection passive / IPS = blocage actif


🔎 Déterminer les Règles du Pare-feu avec le scan ACK (-sA)

📤 Commande SYN Scan :

sudo nmap <IP CIBLE> -p 21,22,25 -sS -Pn -n --disable-arp-ping --packet-trace

📥 Réponse complète :

SENT (0.0278s) TCP <IP ATTAQUANT>:57347 > <IP CIBLE>:22 S ttl=53 id=22412 iplen=44  seq=4092255222 win=1024 <mss 1460>
SENT (0.0278s) TCP <IP ATTAQUANT>:57347 > <IP CIBLE>:25 S ttl=50 id=62291 iplen=44  seq=4092255222 win=1024 <mss 1460>
SENT (0.0278s) TCP <IP ATTAQUANT>:57347 > <IP CIBLE>:21 S ttl=58 id=38696 iplen=44  seq=4092255222 win=1024 <mss 1460>
RCVD (0.0329s) ICMP [<IP CIBLE> > <IP ATTAQUANT> Port 21 unreachable (type=3/code=3)]
RCVD (0.0341s) TCP <IP CIBLE>:22 > <IP ATTAQUANT>:57347 SA ttl=64 id=0 iplen=44  seq=1153454414 win=64240 <mss 1460>

PORT   STATE    SERVICE
21/tcp filtered ftp
22/tcp open     ssh
25/tcp filtered smtp

📤 Commande ACK Scan :

sudo nmap <IP CIBLE> -p 21,22,25 -sA -Pn -n --disable-arp-ping --packet-trace

📥 Réponse complète :

SENT (0.0422s) TCP <IP ATTAQUANT>:49343 > <IP CIBLE>:21 A ttl=49 id=12381 iplen=40  seq=0 win=1024
SENT (0.0423s) TCP <IP ATTAQUANT>:49343 > <IP CIBLE>:22 A ttl=41 id=5146 iplen=40  seq=0 win=1024
SENT (0.0423s) TCP <IP ATTAQUANT>:49343 > <IP CIBLE>:25 A ttl=49 id=5800 iplen=40  seq=0 win=1024
RCVD (0.1252s) ICMP [<IP CIBLE> > <IP ATTAQUANT> Port 21 unreachable (type=3/code=3)]
RCVD (0.1268s) TCP <IP CIBLE>:22 > <IP ATTAQUANT>:49343 R ttl=64 id=0 iplen=40  seq=1660784500 win=0

PORT   STATE      SERVICE
21/tcp filtered   ftp
22/tcp unfiltered ssh
25/tcp filtered   smtp

🔎 Un port "unfiltered" signifie que le pare-feu laisse passer les paquets ACK — utile pour détecter les règles de firewall !


🎭 Utiliser des Decoys (-D) pour masquer son IP

📤 Commande :

sudo nmap <IP CIBLE> -p 80 -sS -Pn -n --disable-arp-ping --packet-trace -D RND:5

📥 Réponse complète :

SENT TCP <IP RND1>:59289 > <IP CIBLE>:80 S
SENT TCP <IP ATTAQUANT>:59289 > <IP CIBLE>:80 S
SENT TCP <IP RND2>:59289 > <IP CIBLE>:80 S
SENT TCP <IP RND3>:59289 > <IP CIBLE>:80 S
SENT TCP <IP RND4>:59289 > <IP CIBLE>:80 S
SENT TCP <IP RND5>:59289 > <IP CIBLE>:80 S
RCVD TCP <IP CIBLE>:80 > <IP ATTAQUANT>:59289 SA

PORT   STATE SERVICE
80/tcp open  http

🕵️‍♂️ Cette technique rend plus difficile l'identification de l'IP source réelle (nous) dans les logs IDS.


🌐 Contourner via le port DNS (53)

📤 Scan standard :

sudo nmap <IP CIBLE> -p50000 -sS -Pn -n --disable-arp-ping --packet-trace

📥 Réponse :

SENT TCP <IP ATTAQUANT>:33436 > <IP CIBLE>:50000 S
SENT TCP <IP ATTAQUANT>:33437 > <IP CIBLE>:50000 S

PORT      STATE    SERVICE
50000/tcp filtered ibm-db2

📤 Scan depuis le port 53 (source) :

sudo nmap <IP CIBLE> -p50000 -sS -Pn -n --disable-arp-ping --packet-trace --source-port 53

📥 Réponse :

SENT TCP <IP ATTAQUANT>:53 > <IP CIBLE>:50000 S
RCVD TCP <IP CIBLE>:50000 > <IP ATTAQUANT>:53 SA

PORT      STATE SERVICE
50000/tcp open  ibm-db2

🧠 Les pare-feux autorisent souvent le port 53 pour les requêtes DNS : l’utiliser comme port source peut tromper les filtres !


🧪 Tester l'accès avec Netcat (ncat)

📤 Commande :

ncat -nv --source-port 53 <IP CIBLE> 50000

📥 Réponse :

Ncat: Connected to <IP CIBLE>:50000.
220 ProFTPd

✅ Cela confirme que le port est ouvert et que l’évasion via le port source a fonctionné !


Mis à jour