Scan de ports réseaux ou balayage de ports

5.0
03

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 doncde 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.

Dans cet article, quelques explications autour du scan de ports. Comment effectuer un port scan, quelques outils présentés et comment s’en protéger.
Enfin le sujet étant vaste et complex, nous simplifions au maximum.

Introduction

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.

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.
Le port scan peut se faire de 1 à 65535 de manière incrémentale ou sur des ports aléatoires.

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.

Exemple de ports scans

Il existe de multiples applications sur Linux et Windows.

Nmap

Le plus connus et renommé est nmap qui existe en ligne de commandes ou avec une interface graphique (Zenmap).

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.

Et bien sûr on retrouve la même chose avec le nmap pour Windows.

Ici c’est un exemple basique.
Il existe bien entendu, des options pour scanner un seul port ou encore jouer sur le mode de connexion ou protocole pour contourner des filtrages.
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 IPs d’un réseau, 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 complet.
Ainsi les noms des ordinateurs sont très rapidement récupérés.

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

Enfin on peut dessiner la topologie du réseau.

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.

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, c’est votre routeur/box que vous scannez.

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

Vous pouvez récupérer votre adresse IP publique depuis http://adresseip.com puis l’utiliser sur le site.

Les implications de sécurité réseaux

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 à jour vos applications installées, afin que de corriger toute vulnérabilité connue.

Côté serveur :

  • Iptables permet de filtrer les accès : tutoriel Iptables
  • Failban permet de détecter les ports scans
  • Le port knocking peut aussi permettre de dissimuler des services, exemple avec le tutoriel pour sécuriser SSH.

A 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.

Liens

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

Tous les tutos de sécurité depuis le menu Virus & Sécurité.

image_pdfimage_print
(Visité 24 091 fois, 21 visites ce jour)
5.0
03

Add Comment