Utiliser Nmap pour analyser les ports réseau courants

NmapBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à utiliser Nmap pour analyser les ports réseau courants. L’analyse de ports est une technique essentielle en sécurité réseau : elle permet de repérer les ports ouverts sur un système cible. Ces ports peuvent constituer des points d’entrée potentiels pour des attaquants. Il s’agit donc d’une compétence importante pour les administrateurs réseau et les professionnels de la sécurité.

En apprenant à maîtriser Nmap, un puissant outil open source d’analyse réseau, vous pourrez découvrir les services actifs sur un réseau, évaluer les vulnérabilités et préserver l’intégrité de vos systèmes.

Comprendre les ports réseau et installer un serveur web

Dans cette étape, vous découvrirez ce que sont les ports réseau et pourquoi ils sont importants pour la cybersécurité. Ils jouent un rôle essentiel dans les communications entre les différentes applications et les différents services d’un réseau informatique. Ils servent de points de passage pour les données entrantes et sortantes d’un système. Il est donc important de bien comprendre cette notion lorsqu’on s’intéresse à la sécurité réseau.

Que sont les ports réseau ?

Les ports réseau sont des points de terminaison virtuels utilisés pour communiquer sur un réseau informatique. Imaginez des portes par lesquelles différentes applications et différents services peuvent envoyer et recevoir des données. Les ports permettent à plusieurs applications et services de partager les ressources réseau d’un même système sans interférer les uns avec les autres. Ils sont identifiés par des numéros allant de 0 à 65535, répartis en plusieurs plages ayant chacune un usage spécifique :

  • Ports 0 à 1023 : ce sont les ports bien connus, réservés aux services standards. Par exemple, HTTP (utilisé pour la navigation web) utilise généralement le port 80, FTP (pour le transfert de fichiers) le port 21 et SSH (pour l’accès distant sécurisé) le port 22.
  • Ports 1024 à 49151 : ce sont les ports enregistrés pour des applications spécifiques. Les développeurs peuvent enregistrer un numéro de port particulier pour leur application.
  • Ports 49152 à 65535 : ce sont les ports dynamiques ou privés. Les applications les utilisent lorsqu’elles doivent établir une connexion temporaire.

Configurer un serveur web pour l’analyse

Pour vous exercer à l’analyse de ports, vous allez d’abord configurer un serveur web sur votre machine locale. Un serveur web est un programme qui utilise HTTP (Hypertext Transfer Protocol) pour transmettre aux utilisateurs les fichiers qui composent les pages web. Lorsqu’un utilisateur saisit l’adresse d’un site web dans son navigateur, celui-ci envoie une requête au serveur web, qui répond en transmettant les pages correspondantes. Par défaut, les serveurs web utilisent le port 80.

Ouvrez une fenêtre de terminal dans l’environnement de VM LabEx. Le terminal est une interface textuelle qui vous permet d’interagir avec le système d’exploitation en saisissant des commandes. Vous devriez vous trouver dans le répertoire par défaut /home/labex/project. Vérifiez votre répertoire courant avec la commande suivante :

pwd

La commande pwd signifie « print working directory » (afficher le répertoire de travail). Elle affiche le chemin de votre répertoire courant. Vous devriez obtenir un résultat similaire à celui-ci :

/home/labex/project

Installez le serveur web Apache2 :

sudo apt update && sudo apt install apache2 -y

La commande sudo exécute des commandes avec les privilèges d’administration. apt update actualise les informations sur les paquets de votre système, et apt install apache2 -y installe le serveur web Apache2. L’option -y répond automatiquement « oui » aux demandes de confirmation pendant l’installation.

Démarrez le service Apache2 :

sudo service apache2 start

La commande service permet de gérer les services système. Ici, elle démarre Apache2 pour que le serveur puisse accepter les requêtes entrantes.

Vérifiez que le service Apache2 fonctionne correctement :

sudo service apache2 status

L’option status affiche l’état actuel du service Apache2. Vous devriez obtenir un résultat similaire à celui-ci :

* apache2 is running

Vous pouvez également vérifier que le serveur web est accessible en créant un nouvel onglet « Web Service ». Cliquez sur le symbole + dans la barre d’onglets supérieure de l’environnement virtuel, sélectionnez « Web Service », puis saisissez le port 80. Si la configuration est correcte, la page d’accueil par défaut d’Apache2 s’affiche.

Le serveur web fonctionne maintenant sur votre système et le port 80 est ouvert pour les communications. À l’étape suivante, vous utiliserez Nmap pour repérer ce port ouvert.

Découvrir Nmap et analyser les ports courants

Dans cette étape, vous allez utiliser Nmap pour repérer les ports ouverts sur le système qui héberge le serveur web que vous venez de configurer. En sécurité réseau, il est essentiel de connaître les ports ouverts, car ils peuvent constituer des points d’entrée potentiels pour des attaquants. Nmap vous permet de repérer ces ports et de prendre les mesures de sécurité appropriées.

