Combiner la détection du système d'exploitation et des services dans 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, nous allons apprendre à combiner la détection du système d'exploitation et des services dans Nmap pour recueillir des informations complètes sur une machine cible. Nous utiliserons les options -O et -sV de Nmap pour identifier le système d'exploitation et les versions de services exécutés sur une adresse IP cible, telle que 192.168.1.1.

Le laboratoire comprend des étapes pour effectuer des scans combinés, spécifier les ports cibles, ajouter de la verbeux, enregistrer les résultats dans un fichier et analyser la sortie dans le terminal Xfce. Nous comparerons également les résultats de scan combiné avec les scans individuels pour comprendre les avantages de cette approche. Rappelez-vous de ne scanner que les réseaux que vous possédez ou pour lesquels vous avez autorisation à scanner.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/output_formats -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} nmap/save_output -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} nmap/port_scanning -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} nmap/host_discovery -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} nmap/target_specification -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} nmap/verbosity -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} nmap/os_version_detection -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} nmap/service_detection -.-> lab-547089{{"Combiner la détection du système d'exploitation et des services dans Nmap"}} end

Exécuter un scan combiné avec nmap -O -sV 192.168.1.1

Dans cette étape, nous allons effectuer un scan combiné à l'aide de Nmap pour identifier le système d'exploitation et les versions de services exécutés sur une machine cible. Il s'agit d'une technique puissante pour recueillir des informations sur un réseau et ses dispositifs.

Nmap est un outil de balayage de réseau polyvalent. Les options utilisées dans cette étape sont les suivantes :

  • -O : Active la détection du système d'exploitation. Nmap tente de déterminer le système d'exploitation de la machine cible en analysant ses réponses réseau.
  • -sV : Active la détection de la version du service. Nmap sond les ports ouverts pour déterminer le nom de l'application et le numéro de version.
  • 192.168.1.1 : Cette adresse IP est la cible. Remplacez-la par l'adresse IP réelle de la machine que vous souhaitez scanner. Si vous n'avez pas de cible spécifique, vous pouvez utiliser l'adresse IP de votre propre machine ou une adresse IP de test comme scanme.nmap.org. Cependant, pour ce laboratoire, nous supposerons que 192.168.1.1 est une cible valide sur votre réseau. Si ce n'est pas le cas, vous devrez substituer une adresse IP valide.

Avant d'exécuter le scan, il est important de comprendre que le balayage de réseaux sans autorisation est illégal. Ne balayez que les réseaux que vous possédez ou pour lesquels vous avez une autorisation expresse de balayer.

Maintenant, exécutons le scan combiné. Ouvrez votre terminal Xfce.

  1. Exécutez la commande suivante :
sudo nmap -O -sV 192.168.1.1

Vous devriez probablement être invité à saisir votre mot de passe. Étant donné que l'utilisateur labex a des privilèges sudo sans mot de passe, appuyez simplement sur Entrée.

La sortie montrera la progression de Nmap tandis qu'il sonda la machine cible. Il tentera d'identifier le système d'exploitation et les versions des services exécutés sur les ports ouverts.

Exemple de sortie (la sortie réelle variera selon la machine cible) :

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (protocol 2.0)
80/tcp  open  http     Apache httpd 2.4.29 ((Ubuntu))
443/tcp open  ssl/http Apache httpd 2.4.29 ((Ubuntu) OpenSSL 1.1.1)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

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

Cette sortie montre que Nmap a identifié la cible comme exécutant un système d'exploitation Linux et a détecté les versions des services SSH, HTTP et HTTPS.

Scanner des ports spécifiques avec nmap -O -sV -p 22,80 127.0.0.1

Dans cette étape, nous allons nous concentrer sur le balayage de ports spécifiques à l'aide de Nmap. Cela est utile lorsque vous voulez réduire votre balayage aux seuls ports qui sont les plus susceptibles d'exécuter des services intéressants.

