Nmap : Comment scanner les ports ouverts d'une machine ?

Attention, vous êtes surveillés !

09 juillet 2012

Nmap est un scanner de port qui est très utilisé par les administrateurs de réseaux pour avoir des informations sur la sécurité de leurs architectures. Evidemment, les hackers s'en servent eux aussi abondamment pour les mêmes raisons. Attention donc aux informations que vous laissez échapper !

Avant de suivre ce tutoriel, vous devez savoir ce qu'est un port logiciel : Qu'est ce qu'un port logiciel ?

Toutes les manipulations seront réalisées sous Debian Squeeze.

Nmap permet de balayer une plage de ports et, grâce au fichier /usr/share/nmap/nmap-services fait la relation entre ces ports et les services associés. C'est cette fonctionnalité qui permet aux pirates d'obtenir des informations sur les protocoles que vous utilisez et qui leur fournit la porte d'entrée vers votre système. Bien sûr, sauf si vous réalisez les tests sur un réseau privé, vous obtiendrez non pas les ports ouverts d'un ordinateur, mais ceux de la passerelle du réseau. Si vous êtes un particulier il y a de fortes chances que ce soit votre set top-box (LiveBox, FreeBox etc...) qui réponde. Notez que les administrateurs dans une entreprise ou même les fournisseurs d'accès à internet ne sont pas fan du balayage de ports, car il est souvent synonyme d'attaque imminente. Je vous recommande donc de ne pas en abuser en dehors de votre réseau domestique.

Réalisons un premier essai :

Port scanning de ma passerelle

# Installation de nmap

aptitude install nmap;


# Balayage des ports des n°1 à 65535. Sur l'adresse IP A.B.C.D

nmap  -p1-65535 A.B.C.D

Starting Nmap 5.00 ( http://nmap.org ) at 2012-07-09 13:33 CEST
Interesting ports on D.C.B.A.rev.sfr.net (A.B.C.D):
Not shown: 65527 closed ports
PORT      STATE    SERVICE
80/tcp    open     http
1863/tcp  open     msnp
1864/tcp  open     paradym-31
4443/tcp  open     pharos
5190/tcp  open     aol
5566/tcp  open     unknown
32764/tcp open     unknown
49153/tcp open     unknown

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

Comme vous pouvez le voir, j'ai obtenu la liste des services ouverts sur mon routeur et j'ai obtenu le nom de mon F.A.I. Maintenant imaginons que je sois un grand méchant et que je veuille utiliser BitTorrent à des fins illégales. Je lance mon logiciel préféré (tests réalisés avec BitTorrent 7.6.1) et je démarre le téléchargement de ma chanson préférée : Surprise.

Port scanning de ma passerelle avec BitTorrent

nmap  -p1-65535 A.B.C.D

Starting Nmap 5.00 ( http://nmap.org ) at 2012-07-09 13:39 CEST
Interesting ports on D.C.B.A.rev.sfr.net (A.B.C.D):
Not shown: 65527 closed ports
PORT      STATE    SERVICE
80/tcp    open     http
1863/tcp  open     msnp
1864/tcp  open     paradym-31
4443/tcp  open     pharos
5190/tcp  open     aol
5566/tcp  open     unknown
6881/tcp  filtered bittorrent-tracker
32764/tcp open     unknown
49153/tcp open     unknown

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

Oups, grillé ! Heureusement pour vous, les logiciels de nos jours sont assez intelligents pour pouvoir changer de port aléatoirement et n'utilisent plus celui par défaut.

Méfiez vous de certains résultats de nmap car comme je vous l'ai dit, il se base sur le fichier nmap-services. Ainsi si je fais un SCAN de la machine dont je me sers pour réaliser ce tutoriel, il me détecte snet-sensor-mgmt sur le port 10000 alors qu'en fait mon port 10000 est utilisé par Webmin.

Port scanning d'un serveur

nmap  localhost

Starting Nmap 5.00 ( http://nmap.org ) at 2012-07-09 13:50 CEST
Interesting ports on localhost (127.0.0.1):
Not shown: 982 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
25/tcp    open  smtp
53/tcp    open  domain
80/tcp    open  http
110/tcp   open  pop3
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
143/tcp   open  imap
445/tcp   open  microsoft-ds
631/tcp   open  ipp
901/tcp   open  samba-swat
993/tcp   open  imaps
2049/tcp  open  nfs
3128/tcp  open  squid-http
3306/tcp  open  mysql
4242/tcp  open  unknown
5432/tcp  open  postgresql
10000/tcp open  snet-sensor-mgmt

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

Comme vous pouvez le voir, nmap indique exactement tous les services démarrés sur ma machine. Pour informations, sachez qu'en pratique, il est très courant de ne pas attribuer le port 22 au SSH afin d'éviter des attaques au dictionnaire. Sur ces exemples, j'ai utilisé le scan par défaut de nmap qui est le TCP SYN, je vous laisse regarder le manuel pour voir les autres possibilités. Si vous souhaitez protéger votre système, n'oubliez surtout pas les ports UDP qui sont tout aussi dangereux : option -sU de nmap.

Il est très compliqué de se protéger face au balayage de ports. La plupart des firewalls utilisent une technique qui étudie les connexions : si la même adresse IP se connecte sur plusieurs ports, c'est surement une attaque et l'adresse est bloquée. La meilleure prévention, je pense, est tout simplement de faire attention aux services que vous lancez.

Merci d'avoir été jusqu'au bout du tuto


"Il faut parfois savoir balayer ce que l'on croyait solidement construit pour tout recommencer." Vera Farmiga

Par
Créateur et administrateur.

Dans la même catégorie

Qu'est ce qu'un port logiciel ?

Commentaire(s)