Utiliser Nmap pour scanner et documenter les services réseau

NmapNmapBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à utiliser Nmap, un puissant outil de numérisation de réseau, pour découvrir et analyser les services exécutés sur un réseau. Nmap est un outil essentiel pour les administrateurs de réseau et les professionnels de la sécurité, couramment utilisé pour la découverte de réseau et l'audit de sécurité.

Les compétences que vous acquerrez incluent la configuration d'un serveur web de base, l'utilisation de Nmap pour scanner et détecter les services, l'interprétation des résultats de scan et la documentation efficace de vos découvertes. Cette connaissance est fondamentale pour l'évaluation de la sécurité des réseaux et est largement appliquée dans les scénarios réels pour identifier les vulnérabilités potentielles des systèmes.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") subgraph Lab Skills nmap/save_output -.-> lab-415932{{"Utiliser Nmap pour scanner et documenter les services réseau"}} nmap/port_scanning -.-> lab-415932{{"Utiliser Nmap pour scanner et documenter les services réseau"}} nmap/service_detection -.-> lab-415932{{"Utiliser Nmap pour scanner et documenter les services réseau"}} wireshark/packet_capture -.-> lab-415932{{"Utiliser Nmap pour scanner et documenter les services réseau"}} wireshark/packet_analysis -.-> lab-415932{{"Utiliser Nmap pour scanner et documenter les services réseau"}} end

Configuration d'un serveur web

Dans cette étape, nous allons configurer un serveur web de base sur votre machine locale. Pourquoi devons - nous faire cela? Eh bien, ce serveur web servira de cible pour vos exercices de numérisation avec Nmap plus tard. Nmap est un outil puissant pour l'exploration de réseau et l'audit de sécurité, et avoir un serveur web local à scanner vous aidera à comprendre son fonctionnement dans un environnement sûr et contrôlé.

Qu'est - ce qu'un serveur web?

Un serveur web est un logiciel qui joue un rôle crucial dans le web. Lorsque vous ouvrez un site web dans votre navigateur, c'est le serveur web qui envoie le contenu web, comme des pages HTML, des images ou des vidéos, à votre navigateur en réponse à votre demande. Pour ce laboratoire, nous allons tirer parti de la fonctionnalité intégrée de Python pour créer un simple serveur HTTP. HTTP (Hypertext Transfer Protocol) est la base de la communication de données sur le web, et utiliser le serveur intégré de Python est un moyen rapide et facile de faire fonctionner un serveur web.

Création de votre répertoire web et de son contenu

  1. Tout d'abord, nous devons ouvrir un terminal. Un terminal est une interface basée sur le texte qui vous permet d'interagir avec le système d'exploitation de votre ordinateur en tapant des commandes. Une fois que vous avez ouvert le terminal, vous allez naviguer jusqu'à votre répertoire de projet. Naviguer dans le terminal signifie parcourir le système de fichiers de votre ordinateur. Utilisez la commande suivante pour accéder au répertoire de projet :

    cd /home/labex/project
  2. Maintenant, nous allons créer un nouveau répertoire pour le contenu de votre serveur web. Un répertoire est comme un dossier sur votre ordinateur où vous pouvez stocker des fichiers. Nous utilisons la commande mkdir pour créer un nouveau répertoire. Le drapeau -p est important ici. Il garantit que si les répertoires parents (les répertoires qui contiennent le répertoire que vous créez) n'existent pas, ils seront créés pour vous. Exécutez la commande suivante :

    mkdir -p services
  3. Après avoir créé le répertoire, nous devons y accéder. Tout comme vous ouvrirez un dossier sur votre bureau, nous utilisons la commande cd pour entrer dans le répertoire nouvellement créé :

    cd services
  4. Ensuite, nous allons créer un simple fichier HTML. HTML (Hypertext Markup Language) est le langage standard pour créer des pages web. Ce fichier sera servi par votre serveur web. La commande suivante crée un fichier nommé index.html et y place le texte "Welcome to the mini fortress" :

    echo "Welcome to the mini fortress" > index.html
  5. Enfin, nous allons démarrer un serveur HTTP Python sur le port 8000. Un port est comme une porte sur votre ordinateur par laquelle le trafic réseau peut entrer ou sortir. Le port 8000 est un port couramment utilisé pour tester les serveurs web. La commande suivante utilise le module de serveur HTTP intégré de Python pour démarrer le serveur web :

    python3 -m http.server 8000

    Une fois que vous avez exécuté cette commande, vous devriez voir une sortie similaire à :

    Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

    Cela signifie que votre serveur web est démarré et prêt à servir des requêtes.