Les options utilisées dans cette étape sont les suivantes :

  • -O : Active la détection du système d'exploitation.
  • -sV : Active la détection de la version du service.
  • -p 22,80 : Spécifie les ports à balayer. Dans ce cas, nous balayons le port 22 (SSH) et le port 80 (HTTP). Vous pouvez spécifier un seul port, une plage de ports (par exemple, 1-100), ou une liste de ports séparés par des virgules.
  • 127.0.0.1 : Cette adresse est l'adresse de bouclage, qui fait référence à votre propre machine.

Le balayage de ports spécifiques peut réduire considérablement le temps de balayage et faciliter l'identification des services exécutés sur une machine cible.

Maintenant, exécutons le scan. Ouvrez votre terminal Xfce.

  1. Exécutez la commande suivante :
sudo nmap -O -sV -p 22,80 127.0.0.1

Vous devriez probablement être invité à saisir votre mot de passe. Étant donné que l'utilisateur labex a des privilèges sudo sans mot de passe, appuyez simplement sur Entrée.

La sortie montrera la progression de Nmap tandis qu'il sonda les ports 22 et 80 de votre machine locale. Il tentera d'identifier le système d'exploitation et les versions des services exécutés sur ces ports.

Exemple de sortie (la sortie réelle variera selon votre configuration système) :

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
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 5.23 seconds

Cette sortie montre que Nmap a identifié OpenSSH sur le port 22 et Apache httpd sur le port 80. La détection du système d'exploitation fournit également des informations sur la version du noyau Linux.

Ajouter la verbosité avec nmap -v -O -sV 192.168.1.1

Dans cette étape, nous allons ajouter de la verbosité à notre balayage Nmap. La verbosité fournit des informations plus détaillées sur le processus de balayage, ce qui peut être utile pour le dépannage ou pour comprendre comment Nmap fonctionne.

Les options utilisées dans cette étape sont les suivantes :

  • -v : Active le mode verbeux. Cette option augmente la quantité d'informations affichées pendant le balayage. Vous pouvez utiliser -vv pour une verbosité encore plus élevée.
  • -O : Active la détection du système d'exploitation.
  • -sV : Active la détection de la version du service.
  • 192.168.1.1 : Cette adresse IP est la cible. Comme dans la première étape, remplacez-la par l'adresse IP réelle de la machine que vous souhaitez scanner. Si ce n'est pas le cas, vous devrez substituer une adresse IP valide.

Le mode verbeux peut être utile pour voir exactement ce que Nmap fait, y compris les sondes qu'il envoie et les réponses qu'il reçoit.

Maintenant, exécutons le balayage avec la verbosité. Ouvrez votre terminal Xfce.

  1. Exécutez la commande suivante :
sudo nmap -v -O -sV 192.168.1.1

Vous devriez probablement être invité à saisir votre mot de passe. Étant donné que l'utilisateur labex a des privilèges sudo sans mot de passe, appuyez simplement sur Entrée.

La sortie sera plus détaillée que les balayages précédents. Vous verrez des informations sur les différents stades du balayage, tels que la découverte d'hôtes, le balayage de ports et la détection de la version du service.

Exemple de sortie (la sortie réelle variera selon la machine cible et les conditions réseau) :

