Apprendre les techniques de détection de système d'exploitation et de version avec Nmap

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 (lab), vous apprendrez les bases de la reconnaissance réseau à l'aide de Nmap, en mettant l'accent sur les techniques de détection du système d'exploitation (OS) et de la version. Ces compétences sont essentielles pour les professionnels de la cybersécurité, car elles permettent d'identifier les vulnérabilités potentielles en déterminant les systèmes d'exploitation et les services exécutés sur les systèmes cibles.

Nmap, un outil open - source pour la découverte de réseau et l'audit de sécurité, est au cœur de ce laboratoire. En maîtrisant ses capacités de détection du système d'exploitation et de la version, vous pouvez collecter des informations essentielles sur les appareils réseau, une première étape clé pour les protéger contre les menaces potentielles. Tout au long du laboratoire, vous configurerez un environnement de test, effectuerez des scans de base et avancés, et combinerez des techniques pour une analyse réseau complète.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") subgraph Lab Skills nmap/installation -.-> lab-415925{{"Apprendre les techniques de détection de système d'exploitation et de version avec Nmap"}} nmap/port_scanning -.-> lab-415925{{"Apprendre les techniques de détection de système d'exploitation et de version avec Nmap"}} nmap/target_specification -.-> lab-415925{{"Apprendre les techniques de détection de système d'exploitation et de version avec Nmap"}} nmap/os_version_detection -.-> lab-415925{{"Apprendre les techniques de détection de système d'exploitation et de version avec Nmap"}} end

Configuration de votre environnement

Dans cette étape, nous allons préparer notre environnement de test. Pourquoi est - ce nécessaire? Eh bien, pour pratiquer efficacement l'utilisation de Nmap, nous avons besoin d'une cible à scanner. En créant un simple serveur, nous pouvons simuler une cible réelle dans un environnement contrôlé. De cette manière, nous pouvons pratiquer en toute sécurité et comprendre les capacités de détection du système d'exploitation (OS) et de la version de Nmap.

Comprendre l'environnement de test

Avant de commencer à scanner avec Nmap, nous devons avoir une cible. Imaginez - le comme une chasse au trésor ; vous devez savoir où chercher. Nous allons utiliser l'utilitaire netcat pour créer un simple serveur sur votre machine locale. Ce serveur écoutera sur un port spécifique et servira de système cible pour tous les scans Nmap que nous allons effectuer.

Création d'un serveur de test

Tout d'abord, nous devons nous assurer que nous sommes dans le bon répertoire pour notre travail de laboratoire. Cela est important car cela nous aide à organiser nos fichiers. Exécutez la commande suivante dans votre terminal :

cd /home/labex/project

Maintenant, nous allons créer un simple serveur en utilisant netcat. Ce serveur écoutera sur le port 4444. Ouvrez un terminal et exécutez la commande suivante :

nc -lvp 4444 -k

Décortiquons cette commande :

  • nc est la commande pour netcat. Netcat est un utilitaire réseau polyvalent qui peut être utilisé pour créer des serveurs et des clients.
  • -l indique à netcat d'entrer en mode écoute. En ce mode, netcat agit comme un serveur, attendant les connexions entrantes.
  • -v active la sortie détaillée. Cela signifie que netcat affichera des informations plus détaillées sur ce qu'il fait, ce qui est utile pour le débogage.
  • -p 4444 spécifie le port sur lequel le serveur écoutera. Les ports sont comme des portes d'un ordinateur ; différents services utilisent différents ports.
  • -k maintient le serveur en fonctionnement même après la déconnexion d'un client. Cela garantit que notre serveur reste actif et prêt pour de nouvelles connexions.

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

Listening on 0.0.0.0 4444

Cette sortie indique que le serveur est maintenant en fonctionnement et écoute les connexions sur le port 4444. Gardez cette fenêtre de terminal ouverte car nous aurons besoin que ce serveur soit en fonctionnement pour les étapes suivantes.

Vérification du serveur

Pour nous assurer que notre serveur fonctionne correctement, nous devons vérifier s'il écoute réellement sur le port 4444. Ouvrez une nouvelle fenêtre de terminal et exécutez la commande suivante :

lsof -i:4444

La commande lsof signifie "list open files" (lister les fichiers ouverts). Dans le contexte du réseau, elle peut montrer quels processus utilisent quels ports réseau. En exécutant lsof -i:4444, nous lui demandons de nous montrer quel processus écoute sur le port 4444. Vous devriez voir une entrée pour nc dans la sortie. Cela confirme que notre serveur est opérationnel et prêt pour les scans Nmap.

