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.
Table des matières
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.
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.
- Téléchargez l’utilitaire depuis ce lien :
- 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
- Les PC du réseau apparaissent en liste avec les ports ouverts
- En cliquant dessus, vous avez les détails des ports réseaux
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
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.
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.*
Puis un scan de ports est possible sur chaque adresse IP :
Enfin on peut dessiner la topologie du réseau.
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 :
- http://www.whatsmyip.org/port-scanner
- https://pentest-tools.com/…scanning/tcp-port-scanner-online-nmap
- https://www.grc.com/x/ne.dll?bh0bkyd2
Pour récupérer votre adresse IP publique, suivez ce tutoriel : Comment trouver l’adresse IP publique ou locale
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 :
- Iptables permet de filtrer les accès : iptables : comment configurer le firewall Netfilter de Linux
- Fail2ban permet de détecter et bloquer les ports scans sur un serveur : Fail2ban : protéger son serveur des attaques DoS et Bruteforce
- Le port knocking peut aussi permettre de dissimuler des services, exemple avec le tutoriel pour sécuriser SSH.
- Un système de détections d’intrusion (IDS) comme snort, etc.
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
- Port ouvert : sécurité, intrusion et piratage
- Scan de ports réseaux ou balayage de ports
- Transfert de ports et forward de ports
- Comment afficher et fermer les fichiers ouverts dans le partage Windows
- Liste des ports réseaux de connexion et fonctionnement
- Lister les connexions réseau sur Windows
- Comment vérifier si un port est ouvert ou utilisé sur Windows
- Le Browser Port Scan : comment le bloquer et s’en protéger
- Port ouvert : sécurité, intrusion et piratage
- Comment tester si port distant est ouvert sur Linux
- Comment vérifier si port distant est ouvert sur Windows
- Comment faire un scan de ports réseaux ou balayage de ports réseaux
- Comment faire un scan IP d’un réseau local LAN
- Netstat sur Linux : utilisations et exemples
- tcpdump : capturer et analyser le trafic réseau sur Linux
- Traceroute : a quoi cela sert et comment faire sur Windows et Linux
- Comment utiliser Nmap sur Windows (Zenmap)
- 13 exemples de commandes Nmap
- Comment faire un test de ping pour tester la connexion réseau ou mesurer la latence
- Qu’est-ce que la latence réseau
- Les commandes réseau utiles de Linux
- Comment configurer une adresse IP sur Ubuntu
- Linux : mesurer le débit et lister les connexions réseaux
- AirBnb: trouver une caméra cachée
- Windows 10 : La découverte du réseau ne fonctionne pas
- Hôte de service et forte utilisation CPU sur Windows 10