Starting Nmap 7.80 ( https://nmap.org )
NSE: Loaded 151 scripts for scanning.
Initiating Ping Scan at 14:35
Scanning 192.168.1.1 [4 ports]
Completed Ping Scan at 14:35, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 14:35
Completed Parallel DNS resolution of 1 host. at 14:35, 0.00s elapsed
Initiating SYN Stealth Scan at 14:35
Scanning 192.168.1.1 [1000 ports]
Discovered open port 22/tcp on 192.168.1.1
Discovered open port 80/tcp on 192.168.1.1
Discovered open port 443/tcp on 192.168.1.1
Completed SYN Stealth Scan at 14:35, 0.12s elapsed (1000 total ports)
Initiating Service scan at 14:35
Scanning 3 services on 192.168.1.1
Completed Service scan at 14:35, 6.23s elapsed (3 services total)
Initiating OS detection (try #1) against 192.168.1.1
... (plus de sortie) ...
Nmap scan report for 192.168.1.1
Host is up (0.00088s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (protocol 2.0)
80/tcp  open  http     Apache httpd 2.4.29 ((Ubuntu))
443/tcp open  ssl/http Apache httpd 2.4.29 ((Ubuntu) OpenSSL 1.1.1)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

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

Remarquez les informations supplémentaires sur les phases de balayage, telles que "Initiating Ping Scan" et "Initiating Service scan". Cela peut être utile pour comprendre le processus de balayage et identifier tout problème potentiel.

Sauvegarder les résultats combinés avec nmap -O -sV -oN os_service.txt 127.0.0.1

Dans cette étape, nous allons sauvegarder les résultats de notre balayage Nmap dans un fichier. Cela est utile pour une analyse ultérieure ou pour partager les résultats avec d'autres.

Les options utilisées dans cette étape sont les suivantes :

  • -O : Active la détection du système d'exploitation.
  • -sV : Active la détection de la version du service.
  • -oN os_service.txt : Spécifie le fichier de sortie et le format. -oN spécifie une sortie normale, qui est lisible par un humain. La sortie sera enregistrée dans le fichier os_service.txt dans votre répertoire actuel (~/projet).
  • 127.0.0.1 : Cette adresse est l'adresse de bouclage, qui fait référence à votre propre machine.

En enregistrant la sortie dans un fichier, vous pouvez réexaminer les résultats plus tard sans avoir à relancer le balayage. Cela facilite également la comparaison des résultats de différents balayages.

Maintenant, exécutons le balayage et enregistrons les résultats. Ouvrez votre terminal Xfce.

  1. Exécutez la commande suivante :
sudo nmap -O -sV -oN os_service.txt 127.0.0.1

Vous devriez probablement être invité à saisir votre mot de passe. Étant donné que l'utilisateur labex a des privilèges sudo sans mot de passe, appuyez simplement sur Entrée.

La sortie sera affichée à l'écran comme d'habitude, mais elle sera également enregistrée dans le fichier os_service.txt dans votre répertoire ~/projet.

  1. Pour vérifier que le fichier a été créé et contient les résultats du balayage, utilisez la commande cat :
cat os_service.txt

Cela affichera le contenu du fichier os_service.txt dans le terminal. Vous devriez voir les résultats du balayage Nmap, y compris les ports ouverts, les services et les informations sur le système d'exploitation.

Exemple de sortie (la sortie réelle variera selon votre configuration système) :

## Nmap 7.80 scan initiated Mon Aug  8 14:42:30 2022
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 0 hops

## Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds

Vous pouvez également utiliser la commande ls -l pour vérifier la taille du fichier et la date de modification :

ls -l os_service.txt

Cela vous montrera les permissions du fichier, sa taille et la date de dernière modification.

Analyser la sortie du système d'exploitation et des services dans le terminal Xfce

Dans cette étape, nous allons analyser la sortie du balayage Nmap que nous avons enregistrée dans l'étape précédente (os_service.txt). Nous allons nous concentrer sur la compréhension des informations que Nmap fournit sur le système d'exploitation de la cible et les services en cours d'exécution.

Le fichier os_service.txt contient un rapport lisible par un humain des résultats du balayage. Examnons les sections clés :

  1. Ports ouverts : Cette section liste les ports qui sont ouverts sur la machine cible. Les ports ouverts indiquent qu'un service est en écoute pour les connexions sur ce port.

  2. Services : Pour chaque port ouvert, Nmap tente d'identifier le service qui est en cours d'exécution. Ces informations sont affichées dans la colonne "SERVICE".

  3. Versions : Nmap essaie également de déterminer la version du service. Ces informations sont affichées dans la colonne "VERSION". Savoir la version du service est crucial pour identifier les vulnérabilités potentielles.

  4. Détails du système d'exploitation : Nmap tente d'identifier le système d'exploitation en cours d'exécution sur la machine cible. Ces informations sont affichées dans la section "Détails du système d'exploitation".

Maintenant, analysons la sortie dans le terminal Xfce.

  1. Ouvrez le fichier os_service.txt à l'aide de la commande cat :
cat os_service.txt

Examinez la sortie. Vous devriez voir quelque chose de similaire à ce qui suit (la sortie réelle variera selon votre configuration système) :

## Nmap 7.80 scan initiated Mon Aug  8 14:42:30 2022
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS details: Linux 3.2 - 4.9
Network Distance: 0 hops

## Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds
  1. Analyse de la sortie :

    • Port 22/tcp : Ce port est ouvert et exécute le service SSH (OpenSSH 8.2p1 Ubuntu 4ubuntu0.4). SSH est utilisé pour l'accès distant sécurisé à la machine.
    • Port 80/tcp : Ce port est ouvert et exécute le service HTTP (Apache httpd 2.4.41 ((Ubuntu))). HTTP est utilisé pour servir des pages web.
    • Détails du système d'exploitation : Nmap a identifié le système d'exploitation comme étant Linux (Linux 3.2 - 4.9).

En analysant cette sortie, vous pouvez obtenir des informations précieuses sur la configuration de la machine cible et les vulnérabilités potentielles. Par exemple, savoir les versions des services vous permet de rechercher les vulnérabilités connues associées à ces versions.

Cette étape montre comment interpréter la sortie d'un balayage Nmap pour identifier les ports ouverts, les services en cours d'exécution et le système d'exploitation. Ces informations sont essentielles pour les évaluations de sécurité et les tests de pénétration.

Comparer avec des balayages individuels dans le terminal Xfce

Dans cette étape, nous allons comparer les résultats du balayage combiné (os_service.txt) avec les résultats que vous obtiendriez en exécutant des balayages individuels pour la détection du système d'exploitation et la détection de la version du service. Cela vous aidera à comprendre les avantages d'utiliser des balayages combinés et comment ils peuvent économiser du temps.

Pour le faire efficacement, nous allons simuler des balayages individuels en utilisant grep pour extraire les informations pertinentes à partir du fichier os_service.txt. Cela évite de devoir relancer les balayages, économisant ainsi du temps et des ressources.

  1. Simuler un balayage de détection du système d'exploitation :

    Nous pouvons simuler un balayage de détection du système d'exploitation en cherchant la section "Détails du système d'exploitation" dans le fichier os_service.txt.

    Exécutez la commande suivante :

grep "OS details" os_service.txt

Cela affichera la ligne contenant les détails du système d'exploitation, similaire à :

OS details: Linux 3.2 - 4.9
  1. Simuler un balayage de détection de la version du service :

    Nous pouvons simuler un balayage de détection de la version du service en cherchant les lignes contenant des informations sur le service et la version.

    Exécutez la commande suivante :

grep -E "[0-9]+/tcp open" os_service.txt

Cette commande utilise grep -E pour activer les expressions régulières étendues. Le motif [0-9]+/tcp open recherche les lignes qui commencent par un nombre (représentant le numéro de port), suivi de "/tcp open". Cela extraira les lignes contenant des informations sur le service et la version, similaire à :

22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
  1. Comparer les résultats :

    Maintenant, comparez la sortie des commandes grep avec la sortie complète dans os_service.txt. Vous remarquerez que le balayage combiné fournit toutes les mêmes informations dans un seul balayage.

    Le balayage combiné (nmap -O -sV) est plus efficace car il effectue à la fois la détection du système d'exploitation et la détection de la version du service en une seule passe. Cela réduit le temps de balayage global et le trafic réseau.

En résumé, cette étape montre comment comparer les résultats d'un balayage Nmap combiné avec les résultats que vous obtiendriez en exécutant des balayages individuels. En utilisant des balayages combinés, vous pouvez économiser du temps et des ressources tout en obtenant des informations complètes sur la cible.

Sommaire

Dans ce laboratoire, nous avons effectué une détection combinée du système d'exploitation et de la version du service à l'aide de Nmap. Le principal enseignement est d'utiliser les drapeaux -O et -sV ensemble pour identifier à la fois le système d'exploitation et les versions des services en cours d'exécution sur une machine cible. Cela permet de mieux comprendre la configuration de la cible.

Nous avons également appris à spécifier des adresses IP cibles, à ajouter de la verbeosité avec le drapeau -v et à enregistrer les résultats du balayage dans un fichier à l'aide de l'option -oN. De plus, nous avons pratiqué l'analyse de la sortie dans le terminal Xfce et la comparaison des résultats avec des balayages individuels pour comprendre l'efficacité du balayage combiné.