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
bonjour
excellent tuto merci
question néanmoins :
comment scanner les 65000… ports ?
jusqu’à présent je vois des scans partiels mais jamais sur tous les ports.
Y a t’il une solution ?
je partage totalement ta demande
c’est un véritable casse-tête que d’essayer de scanner la totalité des ports.
L”auteur serait sympa de répondre
Bonjour messieurs,
Désolé pour la réponse tardive… Les vacances… 🙂
Pour scanner l’ensemble des ports explicitement il suffit d’ajouter le flag “-p-“.
Par exemple “nmap -p- 192.168.1.101”.
Paul
Le scan de “tous” les ports est vite détecter et le scanner voit son IP bloquée. A éviter
est ce que tu peux faire un tuto pour montrer comment pirater un serveur ,je peux te donner tous les coordonnés de mon site web pour le faire ,je ne trouve pas sur le net comment exploiter il n’ya que scanner mais attaquer je vois rien
Désolé hackanonymos, mais ce n’est pas ma spécialité. Et entre nous, ce genre de discipline demande un peu plus qu’un petit tuto à lire vite fait 😉
Excellent j’aime ce que tu a expliqué
Bcp de bonnes infos dans cette page 🙂 Merci et bonne continuation
Bonjour et merci pour l article.
Je rencontre un probleme qui est le suivant:
Quand je fais un scan avec nmap il m affiche ceci. J ai bcp cherché sur le net mais pas trouvé de solutions…
Aurais tu quelque chose à me proposer?
Starting Nmap 7.70 ( https://nmap.org ) at 2018-06-15 14:21 EDT
Error #486: Your port specifications are illegal. Example of proper form: “-100,200-1024,T:3000-4000,U:60000-”
QUITTING!
Xavier, l’erreur signifie que nmap ne scannera pas les ports que tu as définie car, c’est “illegal”.
Le seul moyen de pouvoir scanner les ports que tu cherches à scanner est un petit script coder par tes soins pour pouvoir le scanner,
je te donne une indice; Python.
Merci pour le tuto.
A AZERTY123, je pense que tu avais mal tapé ta commande.
nmap -p- IP
le “p” est entre “-“
Being , ta question est très bonne
Je essayé de faire mes recherches et je trouver un truck que tu peux essayer pour scaner tout les ports
La commande est :
Nmap -v -sS -A -P 1-65535
Sur PC1, donner une commande qui permet de tester l’état de ports web sur la machine
PC2 en générant le minimum de paquets.