Comment faire un scan de ports réseaux ou balayage de ports réseaux

Le scan de ports réseaux ou balayage de ports est une méthode qui consiste à énumérer les ports ouverts ou actifs d'une cible.
Le but est surtout de lister les ports ouverts afin de connaître les applications et services en cours de fonctionnement.

Cela permet de trouver des applications vulnérables pour pirater d'un ordinateur ou serveur ou encore obtenir d'autres informations sur le système (version de l'OS, etc).
Il s'agit donc de la première action à mener lors d'un test de pénétration dans le cadre de découverte de la cible.
Il s'agit d'énumérer les services réseaux utilisés, obtenir des informations sur ces derniers puis par la suite mener des attaques contre ces derniers.

Ce tutoriel vous donne toutes les explications autour du scan de ports.
Mais aussi comment effectuer un port scan et enfin quelques outils présentés et comment s'en protéger.
Enfin le sujet étant vaste et complexe, nous simplifions au maximum.

Scan de ports réseaux ou balayage de ports

Principe du scan de port réseau

L'introduction précédente résume à peu prêt l'intérêt du port scan.

Voici un rappel très rapide : un port est comme une porte et une application ouvre un port en écoute afin que tout ordinateur puisse s'y connecter.
Par exemple, un serveur WEB passe le port 80 et 443 en écoute,afin que les navigateurs WEB des clients puissent s'y connecter.

Un logiciel de port scan permet de connaître l'état des ports et donc des applications utilisées sur une machine distante.
Elle peut aussi au sein d'un réseau en donner la topologie.

Ici ion utilise un logiciel qui va se tester chaque port d'une cible pour vérifier son état et ainsi lister les ports en écoute.
Pour cela,

  • Il envoie des paquets TCP ou UDP vers une cible pour un port donné.
  • La machine cible répond en indiquant l'état du port.
  • Le programme de scan de ports analyse les réponses et indique alors les ports ouverts ou fermés.

Le port scan peut se faire de 1 à 65535 de manière incrémentale ou sur des ports aléatoires.
A lire sur le sujet :

Liste des ports et services

Le port scan peut aussi cibler des services réseaux connus utilisant des ports standard, exemple :

  • 9, pour le WoL, Wake-on-LAN, c'est-à-dire le démarrage à distance par un câble réseau ethernet. Wake-on-LAN
  • 20/21, pour l'échange de fichiers via FTP
  • 22, pour l'accès à un shell sécurisé Secure SHell, également utilisé pour l'échange de fichiers sécurisés SFTP
  • 23, pour le port telnet
  • 25, pour l'envoi d'un courrier électronique via un serveur dédié SMTP
  • 53, pour la résolution de noms de domaine en adresses IP : DNS
  • 67/68, pour DHCP et bootpc
  • 80, pour la consultation d'un serveur HTTP par le biais d'un navigateur web
  • 110, pour la récupération de son courrier électronique via POP
  • 123 pour la synchronisation de l'horloge : Network Time Protocol (NTP)
  • 143, pour la récupération de son courrier électronique via IMAP
  • 389, pour la connexion à un LDAP
  • 443, pour les connexions HTTP utilisant une surcouche de sécurité de type SSL : HTTPS
  • 465, pour l'envoi d'un courrier électronique via un serveur dédié utilisant une surcouche de sécurité de type SSL : SMTPS
  • 500, port utilisé pour le canal d'échange de clés IPsec
  • 636, pour l'utilisation d'une connexion à un LDAP sécurisé par une couche SSL/TLS
  • 1352, pour le protocole Lotus Notes Domino
  • 1433, serveur de base de données MS SQL
  • 1521, serveur de base de données Oracle Database
  • 1723, pour l'utilisation du protocole de VPN PPTP
  • 3306, serveur de base de données MySQL
  • 3389, pour la prise de contrôle à distance RDP
  • 5432, serveur de base de données PostgreSQL
  • 6667, pour la connexion aux serveurs IRC

L'état des ports

Lors d'une tentative d'accès à un port, le système peut retourner ou non des informations sur l'état du port.
C'est cet état qui permet de donner des informations sur les applications en cours de fonctionnement sur l'ordinateur ou serveur ciblé.
Pour simplifier, on retiendra quatre états différents lors d'un port scan :

  • Port Ouvert : une application a ouvert le port et ce dernier est en écoute. Un client peut alors se connecter à ce port.
  • Port Fermé : Aucune application n'est en écoute sur ce port. Lorsque vous vous connectez à ce port, le système émet une réponse. Notez que cela donne une information sur la cible.
  • Port Filtré : Une application réseau, dans la majorité des cas un pare-feu / firewall, filtre l'accès sur le port. Ainsi, vous n'êtes pas capable de déterminer si le port est ouvert ou fermé puisque la connexion est bloquée avant l'accès à ce dernier.
  • Port non filtré : Le port est accessible mais le programme qui émet la connexion n'est pas capable de déterminer si le port est état ouvert ou fermé.

Enfin, le port scan peut être fait depuis internet vers une cible, par exemple, vous pouvez scanner votre adresse IP publique.
Mais aussi dans un réseau local (LAN) pour lister tous les ordinateurs de ce dernier puis les serveurs réseaux qui tournent sur chaque poste.

Comment faire un scan de ports réseaux ou balayage de ports réseaux

Il existe de multiples applications sur Linux et Windows pour effectuer des balayages de ports réseaux.

avec Advanced IP Scanner pour Windows

Il existe de multiples autres programmes qui permettent d'effectuer ce type de port scan et scan du réseau local.
Notamment Advanced IP Scanner pour Windows.

Ce dernier permet d'énumérer très facilement les machines et hôtes d'un réseau LAN.
On obtient donc la liste des hôtes avec leurs adresses IP et adresse MAC.

  • Saisissez l'hôte ou plusieurs hôtes
  • Puis à droite la liste des ports à scanner
  • Cliquez sur le bouton Démarrer pour lancer le port scan
  • La liste des PC distants avec les ports ouverts s'affichent
Faire un scan de port avec Advanced IP Scanner sur Windows
  • Les PC du réseau apparaissent en liste avec les ports ouverts
  • En cliquant dessus, vous avez les détails des ports réseaux
Faire un scan de port avec Advanced IP Scanner sur Windows

avec Nmap pour Windows et Linux

Nmap (Network Mapper) est un utilitaire le plus connus et renommé qui existe en ligne de commandes ou avec une interface graphique (Zenmap).

Pour installer Nmap sur Linux :

sudo apt-get install nmap	#Pour les distributions basés sur Debian
yum install nmap		#Pour les distributions basés sur Redhat

Pour Windows :

Pour exemple pour énumérer les ports ouverts d'un PC distant avec des informations sur la version du service réseau :

En ligne de commandes, on peut lister les ports standard et obtenir des informations sur les versions.
Dans cet exemple environ 1000 ports scannés et 993 ports filtrés.
Ainsi, ci-dessous, on sait que le serveur est potentiellement sur une Debian avec les versions de Nginx et OpenSSH.

nmap -sV www.adresse.tld
Faire scan de port avec Nmap

Et bien sûr on retrouve la même chose avec le nmap pour Windows.
En haut vous pouvez spécifier la ou les cibles ou en bas saisir directement les commandes Nmap.

Faire un scan de port avec Nmap

Nmap propose beaucoup d'options pour scanner un seul port ou encore jouer sur le mode de connexion ou protocole pour contourner des filtrages des firewall.
Dans les exemples précédents, il s'agit d'un scan TCP, on peut faire la même chose en UDP, dans le cas où des applications écoutent sur ces ports.

Dans un réseau LAN

Pour aller plus loin, on peut alors de scanner toutes les adresses IP d'un réseau local LAN, afin d'obtenir la liste des ordinateurs et serveurs présents puis effectuer un scan de port sur chacun afin de lister les services réseaux en écoute.
Il s'agit d'une découverte du réseau.

Nmap fait très bien cela, en indiquant un subnet ou masque de sous réseau complet.
Ainsi les noms des ordinateurs sont très rapidement récupérés.

nmap 192.168.1.0/24
nmap 192.168.1.*
scan de port avec Nmap dans un réseau LAN

Puis un scan de ports est possible sur chaque adresse IP :

scan de port avec Nmap dans un réseau LAN

Enfin on peut dessiner la topologie du réseau.

scan de port avec Nmap dans un réseau LAN

Depuis internet

Les ordinateurs du réseau local (LAN) ne sont pas accessible depuis internet.
En effet c'est le principe du NAT mais on peut avoir des exceptions avec les transferts de ports du routeur vers un ordinateur du LAN.
Ainsi, si vous effectuez un port scan d'internet vers votre adresse IP publique.
Dans ce cas, le scan de port cible votre routeur/box.

Il existe des services WEB qui permettent d'effectuer ces scans, en voici quelque uns :

Pour récupérer votre adresse IP publique, suivez ce tutoriel : Comment trouver l'adresse IP publique ou locale

scan de port sur internet

Fermer des ports réseaux et bloquer les ports scans

Lire aussi la page : La notion de port ouvert et la sécurité et Lister les connexions établies sur Windows
Cette page liste notamment quelques programmes qui permettent de lister les applications en écoute et donc ports ouverts sur Windows.

Si une application est en écoute, cela signifie qu'on peut s'y connecter et éventuellement utiliser des vulnérabilités afin de pirater l'ordinateur ou le serveur.

Les recommandations basiques sont donc :

  • Arrêter les applications inutiles, moins vous avez d'applications qui tournent, moins vous avez de porte d'entrée.
  • Filtrer au maximum les accès sur les applications en écoute. C'est le boulot du pare-feu / firewall.
  • Maintenez vos applications à jour afin que de corriger les vulnérabilités et failles logiciels connues.

Côté serveur :

Sur connexion internet à la maison

Rien vraiment à faire, en général, les routeurs et box possèdent des protections contre les ports scans.
Vous pouvez vous identifier sur l'interface de gestion de votre routeur/box et configurer le filtrage des services.

Bloquer le Browser Port Scan

Le Browser Port scan permet d'effectuer un scan de port de votre PC depuis une page WEB.
En plus d'énumérer les ports ouverts, il est possible de lister les machines de votre réseau.

L'article suivant explique le principe et comment s'en protéger.

Liens

Enfin les articles suivants expliquent comment vérifier si un port est ouvert en effectuant un scan de ports :