Qu’est-ce que Nmap ?

Nmap, abréviation de Network Mapper, est un outil libre et open source bien connu, utilisé pour la découverte de réseaux et les audits de sécurité. Il offre de nombreuses possibilités dans le domaine de la sécurité réseau :

  • Découvrir les hôtes et les services d’un réseau : Nmap vous aide à repérer les appareils connectés à un réseau et les services qu’ils proposent. Il peut, par exemple, détecter la présence d’un serveur de fichiers, d’un serveur web ou d’un serveur de messagerie.
  • Créer un inventaire des systèmes d’un réseau : vous pouvez utiliser Nmap pour dresser la liste des systèmes présents sur un réseau, avec leurs adresses IP et les services qu’ils exécutent. Cet inventaire aide les administrateurs réseau à gérer et à maintenir le réseau.
  • Vérifier les ports ouverts sur les hôtes cibles : les ports sont comme des portes donnant accès à un ordinateur. Un port ouvert indique qu’un service est à l’écoute et prêt à accepter des connexions. Nmap peut analyser un hôte cible pour déterminer quels ports sont ouverts.
  • Identifier le système d’exploitation et les versions des services des hôtes réseau : connaître le système d’exploitation et les versions des services exécutés sur un hôte peut aider les professionnels de la sécurité à déterminer s’il existe des vulnérabilités connues susceptibles d’être exploitées par des attaquants.

Analyser les ports courants avec Nmap

Nmap propose plusieurs options d’analyse. Si vous débutez, l’option d’analyse rapide (-F) est très utile. Par défaut, Nmap analyse 1000 ports, ce qui peut prendre beaucoup de temps. L’option -F limite l’analyse aux 100 ports les plus courants et l’accélère ainsi considérablement.

Effectuez une analyse rapide de votre machine locale pour repérer le serveur web que vous venez de configurer.

Ouvrez le terminal et lancez une analyse rapide du système local :

nmap -F localhost

Cette commande comporte trois éléments :

  • nmap : lance l’outil d’analyse réseau.
  • -F : active le mode d’analyse rapide et limite l’analyse aux 100 ports les plus courants.
  • localhost : désigne votre machine locale, à l’adresse IP 127.0.0.1.

Après avoir exécuté la commande, vous devriez obtenir un résultat similaire à celui-ci :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 96 closed ports
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

Ce résultat fournit plusieurs informations importantes :

  • L’analyse a porté sur votre machine locale, dont l’adresse IP est 127.0.0.1.
  • Le port 80 est ouvert et exécute le service HTTP. Il s’agit du serveur web Apache installé précédemment, car Apache écoute par défaut sur le port 80.
  • Les autres ports courants sont fermés et ne sont pas détaillés.

Pour obtenir davantage d’informations, notamment sur les versions des services qui utilisent les ports ouverts, exécutez la commande suivante :

nmap -sV -F localhost

L’option -sV détecte les versions des services exécutés sur les ports ouverts. Le résultat sera plus détaillé :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 96 closed ports
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.X

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

Ce résultat confirme que le serveur web Apache fonctionne sur le port 80 et indique sa version.

Comprendre les résultats

Les résultats de l’analyse montrent que le port 80 est ouvert et qu’il exécute le service HTTP. C’est le résultat attendu : vous avez installé et démarré le serveur web Apache, qui écoute par défaut sur le port 80. Dans un contexte réel, connaître les ports ouverts est essentiel pour les professionnels de la sécurité :

  • Repérer les vulnérabilités potentielles : différents services exécutés sur des ports ouverts peuvent présenter des vulnérabilités connues. En identifiant les ports ouverts et les services qui les utilisent, les professionnels de la sécurité peuvent rechercher d’éventuels risques.
  • Vérifier que seuls les services nécessaires fonctionnent : les services inutiles accessibles sur des ports ouverts peuvent augmenter la surface d’attaque. En repérant les ports ouverts, les professionnels de la sécurité peuvent vérifier que seuls les services réellement nécessaires sont actifs.
  • Vérifier le bon fonctionnement des règles de pare-feu : les pare-feu contrôlent le trafic réseau entrant et sortant. L’analyse des ports ouverts aide les professionnels de la sécurité à vérifier que le pare-feu bloque ou autorise les ports prévus.

Consigner les résultats de l’analyse et comprendre leurs implications en matière de sécurité

En sécurité réseau, il est essentiel de consigner vos observations. Nmap dispose de fonctions intégrées de génération de rapports qui vous aident à enregistrer les résultats de l’analyse. Dans cette étape, vous apprendrez à générer des rapports Nmap, à analyser les résultats et à discuter des implications des ports ouverts en matière de sécurité. Enfin, vous arrêterez correctement les services démarrés pour ce laboratoire afin de préserver la sécurité du système.