Vérification de votre serveur web

Pour vous assurer que votre serveur web fonctionne correctement, nous devons ouvrir une nouvelle fenêtre de terminal. Gardez la première fenêtre de terminal ouverte car elle est actuellement occupée par le processus du serveur web. Si vous la fermez, le serveur web s'arrêtera.

  1. Ouvrez une nouvelle fenêtre de terminal.

  2. Maintenant, nous allons utiliser la commande curl pour accéder à votre serveur web. curl est un outil en ligne de commande qui vous permet de transférer des données vers ou depuis un serveur. Exécutez la commande suivante :

    curl http://localhost:8000

    Si tout fonctionne correctement, vous devriez voir le message : Welcome to the mini fortress

    Cela confirme que votre serveur web est en marche et accessible.

Le serveur web que vous venez de configurer continuera de fonctionner dans la première fenêtre de terminal. Gardez cette fenêtre ouverte et le serveur en marche pour les étapes suivantes. Toutes les commandes suivantes doivent être exécutées dans la nouvelle fenêtre de terminal que vous venez d'ouvrir.

Numérisation des services avec Nmap

Dans cette étape, nous allons utiliser un puissant outil appelé Nmap pour scanner et détecter le service de serveur web que vous avez configuré à l'étape précédente. La numérisation des services est une partie importante de la cybersécurité car elle nous aide à comprendre quels services sont exécutés sur un réseau et s'ils pourraient être vulnérables aux attaques.

Comprendre Nmap

Nmap, qui signifie Network Mapper (Cartographe de réseau), est une utilité gratuite et open - source. Elle est largement utilisée pour la découverte de réseau et l'audit de sécurité. Nmap fonctionne en envoyant des paquets IP bruts aux hôtes cibles sur un réseau. Sur la base des réponses qu'elle reçoit, elle peut déterminer plusieurs choses importantes :

  • Tout d'abord, elle peut nous indiquer quels hôtes sont disponibles sur le réseau. Un hôte peut être un ordinateur, un serveur ou tout appareil connecté au réseau.
  • Deuxièmement, elle peut déterminer quels services ces hôtes offrent. Les services peuvent inclure des éléments tels que des serveurs web, des serveurs de messagerie ou des services de partage de fichiers.
  • Troisièmement, elle peut même identifier quel système d'exploitation les hôtes exécutent. Cela est utile car différents systèmes d'exploitation peuvent avoir des vulnérabilités de sécurité différentes.
  • Et il existe de nombreuses autres caractéristiques que Nmap peut découvrir sur les hôtes du réseau.