Maintenant que notre environnement de test est configuré, nous pouvons passer à l'étape suivante, où nous effectuerons notre premier scan de détection du système d'exploitation avec Nmap.

Effectuer une détection de système d'exploitation de base

Dans cette étape, nous allons apprendre à utiliser la capacité de Nmap à détecter les systèmes d'exploitation et effectuer notre tout premier scan de détection de système d'exploitation de base. Comprendre comment Nmap identifie les systèmes d'exploitation exécutés sur les hôtes cibles est crucial pour tous ceux qui s'intéressent à la sécurité des réseaux. Cela nous permet de mieux comprendre les systèmes avec lesquels nous avons à faire, ce qui peut être utilisé pour diverses tâches liées à la sécurité.

Qu'est - ce que la détection de système d'exploitation avec Nmap?

La détection de système d'exploitation avec Nmap est une fonctionnalité puissante qui tente de déterminer le système d'exploitation exécuté sur un appareil cible. Lorsque vous travaillez dans le domaine de la cybersécurité, connaître le système d'exploitation d'une cible peut vous fournir beaucoup d'informations sur ses vulnérabilités potentielles et sur la manière de la sécuriser.

Voici comment cela fonctionne : Nmap envoie des paquets spécialement conçus à la cible. Ces paquets sont conçus de manière à ce que les réponses qu'ils reçoivent présentent de subtiles différences en fonction de la manière dont la pile TCP/IP de la cible est implémentée par son système d'exploitation. Par exemple, différents systèmes d'exploitation gèrent les en - têtes de paquets, les numéros de séquence et d'autres aspects de la communication réseau de manière unique.

La détection de système d'exploitation est extrêmement utile pour les professionnels de la sécurité. Voici pourquoi :

  • Identifier les systèmes potentiellement vulnérables : Différents systèmes d'exploitation ont des vulnérabilités de sécurité différentes. En connaissant le système d'exploitation, vous pouvez rapidement rechercher les vulnérabilités connues et prendre les mesures appropriées.
  • Adapter les mesures de sécurité aux systèmes d'exploitation spécifiques : Chaque système d'exploitation a ses propres mécanismes de sécurité et ses meilleures pratiques. Une fois que vous connaissez le système d'exploitation, vous pouvez mettre en œuvre des mesures de sécurité les plus efficaces pour ce système particulier.
  • Vérifier que les systèmes exécutent le système d'exploitation attendu : Dans une organisation, vous pouvez vous attendre à ce que certains systèmes exécutent des systèmes d'exploitation spécifiques. La détection de système d'exploitation vous aide à confirmer que c'est le cas, ce qui est important pour maintenir un environnement réseau sécurisé et cohérent.

Exécution d'un scan de détection de système d'exploitation de base

En supposant que notre serveur soit toujours en fonctionnement depuis l'étape précédente, nous allons maintenant ouvrir une nouvelle fenêtre de terminal. Le terminal est un outil puissant qui nous permet d'interagir avec le système d'exploitation à l'aide de commandes. Une fois le terminal ouvert, nous devons nous déplacer dans notre répertoire de projet. C'est là que tous nos fichiers et scans liés au projet seront stockés.

cd /home/labex/project

Maintenant, nous allons effectuer un scan de détection de système d'exploitation de base sur notre serveur local. Nous allons utiliser l'option -O avec Nmap. Cette option active la fonctionnalité de détection de système d'exploitation.

sudo nmap -O localhost -p 4444 > scan_results/basic_os_scan.txt

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

  • sudo : Cela signifie "superuser do" (exécuter en tant qu'utilisateur super - administrateur). La détection de système d'exploitation nécessite un accès aux sockets bruts, qui est une manière de bas niveau d'interagir avec le réseau. Les comptes d'utilisateurs normaux n'ont généralement pas cette autorisation, donc nous utilisons sudo pour exécuter la commande avec des privilèges administratifs.
  • nmap : C'est la commande pour exécuter l'outil Network Mapper. Nmap est un outil bien connu et largement utilisé pour l'exploration de réseau et l'audit de sécurité.
  • -O : Cette option active la détection de système d'exploitation. Lorsque Nmap est exécuté avec cette option, il tentera de déterminer le système d'exploitation de la cible.
  • localhost : C'est notre cible. Cela fait référence à la machine locale, ce qui signifie que nous sommes en train de scanner notre propre ordinateur.
  • -p 4444 : Cela spécifie le port à scanner. Dans notre cas, notre serveur netcat s'exécute sur le port 4444, donc nous voulons scanner ce port spécifique.
  • > scan_results/basic_os_scan.txt : Cela redirige la sortie du scan Nmap vers un fichier nommé basic_os_scan.txt dans le répertoire scan_results. De cette manière, nous pouvons enregistrer les résultats pour une analyse ultérieure.

Analyse des résultats

Maintenant que nous avons exécuté le scan et enregistré les résultats dans un fichier, examinons les résultats du scan. Nous allons utiliser la commande cat, qui est utilisée pour afficher le contenu d'un fichier dans le terminal.

cat scan_results/basic_os_scan.txt

Vous devriez voir une sortie similaire à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-10 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).