Générer des rapports avec Nmap

Nmap peut enregistrer directement les résultats d’une analyse dans différents formats de rapport, notamment en texte brut, XML, JSON et d’autres formats. Cette méthode est plus efficace et plus précise que la création manuelle de rapports. Utilisez les options de sortie de Nmap pour générer un rapport :

Lancez une analyse Nmap en précisant les options de sortie :

nmap -F -sV localhost -oN /home/labex/project/nmap_report.txt

Dans cette commande :

  • L’option -F effectue une analyse rapide (limitée aux 100 ports les plus courants).
  • L’option -sV tente de déterminer la version des services exécutés sur les ports ouverts.
  • L’option -oN /home/labex/project/nmap_report.txt enregistre le résultat au format texte brut dans le fichier indiqué.

Affichez le rapport généré :

cat /home/labex/project/nmap_report.txt

Le rapport contient toutes les informations de l’analyse, notamment :

  • La date et l’heure de l’analyse
  • Les informations sur la cible
  • La liste des ports ouverts
  • Les services exécutés sur chaque port ouvert et leurs versions

Autres formats de rapport

Nmap prend en charge plusieurs formats de sortie adaptés à différents usages :

  • -oX filename - Enregistre le résultat au format XML, adapté au traitement automatisé.
  • -oG filename - Enregistre le résultat au format Grepable, pratique pour effectuer des recherches avec grep.
  • -oJ filename - Enregistre le résultat au format JSON, adapté aux applications modernes.
  • -oA filename - Enregistre simultanément le résultat dans tous les formats (Normal, XML et Grepable).

Par exemple, pour générer un rapport au format XML :

nmap -F -sV localhost -oX /home/labex/project/nmap_report.xml

Comprendre les implications des résultats en matière de sécurité

Le rapport de l’analyse indique que le port 80/tcp est ouvert et qu’il exécute un service HTTP (le serveur web Apache). Cela a plusieurs implications importantes en matière de sécurité :

  • Point d’entrée potentiel pour une attaque : les ports ouverts ressemblent aux portes d’un bâtiment. Chacun peut potentiellement servir de point d’entrée à des attaquants.
  • Risques liés aux vulnérabilités des services : les services exécutés sur des ports ouverts peuvent comporter des failles de sécurité exploitables par des attaquants.
  • Canal de communication à surveiller : les ports ouverts servent aux communications. Vous devez surveiller leur activité pour détecter tout comportement inhabituel.

Pour sécuriser les ports, suivez ces bonnes pratiques :

  • Ne gardez ouverts que les ports nécessaires : les ports ouverts inutiles augmentent la surface d’attaque de votre système.
  • Mettez régulièrement à jour les services qui utilisent ces ports : les mises à jour comprennent souvent des correctifs de sécurité qui résolvent des vulnérabilités.
  • Configurez des règles de pare-feu pour restreindre les accès : les pare-feu peuvent contrôler qui peut accéder à votre système par des ports spécifiques.
  • Surveillez l’activité des ports pour repérer les schémas inhabituels : vous pourrez ainsi détecter les menaces potentielles et réagir rapidement.

Nettoyage du laboratoire

Maintenant que l’exercice d’analyse est terminé, arrêtez le serveur web Apache. Laisser fonctionner des services dont vous n’avez plus besoin peut présenter des risques de sécurité ; il est donc important de nettoyer correctement l’environnement.

Arrêtez le service Apache :

sudo service apache2 stop

Vérifiez que le service est arrêté :

sudo service apache2 status

Vous devriez voir un résultat indiquant qu’Apache2 ne fonctionne pas, par exemple :

* apache2 is not running

Vérifiez que le port 80 est fermé :

nmap -F localhost

Le résultat doit indiquer que le port 80 est fermé ou qu’il ne figure pas parmi les ports ouverts. Cette étape de nettoyage est essentielle dans les situations réelles : elle évite de laisser fonctionner des services inutiles, ce qui pourrait présenter des risques de sécurité.

Résumé

Dans ce laboratoire, vous avez appris les bases de l’analyse des ports réseau avec Nmap, un puissant outil open source de sécurité réseau. Vous avez pu vous exercer à comprendre les ports réseau, à configurer un serveur web avec un port ouvert, à analyser les ports courants avec Nmap, à interpréter les résultats, à consigner vos observations dans un rapport de sécurité et à arrêter correctement les services.

Ces compétences sont fondamentales pour évaluer la sécurité des réseaux. Elles sont essentielles aux professionnels de la sécurité informatique, de l’administration réseau et de la gestion des systèmes. La maîtrise de l’analyse de ports aide à repérer les vulnérabilités réseau et à protéger les systèmes contre les accès non autorisés.