Nmap-fr:Techniques scan
Techniques de scans
Nmap offre la possibilité de sélectionner le type de scan parmi les options suivantes ;
-sS
L'option -sS (TCP SYN) scanne les hôtes en établissant une connexion à demi-ouverte avec eux (2 premières phases de la poignée de main TCP). L'extrait d'un fichier de capture suit suit montre l'envoi d'un SYN par Nmap, le retour de l'hôte scanné (SYN ACK) puis, directement la demande de clôture (Reset) sans avoir établi la connexion (renvoi d'un flag ACK) :
08:43:40.875878 IP 172.16.196.1.35682 > 172.16.196.128.80: S 1202963499:1202963499(0) win 4096 <mss 1460> 08:43:40.876526 IP 172.16.196.128.80 > 172.16.196.1.35682: S 2578571873:2578571873(0) ack 1202963500 win 5840 <mss 1460> 08:43:40.876553 IP 172.16.196.1.35682 > 172.16.196.128.80: R 1202963500:1202963500(0) win 0
-sT
L'option -sT (TCP connect) permet l'utilisation de connexions entières. Cette technique de scan n'est pas très furtive. L'extrait de fichier de capture qui suit montre l'établissement de la connexion (3-way-handshake) puis la demande de fermeture (Reset ACK) :
08:13:55.508286 IP 172.16.196.1.34335 > 172.16.196.128.80: S 3089877315:3089877315(0) win 5840 <mss 1460,sackOK,timestamp 272181 0,nop,wscale 6> 08:13:55.508957 IP 172.16.196.128.80 > 172.16.196.1.34335: S 697146497:697146497(0) ack 3089877316 win 5792 <mss 1460,sackOK,timestamp 224855 272181,nop,wscale 3> 08:13:55.508984 IP 172.16.196.1.34335 > 172.16.196.128.80: . ack 697146498 win 92 <nop,nop,timestamp 272181 224855> 08:13:55.509034 IP 172.16.196.1.34335 > 172.16.196.128.80: R 3089877316:3089877316(0) ack 697146498 win 92 <nop,nop,timestamp 272181 224855>
-sA
Ce type de scan n'a pas pour objectif de déterminer l'état des ports. En revanche, il permet de déterminer si un firewall est installé sur l'hôte scanné, si celui-ci est stateful (à conservation d'état), et de définir les ports filtrés.
L'option -sA (ACK) permet d'activer le flag ACK. L'extrait de fichier de capture qui suit montre l'envoi d'un flag ACK par Nmap puis, directement la réponse (Reset) de l'hôte scanné :
08:45:24.373058 IP 172.16.196.1.53318 > 172.16.196.128.80: . ack 2726859411 win 1024 08:45:24.373624 IP 172.16.196.128.80 > 172.16.196.1.53318: R 2726859411:2726859411(0) win 0
-sW
L'option -sW (Window) fournit les captures suivantes :
20:36:14.067409 IP 172.16.196.1.54088 > 172.16.196.128.80: . ack 1541328001 win 4096 20:36:14.067500 IP 172.16.196.128.80 > 172.16.196.1.54088: R 1541328001:1541328001(0) win 0
-sM
L'option -sM (Maimon) consiste à envoyer des paquets avec le flag F (FIN) activé. Cette technique fournit les captures suivantes :
20:39:43.036386 IP 172.16.196.1.35116 > 172.16.196.128.80: F 2169095113:2169095113(0) ack 1357495744 win 2048 20:39:43.036931 IP 172.16.196.128.80 > 172.16.196.1.35116: R 1357495744:1357495744(0) win 0
-sU
L'option -sU (UDP) permet d'effectuer un scan UDP
20:44:47.767754 IP 172.16.196.1.38453 > 172.16.196.128.20004: UDP, length 0 20:44:47.768936 IP 172.16.196.128 > 172.16.196.1: ICMP 172.16.196.128 udp port 2 0004 unreachable, length 36
-sN
L'option -sN effectue un scan TCP Null (aucun flag n'est activé). La capture qui suit montre l'envoi du paquet par Nmap (aucun flag actif) ainsi que la réponse de l'hôte scanné (RA pour Reset ACK).
20:50:42.742059 IP 172.16.196.1.41451 > 172.16.196.128.4446: . win 4096 20:50:42.746083 IP 172.16.196.128.4446 > 172.16.196.1.41451: R 0:0(0) ack 4048324651 win 0
Le scanner envoie un paquet qui ne comporte aucun indicateur.
Le scanner envoie un paquet qui ne comporte aucun indicateur. Le système distant ignore le paquet si le port est ouvert et renvoie un paquet Reset dans le cas contraire.
-sF
L'option -sF active le flag F (FIN)
20:54:25.616009 IP 172.16.196.1.34297 > 172.16.196.128.2601: F 1403928697:1403928697(0) win 3072 20:54:25.616056 IP 172.16.196.128.2601 > 172.16.196.1.34297: R 0:0(0) ack 1403928698 win 0
-sX
L'option -sX permet d'effectuer un « christmas scan » (activation des flags FIN, PUSH et URG).
Sur un port fermé (23), la simulation avec Scapy fournit les résultats suivants (réception des flags RA pour RESET-ACK) :
>>> a=IP(dst="172.16.196.128")/TCP(dport=23,flags="S") >>> ans, unans = sr(a) >>> ans.summary() IP / TCP 172.16.196.1:ftp_data > 172.16.196.128:telnet S ==> IP / TCP 172.16.196.128:telnet > 172.16.196.1:ftp_data RA
Sur un port ouvert (80), la simulation avec Scapy fournit les résultats suivants (réception des flags SA pour SYN-ACK):
>>> a=IP(dst="172.16.196.128")/TCP(dport=80,flags="S") >>> ans, unans = sr(a) >>> ans.summary() IP / TCP 172.16.196.1:ftp_data > 172.16.196.128:www S ==> IP / TCP 172.16.196.128:www > 172.16.196.1:ftp_data SA
Les scans -sN, -sF et -sX ont comme principal avantage de traverser furtivement certains firewalls stateless. Cependant, si un IDS intercepte de tels paquets Nmap, il est fort probable qu'il les détecte comme une tentative de scan de port.
--scan-flags
L'option --scan-flags permet de personnaliser les flags à envoyer. Les flags peuvent être URG, ACK, PSH, RST, SYN et FIN, l'ordre dans lesquels ils sont spécifiés n'ayant pas d'importance.
Par exemple : --scan-flags RSTACKURG.
-sI
L'option -sI permet de mettre en oeuvre un idlescan. Nmap intègre directement dans son moteur la technique de l'idle scan, présentée en annexes.
-sO
L'option -sO permet de lister les protocoles pris en charge par un hôte. Ceci ne correspond pas tout à fait à un scan de port. L'exemple qui suit illustre un tel scan. On y voit que les protocoles supportés par l'hôte 172.16.196.128 sont les suivants : ICMP, IGMP, TCP et UDP.
$ sudo nmap -sO 172.16.196.128 Starting Nmap 4.76 ( http://nmap.org ) at 2008-10-27 08:14 CET Interesting protocols on 172.16.196.128: Not shown: 251 closed protocols PROTOCOL STATE SERVICE 1 open icmp 2 open|filtered igmp 6 open tcp 17 open udp 41 open|filtered ipv6 MAC Address: 00:0C:29:AE:22:C9 (VMware) Nmap done: 1 IP address (1 host up) scanned in 335.23 seconds
-b
Le scan par rebond FTP (FTP Bounce) est assuré par l'option -b user:passwd@serveur:port. Cette technique est aujourd'hui un peu désuète mais il est encore possible de trouver des serveurs FTP vulnérables.
Tableau résumé
Le tableau qui suit résume les options de scan ainsi que leurs spécificités et l'interprétation des résultats.
Méthode | Spécificités | Comportement |
---|---|---|
-sS (TCP SYN Scan) |
Nécessite des privilèges administrateur (envoi de raw packets) Envoi d'un paquet forgé qui contient l'indicateur SYN (connexion à demi-ouverte) |
Ouvert : Renvoi de l'indicateur SYN/ACK Fermé : Renvoi de l'indicateur RST Filtré : aucune réponse après plusieurs essais ou réception d'un message ICMP (unreachable ICMP type 3, code 1,2, 3, 9, 10 ou 13) |
-sT (TCP connect) |
Utilisé si -sS ne peut être utilisé. Établit une connexion haut niveau (par opposition aux paquets bruts forgés) en respectant la poignée de main TCP : SYN –SYN/ACK – ACK | |
-sA (TCP ACK scan) |
Ne détermine pas l'état des ports (ouvert, fermé, filtré) mais est utilisé afin de déterminer si un firewall est stateful ou stateless. N'active que le drapeau ACK des paquets |
Nonfiltré : Renvoi d'un paquet RST. Ne permet pas de savoir si le port est ouvert ou fermé Filtré : aucune réponse ou renvoi d'un message ICMP (unreachable ICMP type 3, code 1, 2, 3,9, 10, ou 13) |
-sU (UDP scan) |
Envoi un en-tête UDP sans données |
|
-sW (Window scan) |
Même scan que le scan ACK à la différence près qu'il exploite un détail de l'implémentation de certains systèmes pour identifier les ports fermés des autres, au lieu de toujours afficher non filtré lorsqu'unRST est renvoyé. |
Ouvert : taille de fenêtre positive Fermé : taille de fenêtre TCP du paquet RST nulle. |
-sM (Maimon TCP scan) |
Même technique que les scans NUll,FIN et Xmas, à la différence près que le paquet de test est iciun FIN/ACK. |
Conformémentà la RFC 793 (TCP), un paquet RST devrait être renvoyé commeréponse à un tel paquet, et ce, que le port soit ouvert ou non. Ouvert : de nombreux systèmesbasés sur BSD rejettent le paquet |
-sN (Null scan) |
N'active aucun des bits (lesdrapeaux de l'en-tête TCP vaut 0). |
Ouvert| filtré : Ignore le paquet Fermé: Renvoi d'un paquet Reset Filtré : réception d'unmessage d'erreur ICMP « unreachable (type 3, code 1, 2, 3,9, 10 ou 13) » |
-sF (FIN scan) |
N'active que le bit FIN | |
-sX (Christmas scan) |
Active les drapeaux FIN, PSH et URG | |
-sO | Scan de protocoles | |
-b | Scan par rebond FTP |