Exécution d'une numérisation de service de base

  1. Avant de commencer la numérisation, nous devons nous assurer que nous sommes dans le répertoire du projet. Le répertoire du projet est l'endroit où tous les fichiers pertinents pour cette expérience sont stockés. Pour naviguer jusqu'au répertoire du projet, nous utilisons la commande cd dans le terminal.

    cd /home/labex/project
  2. Maintenant, nous allons exécuter une numérisation de service Nmap sur notre serveur web local. Le serveur web local s'exécute sur notre propre machine, et nous utiliserons Nmap pour découvrir quel service s'exécute sur le port 8000.

    sudo nmap -sV localhost -p 8000

    Décortiquons cette commande pour comprendre ce que chaque partie fait :

    • sudo : Cela permet d'exécuter la commande avec des privilèges administratifs. Certaines opérations dans le système nécessitent des droits administratifs, et Nmap peut avoir besoin de ces droits pour effectuer une numérisation appropriée.
    • nmap : C'est l'outil de cartographie de réseau dont nous avons parlé. C'est la commande principale que nous utilisons pour effectuer la numérisation.
    • -sV : Cette option active la détection de version. Elle aide Nmap à identifier quel service spécifique s'exécute sur le port cible.
    • localhost : C'est la cible que nous voulons scanner. Dans ce cas, c'est notre machine locale.
    • -p 8000 : Cette option spécifie que nous voulons scanner le port 8000. Les ports sont comme des portes sur un ordinateur, et différents services utilisent différents ports pour communiquer.

    Après avoir exécuté la commande, vous devriez voir une sortie similaire à ceci :

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-01 12:00 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000094s latency).
    
    PORT     STATE SERVICE VERSION
    8000/tcp open  http    Python/3.10 http.server
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 6.31 seconds

    La sortie montre que Nmap a détecté un service HTTP s'exécutant sur le port 8000. Plus précisément, il a identifié le service comme un serveur HTTP Python 3.10.

  3. Pour conserver un enregistrement des résultats de la numérisation pour une analyse ultérieure, nous allons enregistrer la sortie dans un fichier. De cette façon, nous pouvons revenir aux résultats plus tard et rechercher tout problème de sécurité potentiel.

    sudo nmap -sV localhost -p 8000 > /home/labex/project/nmap_service_detection.txt

    Cette commande exécute la même numérisation Nmap que précédemment, mais au lieu d'afficher la sortie sur le terminal, elle redirige la sortie vers un fichier nommé nmap_service_detection.txt.

  4. Maintenant, affichons le contenu du fichier enregistré pour nous assurer que les résultats y sont. Nous utilisons la commande cat pour afficher le contenu d'un fichier dans le terminal.

    cat /home/labex/project/nmap_service_detection.txt

    Le contenu que vous voyez devrait correspondre à la sortie que vous avez vue précédemment lorsque vous avez exécuté directement la commande Nmap.

Comprendre la sortie de Nmap

Examinons de plus près la sortie de votre numérisation Nmap pour comprendre ce que chaque partie signifie :

  • Starting Nmap 7.80 : Cette ligne indique la version de Nmap qui est utilisée. Différentes versions de Nmap peuvent avoir des fonctionnalités et des capacités différentes.
  • Host is up : Cela montre que la cible (dans ce cas, notre machine locale) répond aux requêtes réseau. Si l'hôte était inactif, Nmap ne pourrait obtenir aucune information de lui.
  • PORT : Cette colonne répertorie le numéro de port qui a été scanné. Dans notre cas, c'est le port 8000.
  • STATE : Cela montre l'état du port. Il peut être ouvert, fermé ou filtré. Un port ouvert signifie qu'un service écoute sur ce port et accepte les connexions.
  • SERVICE : Cela identifie le service s'exécutant sur le port. Dans notre sortie, c'est un service HTTP.
  • VERSION : Cela montre des détails sur la version du service. Ici, il nous indique que le service HTTP est un serveur HTTP Python 3.10.

Ces informations sont cruciales pour les évaluations de sécurité. En sachant quels services sont exposés sur un réseau, nous pouvons vérifier s'ils ont des vulnérabilités connues. Si ces services ne sont pas correctement sécurisés, ils pourraient potentiellement être exploités par des attaquants.

Documentation de vos découvertes

Dans cette étape, nous allons nous concentrer sur la documentation des informations de service que vous avez découvertes à l'aide de Nmap. La documentation est comme une carte dans le monde du travail de sécurité. Elle est cruciale car elle vous permet d'enregistrer tous les détails importants que vous trouvez lors de vos numérisations. Cet enregistrement peut être consulté plus tard pour l'analyse, pour voir comment les choses ont changé avec le temps ou pour répondre à certaines exigences de conformité.

L'importance de la documentation

Dans les évaluations de sécurité professionnelles et les audits de réseau, une documentation détaillée joue plusieurs rôles clés :

  • Instantané des systèmes et services : Elle crée un enregistrement de quels systèmes et services étaient présents à un moment précis. Cela est utile pour comprendre l'état de votre réseau à un moment donné.
  • Suivi des changements : Vous aide à suivre tout changement dans l'infrastructure réseau. En comparant la documentation de différents moments, vous pouvez facilement repérer de nouveaux services, des systèmes supprimés ou d'autres modifications.
  • Preuve de conformité : Fournit la preuve que vous avez effectué des vérifications de sécurité appropriées, ce qui est souvent exigé par diverses réglementations et normes.
  • Planification d'améliorations : Servit de référence lors de la planification d'améliorations de sécurité. Vous pouvez consulter les résultats documentés pour identifier les domaines qui nécessitent attention.

