Nmap tutoriel
Nmap est un petit logiciel tres puissant et souvent utilisé en réseau. Il permet en autre d'obtenir des info précieuses sur les machines de votre réseau, que ce soit les ports pour ouverts, les OS et les services qui tournent dessus par exemple. Le plus cool dans tout cela c'est que Nmap utilise les messages SYN du protocole TCP et reste donc indétectable.
Fonctionnement
TCP Scan: Le fonctionnement est assez basique, nmap envoie un paquet SYN de synchronisation, la cible lui renvoie une demande de reconnaissance SYN/ACK puis l'hote nmap lui renvoie un paquet de reconnaissance. Ceci laisse donc une trace dans les log de la machine cible en signifiant que la l'hote nmap c'est connecté. utilisation basique du protocole TCP.
SYN Scan: La c'est beaucoup plus interessant. Comme dit plus haut nmap permet l'utilisation des message SYN pour rester indétectable, c'est a dire qu'aucun log de connexion ne sera disponible sur la machine cible. On peux voir sur le schéma le fonctionnement, c'est a dire que l'hote nmap va envoyer un paquet Reset au moment de la demande de reconnaissance de la machine cible, la connexion est donc coupée et rien n'est disponible sur la machine cible.
Les Bases
Nmap permet de nombreuses options, je vais essayer de detailler les plus importantes.
Scan type:
-sS : Scan SYN (cf schéma 2 plus haut), permet de voir les ports TCP ouvert
-sT : Scan TCP (cf schéma 1 plus haut), permet de voir les ports TCP ouvert
-sU : Scan UDP, permet de voir les ports UDP ouvert
-sP : Scan Ping, permet de voir si une machine est sur le réseau
Options en tout genre:
-v : Verbose, permet d'avoir des info pendant que la commande s'execute
-O : Operating System, permet de connaitre le systeme d'exploitation
-p : Port, permet de scanner un port ou une plage de port
-sV : Service Version, permet la detection des versions de service tournant sur la cible
-n : No DNS Resolution, sans resolution DNS
-oN : Output Normal, écrire la sortie dans un fichier
-F : Fast scan
-P0 : Ping 0, pas de ping juste le scan
Voila pour les options les plus utilisées mais il y a en plein d'autre, ne pas hésiter a aller visiter l'aide.
En pratique
En pratique voila ce que ça donne
# nmap -sS 192.168.56.101 Starting Nmap 5.00 ( http://nmap.org ) at 2010-03-08 17:36 GMT Interesting ports on 192.168.56.101: Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 111/tcp open rpcbind MAC Address: 08:00:27:03:F1:B2 (Cadmus Computer Systems) Nmap done: 1 IP address (1 host up) scanned in 0.45 seconds
Il y a plusieurs methodes pour definir la cible, en voici un exemple:
nmap -sS 192.168.1.0/24 nmap -sS 192.168.1.1-255 nmap -sS 192.168.1.*
Pour connaitre les systeme d'exploitation sur votre réseau
#nmap -O 192.168.1.0/24
Ceci affichera une ligne de ce style
Running: Linux 2.6.X OS details: Linux 2.6.13 - 2.6.27
Ce genre de commande est souvent utilisé pour faire des inventaire de son réseau, on Peut tres bien formater la sortie. Par exemple
# nmap -O 192.168.1.1-255 | grep "Running: " | sort | uniq -c
Ca affichera le nombre de machine sous Linux, windows ou autre sous cette forme:
2 Running: Linux 2.6.X 1 Running: Apple
L'enregistrement dans un fichier:
# nmap -sS -oN fichier 192.168.56.101
Scan d'une plage de port:
# nmap -p 0-80 192.168.56.101
Voila en gros les possibilités, je vous invite a consulter le man ici