PORT     STATE SERVICE
4444/tcp open  krb524

Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
Network Distance: 0 hops

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

Examinons de plus près certaines parties clés de la sortie :

  • État du port : Le port que nous avons spécifié (4444) est indiqué comme ouvert. Cela signifie que le serveur netcat s'exécutant sur ce port accepte les connexions entrantes.
  • Message d'avertissement : Il y a un avertissement concernant la fiabilité de la détection de système d'exploitation. C'est une information importante que nous devons comprendre.
  • Identification du système d'exploitation : Nmap a identifié le système comme exécutant Linux. Cela nous donne une idée générale du système d'exploitation de la cible.
  • Détails du système d'exploitation : La section des détails du système d'exploitation fournit des informations plus précises sur le système d'exploitation détecté, comme la version du noyau.

Comprendre le message d'avertissement

Vous avez peut - être remarqué l'avertissement : "OSScan results may be unreliable because we could not find at least 1 open and 1 closed port."

Cet avertissement est important. La détection de système d'exploitation de Nmap fonctionne mieux lorsqu'elle peut analyser les réponses à la fois des ports ouverts et des ports fermés. Différents systèmes d'exploitation gèrent les ports ouverts et fermés différemment. Par exemple, ils peuvent répondre aux demandes de connexion ou aux sondes de paquets de manière unique en fonction de si le port est ouvert ou fermé. Dans notre scan, nous n'avons spécifié qu'un seul port (4444), et il est ouvert. Donc, Nmap nous indique que ses résultats peuvent ne pas être entièrement fiables.

Dans l'étape suivante, nous explorerons des options de détection de système d'exploitation plus avancées pour améliorer la précision de nos scans.

Options avancées de détection de système d'exploitation

Dans cette étape, nous allons explorer des options de détection de système d'exploitation plus avancées dans Nmap. La détection de système d'exploitation est une partie cruciale du balayage de réseau car elle nous aide à comprendre quels systèmes d'exploitation sont exécutés sur les machines cibles. En utilisant ces options avancées, nous pouvons améliorer la précision et la fiabilité de nos scans. En nous appuyant sur ce que nous avons appris dans l'étape précédente, nous allons utiliser des indicateurs (flags) supplémentaires de Nmap pour améliorer nos capacités de détection de système d'exploitation.

Amélioration de la précision de la détection de système d'exploitation

Pour améliorer la précision de la détection de système d'exploitation, nous devons prendre deux étapes importantes. Premièrement, nous devons scanner plusieurs ports. En effet, différents ports peuvent fournir des indices différents sur le système d'exploitation. En scannant plusieurs ports, nous nous assurons que Nmap trouve à la fois des ports ouverts et des ports fermés. Les ports ouverts peuvent révéler les services exécutés sur le système, tandis que les ports fermés peuvent également donner des indices sur les paramètres de sécurité du système d'exploitation. Deuxièmement, nous allons utiliser des indicateurs supplémentaires pour affiner le scan.

Exécutons un scan plus complet qui améliorera la fiabilité de la détection de système d'exploitation :

sudo nmap -O -p 1-1000,4444 --osscan-guess localhost > scan_results/advanced_os_scan.txt

Comprenons les nouveaux paramètres :

  • -p 1-1000,4444 : Ce paramètre indique à Nmap de scanner les ports de 1 à 1000, plus notre port ouvert 4444. En scannant une plage plus large de ports, Nmap dispose de plus de données à analyser, ce qui peut conduire à une détection de système d'exploitation plus précise.
  • --osscan-guess : Cet indicateur rend Nmap plus agressif dans sa détection de système d'exploitation. Parfois, Nmap peut ne pas être entièrement sûr du système d'exploitation qu'il détecte. Avec cet indicateur, Nmap fournira son meilleur estimé même dans de telles situations.