Création d'un fichier de documentation

Tout d'abord, vous devez vous assurer que vous êtes dans le répertoire du projet. C'est là que nous allons créer et stocker notre fichier de documentation. Pour ce faire, utilisez la commande cd, qui signifie "change directory" (changer de répertoire).

cd /home/labex/project

Étape 2 : Créez un nouveau fichier

Maintenant, nous allons créer un nouveau fichier pour documenter nos découvertes. Nous allons utiliser la commande touch. Si le fichier n'existe pas, touch créera un fichier vide avec le nom spécifié.

touch nmap_findings.txt

Étape 3 : Ajoutez un en-tête descriptif

Ensuite, nous allons ajouter un en-tête descriptif à notre fichier de documentation. Cet en-tête donnera un contexte aux résultats de la numérisation que nous allons ajouter. Nous allons utiliser la commande echo pour afficher le texte, et l'opérateur >> pour l'ajouter à la fin du fichier. L'opérateur >> est important car il ajoute le texte à la fin du fichier sans écraser ce qui est déjà présent.

echo "Nmap has detected the following service running on localhost, port 8000:" >> nmap_findings.txt

Étape 4 : Ajoutez les résultats détaillés de la numérisation

Maintenant, nous allons ajouter les résultats détaillés de la numérisation Nmap à notre documentation. Nous allons exécuter à nouveau la numérisation Nmap et utiliser l'opérateur >> pour ajouter les résultats à notre fichier.

nmap -sV localhost -p 8000 >> nmap_findings.txt

Étape 5 : Vérifiez votre documentation

Enfin, vérifions la documentation terminée. Nous allons utiliser la commande cat, qui signifie "concatenate" (concaténer), pour afficher le contenu du fichier.

cat nmap_findings.txt

Votre fichier devrait maintenant contenir un en-tête et les résultats complets de la numérisation Nmap, similaire à :

Nmap has detected the following service running on localhost, port 8000:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-01 12:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000094s latency).

PORT     STATE SERVICE VERSION
8000/tcp open  http    Python/3.10 http.server

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

Bonnes pratiques pour la documentation de sécurité

Lorsque vous documentez les résultats de sécurité dans des scénarios réels, il y a plusieurs éléments importants que vous devriez envisager d'inclure :

  1. Date et heure de l'évaluation : Cela vous aide à suivre quand la numérisation a été effectuée, ce qui est utile pour comprendre la chronologie des changements dans votre réseau.
  2. Outils utilisés (y compris les numéros de version) : Savoir quels outils ont été utilisés et leurs versions est important pour la reproductibilité et pour comprendre les capacités de la numérisation.
  3. Périmètre de l'évaluation : Définissez clairement ce qui a été testé. Cela peut inclure des adresses IP spécifiques, des ports ou des systèmes.
  4. Résultats détaillés avec preuves : Fournissez autant de détails que possible sur les résultats, ainsi que toute preuve pour les étayer.
  5. Implications potentielles pour la sécurité : Analysez les résultats et identifiez tout risque de sécurité potentiel ou vulnérabilité.
  6. Recommandations pour les améliorations : Sur la base des résultats, suggérez des étapes pour améliorer la sécurité du réseau.

Pour ce laboratoire, nous avons créé un document simple avec les résultats de la numérisation, mais dans des contextes professionnels, la documentation serait généralement plus complète.

Résumé

Dans ce laboratoire, vous avez appris des compétences essentielles pour la découverte et la documentation des services réseau à l'aide de Nmap. Ces compétences sont la base des pratiques d'évaluation de la sécurité des réseaux utilisées par les professionnels du monde entier.

Les principaux points à retenir incluent la configuration d'un serveur web de base, l'utilisation de Nmap pour détecter les services en cours d'exécution, l'interprétation des résultats de numérisation et la documentation des découvertes. Ces compétences sont applicables dans des scénarios réels tels que l'inventaire des réseaux, les évaluations de sécurité, l'administration système et la vérification de conformité. Au fur et à mesure que vous progresserez dans le domaine des réseaux et de la sécurité, Nmap sera un outil inestimable. Pensez à explorer les fonctionnalités avancées de Nmap pour améliorer vos capacités de découverte de réseau.