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.

Test

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.

Tcpscan

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.

Synscan

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