Analyse des résultats du scan avancé

Maintenant, examinons les résultats de notre scan avancé. Analyser les résultats du scan est une étape importante car elle nous aide à comprendre ce que nous avons appris sur le système cible.

cat scan_results/advanced_os_scan.txt

La sortie devrait maintenant contenir des informations plus détaillées sur le système d'exploitation, similaire à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-10 11:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 999 closed ports
PORT     STATE SERVICE
4444/tcp open  krb524

OS details: Linux 5.4.0-42-generic
Network Distance: 0 hops

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

Remarquez qu'en scannant une plage de ports, Nmap dispose maintenant de ports ouverts et fermés à analyser. Ces données supplémentaires améliorent la fiabilité des résultats de détection de système d'exploitation. Le message d'avertissement que nous avons vu précédemment peut ne plus apparaître ou être moins grave.

Comprendre la détection agressive de système d'exploitation

La détection de système d'exploitation de Nmap dispose d'options supplémentaires pour des scans plus détaillés ou plus agressifs. Ces options peuvent être utiles dans différents scénarios, en particulier lorsque vous souhaitez optimiser votre scan en fonction de vos besoins.

sudo nmap -O --osscan-limit --max-os-tries 1 localhost -p 4444 > scan_results/limited_os_scan.txt

Ces nouvelles options :

  • --osscan-limit : Cette option indique à Nmap de ne tenter la détection de système d'exploitation que sur les cibles prometteuses. Cela peut économiser du temps en ne gaspillant pas de ressources sur des cibles qui sont peu susceptibles de fournir des informations utiles sur le système d'exploitation.
  • --max-os-tries 1 : Cette option limite le nombre de tentatives que Nmap effectue pour déterminer le système d'exploitation. En réduisant le nombre de tentatives, nous pouvons accélérer le scan.

Vérifiez les résultats de ce scan :

cat scan_results/limited_os_scan.txt

Cette approche est utile lorsque vous souhaitez des résultats plus rapides et que vous êtes prêt à sacrifier un peu de précision pour la vitesse. Cela est souvent nécessaire lors du balayage de grands réseaux, car scanner chaque cible en profondeur peut prendre beaucoup de temps.

Quand utiliser différentes options de détection de système d'exploitation

Différentes options de détection de système d'exploitation sont adaptées à différents scénarios. Comprendre quand utiliser chaque option est important pour un balayage de réseau efficace et performant.

  1. -O de base : C'est bon pour une reconnaissance initiale. Lorsque vous commencez à explorer un réseau, utiliser l'option -O de base peut vous donner un aperçu rapide des systèmes d'exploitation exécutés sur les machines cibles.
  2. -O --osscan-guess : C'est mieux lorsque vous avez besoin d'informations plus détaillées sur le système d'exploitation. Si vous essayez de comprendre la version spécifique d'un système d'exploitation ou que vous avez besoin d'informations plus précises pour une analyse plus approfondie, cette option est un bon choix.
  3. -O --osscan-limit --max-os-tries 1 : C'est utile pour les scans à grande échelle où la vitesse est importante. Lorsque vous scannez un grand réseau, vous n'avez peut - être pas le temps d'effectuer un scan détaillé sur chaque cible. Cette option vous permet d'obtenir une idée générale des systèmes d'exploitation rapidement.

Dans l'étape suivante, nous allons explorer la détection de version, qui complète la détection de système d'exploitation en identifiant les versions spécifiques des services exécutés sur les systèmes cibles.

Détection de version avec Nmap

Dans cette étape, nous allons apprendre les capacités de détection de version de Nmap. Avant de commencer, comprenons pourquoi cela est important. La détection de système d'exploitation nous aide à déterminer quel système d'exploitation une cible utilise. Cependant, la détection de version se concentre sur la découverte des versions spécifiques des services qui s'exécutent sur les ports ouverts. Cela est crucial car de nombreuses vulnérabilités logicicielles sont liées à des versions spécifiques. En connaissant les versions exactes des services, nous pouvons identifier plus précisément les risques de sécurité potentiels.

Comprendre la détection de version

La détection de version, également connue sous le nom de détection de service, tente de répondre à plusieurs questions clés. Premièrement, elle vise à déterminer quelle application s'exécute sur un port ouvert. Deuxièmement, elle essaie de découvrir la version spécifique de cette application. Parfois, elle peut même révéler des niveaux de correctifs ou d'autres détails supplémentaires. Cette information est extrêmement précieuse car de nombreuses vulnérabilités de sécurité sont spécifiques à certaines versions de logiciels. Si nous savons exactement quelles versions de logiciels s'exécutent sur une cible, nous pouvons rapidement identifier les problèmes de sécurité potentiels.

