Scan 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 en court d’écoutes et sur lesquelles, il est possible de se connecter.

Cela permet éventuellement de trouver des applications vulnérables qui peuvent permettre le piratage d’un ordinateur ou serveur, ou encore obtenir d’autres informations sur le système (version de l’OS etc).
Le port scan est donc la première action menée 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.
Le sujet étant complexé, ce dernier est très simplifié.

Introduction

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

Rappel très rapide, un port est comme une porte, lorsqu’une application réseau est installée, celle-ci ouvre un port en écoute, afin que tout ordinateur puisse s’y connecter.
Par exemple, un serveur WEB, met le port 80 et 443 en écoute, afin que les navigateurs WEB des clients puissent s’y connecter.

Il s’agit d’utiliser un logiciel qui va se connecter à chaque port d’un ordinateur ou serveur pour vérifier si ce dernier est ouvert et donc potentiellement derrière une application/service réseau est en écoute.
Le port scan peut se faire de 1 à 65535 de manière incrémentale ou sur des ports aléatoires.

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

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 qui peuvent être récupérés depuis 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 (environ 1000 ports ont été scannés, 993 ports sont filtrés).
Ainsi, ci-dessous, on sait que le serveur est potentiellement sur une Debian avec les versions de nginx et OpenSSH.

On retrouve la même chose (logique non ?) 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 de potentielles 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.
Les noms des ordinateurs sont très rapidement récupérés.

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

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 directement accessibles depuis internet (principe du NAT), à l’exception des 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 :

Indiquez votre IP publique, vous pouvez récupérer celle-ci depuis http://adresseip.com

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 / box sont configurés par défaut pour détecter les ports scans.
Vous pouvez vous identifier sur l’interface de gestion de votre routeur/box et configurer le filtrage des services.

Liens

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

(Visité 343 fois, 3 visites ce jour)

Vous pouvez aussi lire...

Vous pouvez lire les articles et tutoriels suivants en rapport avec cette page :
SFC : réparer WindowsLes virus sur Android

Besoin d'aide ?

Posez votre question ou soumettez votre problème sur le forum malekal.com pour obtenir une aide efficace : Aller sur le forum malekal.com