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.
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
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/projectMaintenant, 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
mkdirpour créer un nouveau répertoire. Le drapeau-pest 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 servicesAprès avoir créé le répertoire, nous devons y accéder. Tout comme vous ouvrirez un dossier sur votre bureau, nous utilisons la commande
cdpour entrer dans le répertoire nouvellement créé :cd servicesEnsuite, 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.htmlet y place le texte "Welcome to the mini fortress" :echo "Welcome to the mini fortress" > index.htmlEnfin, 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 8000Une 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.
Ouvrez une nouvelle fenêtre de terminal.
Maintenant, nous allons utiliser la commande
curlpour accéder à votre serveur web.curlest 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:8000Si tout fonctionne correctement, vous devriez voir le message :
Welcome to the mini fortressCela 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.
Scan 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
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
cddans le terminal.cd /home/labex/projectMaintenant, 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 8000Dé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 secondsLa 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.
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.txtCette 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.Maintenant, affichons le contenu du fichier enregistré pour nous assurer que les résultats y sont. Nous utilisons la commande
catpour afficher le contenu d'un fichier dans le terminal.cat /home/labex/project/nmap_service_detection.txtLe 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
Étape 1 : Naviguez jusqu'au répertoire du projet
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 :
- 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.
- 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.
- 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.
- 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.
- Implications potentielles pour la sécurité : Analysez les résultats et identifiez tout risque de sécurité potentiel ou vulnérabilité.
- 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.