Effectuer une détection de version

Maintenant, exécutons un scan de détection de version sur notre serveur local. Nous allons utiliser la commande suivante :

sudo nmap -sV localhost -p 4444 > scan_results/version_scan.txt

Décortiquons cette commande. L'option -sV active la détection de version. Cela indique à Nmap d'essayer de déterminer les versions des services s'exécutant sur les ports cibles. localhost est notre cible, ce qui signifie que nous sommes en train de scanner notre propre machine locale. L'option -p 4444 spécifie que nous ne scannons que le port 4444. Le symbole > redirige la sortie du scan vers un fichier nommé version_scan.txt dans le répertoire scan_results. De cette manière, nous pouvons examiner les résultats plus tard.

Analyser les résultats de la détection de version

Après avoir exécuté le scan, examinons les résultats. Nous allons utiliser la commande cat pour afficher le contenu du fichier :

cat scan_results/version_scan.txt

Vous devriez voir une sortie similaire à ceci :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-10 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).

PORT     STATE SERVICE VERSION
4444/tcp open  netcat?

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

Remarquez que Nmap essaie d'identifier quel service s'exécute sur le port 4444. Dans ce cas, nous utilisons netcat, qui ne fournit pas d'informations spécifiques sur la version. C'est pourquoi Nmap affiche "netcat?" avec un point d'interrogation, indiquant qu'il n'est pas sûr du service exact et de sa version.

Ajuster l'intensité de la détection de version

Nmap vous permet de contrôler l'intensité du processus de détection de version. Vous pouvez utiliser l'option --version-intensity pour cela. Le niveau d'intensité va de 0 (le scan le plus léger) à 9 (le scan le plus agressif). Exécutons un scan plus intensif :

sudo nmap -sV --version-intensity 7 localhost -p 4444 > scan_results/intensive_version_scan.txt

Un scan plus intensif comme celui - ci enverra plus de sondes à la cible. Il essaiera plus fort d'identifier le service s'exécutant sur le port. Cependant, cela prendra également plus de temps. Mais l'avantage est qu'il pourrait vous donner des résultats plus détaillés.

Vérifions les résultats de ce scan intensif :

cat scan_results/intensive_version_scan.txt

Combiner la détection de version et la détection de système d'exploitation

Dans les situations réelles, vous aurez souvent besoin à la fois des informations sur le système d'exploitation et sur la version d'une cible. Combinons ces deux techniques de scan en utilisant la commande suivante :

sudo nmap -sV -O localhost -p 4444 > scan_results/combined_scan.txt

L'option -sV active la détection de version, et l'option -O active la détection de système d'exploitation. Cette approche combinée vous donne des informations complètes à la fois sur le système d'exploitation et sur les services s'exécutant sur la cible.

Vérifions les résultats de ce scan combiné :

cat scan_results/combined_scan.txt

La sortie contient maintenant à la fois des informations sur le système d'exploitation et sur la version du service. Cela fournit une image plus complète du système cible, ce qui est essentiel pour une évaluation de sécurité approfondie.

Comprendre à la fois le système d'exploitation et les versions spécifiques des services s'exécutant sur une cible est crucial pour une analyse de sécurité efficace. Dans l'étape suivante, nous explorerons comment utiliser ces techniques dans des scénarios pratiques.

Synthèse

Dans ce laboratoire, vous avez appris les compétences essentielles pour utiliser Nmap pour la détection de système d'exploitation et de version. En commençant par la configuration d'un environnement de test de base, vous avez effectué des scans de détection de système d'exploitation de base et avancés, exploré la détection de version de service et combiné ces techniques pour une reconnaissance réseau complète.

Les concepts clés incluent la configuration d'un environnement de test contrôlé, la réalisation d'une détection de système d'exploitation de base avec le flag -O, l'amélioration de la précision avec --osscan-guess, l'utilisation de -sV pour la détection de version, la combinaison de techniques pour le scan, la création de scripts personnalisés et l'utilisation de différents formats de sortie. Ces compétences sont fondamentales pour l'évaluation de la sécurité du réseau et l'identification des vulnérabilités. Au fur et à mesure de votre progression dans le domaine de la cybersécurité, ces techniques de Nmap seront précieuses pour la reconnaissance réseau, les évaluations de sécurité et la gestion des vulnérabilités.