Scanner une machine, et surtout un serveur, permet de vérifier la sécurité de base de la machine en identifiant les ports ouverts. Donc susceptibles d’être attaqués.
le scan permet également de tester le bon fonctionnement du firewall et d’adapter les règle en fonction des résultats.
Il existe quantité de logiciels de scan de ports et pléthore de méthodes de scan pour identifier les ports et les failles.
Ici nous allons utiliser NMAP qui est un des logiciel les plus répandu, open source, et surtout disponible sur Windows, Mac OS et Linux. C’est quand même plus pratique si on jongle entre plusieurs OS.
En complément de Nmap vous pouvez identifier les ports ouverts avec Netstat.
Dans ce tuto NAMP nous allons voir les différentes techniques de scan de port.
Sans trop rentrer dans les détails, voici les options de base pour faire un scan assez efficace depuis une machine sous Debian.
nmap -options ip_du_serveur
On peut également taper directement nmap ip_du_serveur sans options.
Nmap réalisera par défaut un scan SYN du protocole TCP.
Par défaut c’est bien mais il y a quelques manques.
Si on scanne une machine protégée par un firewall, ce dernier peut bloquer les paquets SYN.
Nmap utilisera alors le scan par TCP connect().
Autre point, avec cette commande, Nmap ne scannera qui le protocole TCP et pas le protocole UDP. Et sur ce dernier aussi il y a peut-être des ports à fermer.
Donc, on va demander explicitement à Nmap de faire un scan TCP SYN + un scan UDP.
Ce qui donne :
nmap -sS -sU ip_du_serveur
Nmap retournera un résultat de ce genre :
# nmap -sS -sU 192.168.1.101
Starting Nmap 4.11 (
http://www.insecure.org/nmap/ ) at 2014-01-02 10:43 CET
Interesting ports on votre_serveur (192.168.1.101):
Not shown: 3108 closed ports
PORT STATE SERVICE
21/tcp open ftp
25/tcp open smtp
53/tcp open domain
80/tcp open http
53/udp open domain
53/udp open domain
67/udp open|filtered dhcps
68/udp open|filtered dhcpc
88/udp open|filtered kerberos-sec
123/udp open|filtered ntp
137/udp open|filtered netbios-ns
MAC Address: adrese_mac_du_serveur (Microsoft)
Nmap finished: 1 IP address (1 host up) scanned in 175.176 seconds
On voit donc ici qu’en TCP les ports ftp, smtp, http, etc… qui sont ouverts. Et qu’en UDP on a domain, dhcp, ntp, etc…
A partir de là, on peut ajuster son firwall en conséquence.
Si par exemple, ce serveur n’est pas un serveur web, on peut désactiver le service http et aussi fermer le port correspondant.
Une autre option peut donner des informations intéressantes à quelqu’un qui voudrait s’en prendre à ce serveur. C’est l’option -sV.
En ajoutant cette option aux deux précédentes Nmap retournera la version du logiciel qui écoute sur un port donné.
nmap -sS -sU -sV 192.168.1.101
Nmap retournera (extrait) :
PORT STATE SERVICE VERSION
21/tcp open ftp FileZilla ftpd 0.9.37 beta
25/tcp open smtp
53/tcp open domain?
80/tcp open http Microsoft IIS webserver 7.0
88/tcp open kerberos-sec Microsoft Windows kerberos-sec
110/tcp open pop3
135/tcp open msrpc Microsoft Windows RPC
La par exemple, si on imagine qu’il y a une faille de sécurité sur Filezilla 0.9.37 beta… Il n’y a plus qu’à se servir 🙂
Autre option que l’on peut ajouter, c’est le réglage du timing.
Si on scanne un serveur distant et qu’on ne peut pas maitriser le firewall d’en face, comme par exemple tester son propre serveur hébergé chez OVH, il est bon d’indiquer à Nmap de ne pas y aller « comme un sauvage » histoire de ne pas se faire remarquer.
On ajoute donc l’option -Tx à notre commande.
« X » pourra prendre 6 valeurs, de 0 à 5. Sachant que 0 sera le plus lent et 5 le plus agressif. Par défaut nmap est réglé à 3.
Exemple :
nmap -sS -sU -sV -T3 192.168.1.101
Quels sont les protocoles disponibles avec Nmap ?
C’est peut-être par là qu’il faut commencer en fait 🙂
Nmap permet de savoir quels sont les protocoles disponibles sur la machine d’en face. Ca permet de se faire une idée tout de suite.
Pour cela on passe l’option -sO.
nmap -sO 192.168.1.101
Nmap retournera :
# nmap -sO 192.168.1.101
Starting Nmap 4.11 (
http://www.insecure.org/nmap/ ) at 2014-01-02 10:59 CET
Interesting protocols on votre_serveur (192.168.1.101):
Not shown: 243 closed protocols
PROTOCOL STATE SERVICE
1 open icmp
2 open|filtered igmp
4 open|filtered ip
6 open tcp
17 open udp
145 open|filtered unknown
MAC Address: mac (Microsoft)
Nmap finished: 1 IP address (1 host up) scanned in 30.881 seconds
Scanner avec Nmap en IPV6 ?
Nmap sait également scanner des IP v6. Il suffit de passer l’option -6.
Par contre attention pour scanner en ipv6, il faut que ce dernier soit activé sur votre machine « source ».
nmap -6 3ffe:7501:4819:2000:210:f3ff:fe03:14d0