Détecter les services et les versions dans Nmap

NmapBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous allez apprendre à détecter les services et leurs versions à l'aide de Nmap. Le laboratoire couvre la détection de services de base sur l'ordinateur local, le réglage de l'intensité du balayage, la détection de services sur des ports spécifiques, la réalisation d'une détection complète, l'analyse de la sortie dans le terminal Xfce et l'enregistrement des résultats dans un fichier texte. Vous exécuterez des commandes telles que nmap -sV 127.0.0.1 et nmap -sV -oN services.txt 192.168.1.1 pour acquérir une expérience pratique des capacités de détection de versions de services de Nmap.

Exécutez la détection de services avec nmap -sV 127.0.0.1

Dans cette étape, nous allons effectuer un balayage de détection de services de base à l'aide de Nmap. La détection de services aide à identifier les applications et les versions exécutées sur les ports ouverts d'un système cible. Cette information est cruciale pour l'évaluation des vulnérabilités et le test de pénétration.

La commande nmap -sV 127.0.0.1 indique à Nmap d'effectuer une détection de version de service (-sV) sur l'ordinateur local (127.0.0.1). L'ordinateur local est votre propre machine.

Exécutons la commande :

  1. Ouvrez le terminal Xfce.

  2. Tapez la commande suivante et appuyez sur Entrée :

nmap -sV 127.0.0.1

Vous devriez voir une sortie similaire à la suivante :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Explication :

  • Starting Nmap... : Indique la version de Nmap utilisée.
  • Nmap scan report for localhost (127.0.0.1) : Affiche la cible du balayage.
  • Host is up : Confirme que la cible est accessible.
  • Not shown: 997 closed ports : Indique que 997 ports étaient fermés et n'ont pas été affichés. Nmap ne montre que les ports ouverts, filtrés ou non filtrés par défaut.
  • PORT STATE SERVICE VERSION : Cette section affiche les ports ouverts, leur état (open), le service exécuté sur le port et la version du service. Par exemple, le port 22 est ouvert et exécute OpenSSH version 8.9p1. Le port 80 est ouvert et exécute Apache httpd version 2.4.52.
  • Service Info : Fournit des informations supplémentaires sur le système d'exploitation.
  • Nmap done : Indique que le balayage est terminé et montre le temps pris.

Ce simple balayage fournit des informations précieuses sur les services exécutés sur votre machine. Dans les étapes suivantes, nous explorerons des options plus avancées pour la détection de services.

Réglez l'intensité avec nmap -sV --version-intensity 7 192.168.1.1

Dans cette étape, nous allons apprendre à régler l'intensité de la détection de version de service de Nmap. L'option --version-intensity vous permet de contrôler la manière dont Nmap interroge pour obtenir des informations sur les services. Un niveau d'intensité plus élevé signifie que Nmap tentera plus de sondes, ce qui peut potentiellement conduire à des résultats plus précis, mais prendra également plus de temps.

L'option --version-intensity prend une valeur de 0 à 9, où 0 est la plus légère et 9 est la plus agressive. L'intensité par défaut est 7.

Important : Avant de continuer, notez que scanner 192.168.1.1 peut ne pas fonctionner directement dans l'environnement de la machine virtuelle LabEx, car il s'agit probablement d'une adresse d'adresse réseau interne. Pour les fins de démonstration, nous utiliserons 127.0.0.1 (ordinateur local) à la place. Dans un scénario réel, vous remplacez cela par l'adresse IP cible réelle.

Exécutons la commande avec un niveau d'intensité de 7 :

  1. Ouvrez le terminal Xfce.

  2. Tapez la commande suivante et appuyez sur Entrée :

nmap -sV --version-intensity 7 127.0.0.1

Vous devriez voir une sortie similaire à la suivante (la sortie exacte peut varier selon les services exécutés sur votre machine) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Maintenant, essayons un niveau d'intensité plus bas, par exemple 2 :

nmap -sV --version-intensity 2 127.0.0.1

Observez la sortie. Vous pouvez constater que le balayage se termine plus rapidement, mais les informations sur les versions peuvent être moins détaillées ou précises.

Explication :

  • nmap -sV --version-intensity 7 127.0.0.1 : Effectue une détection de version de service avec un niveau d'intensité de 7 sur l'ordinateur local.
  • nmap -sV --version-intensity 2 127.0.0.1 : Effectue une détection de version de service avec un niveau d'intensité de 2 sur l'ordinateur local.

En réglant l'option --version-intensity, vous pouvez ajuster finement l'équilibre entre la vitesse de balayage et la précision. Dans des situations où le temps est crucial, un niveau d'intensité plus bas peut être préférable. Pour des évaluations plus approfondies, un niveau d'intensité plus élevé est recommandé.

Détectez sur des ports spécifiques avec nmap -sV -p 80 192.168.1.1

Dans cette étape, nous allons concentrer notre balayage de détection de services sur un port spécifique. Cela est utile lorsque vous savez déjà sur quel port vous êtes intéressé, ou lorsque vous voulez réduire le temps de balayage en ciblant uniquement un service spécifique.

L'option -p dans Nmap vous permet de spécifier le ou les ports que vous voulez scanner. Dans ce cas, nous allons scanner le port 80, qui est couramment utilisé pour les services HTTP (web).

Important : Comme dans l'étape précédente, scanner 192.168.1.1 peut ne pas fonctionner directement dans l'environnement de la machine virtuelle LabEx. Nous utiliserons 127.0.0.1 (ordinateur local) à la place. N'oubliez pas de le remplacer par l'adresse IP cible réelle dans un scénario réel.

Exécutons la commande :

  1. Ouvrez le terminal Xfce.

  2. Tapez la commande suivante et appuyez sur Entrée :

nmap -sV -p 80 127.0.0.1

Vous devriez voir une sortie similaire à la suivante :

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

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.52 ((Ubuntu))

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

Explication :

  • nmap -sV -p 80 127.0.0.1 : Effectue une détection de version de service (-sV) sur le port 80 (-p 80) de l'ordinateur local (127.0.0.1).
  • La sortie montre que le port 80 est ouvert et exécute Apache httpd version 2.4.52.
  • Remarquez que le temps de balayage est considérablement plus court par rapport aux balayages précédents, car nous ne sommes que en train de scanner un seul port.

Vous pouvez également spécifier une plage de ports à l'aide de l'option -p. Par exemple, pour scanner les ports 80, 443 et 8080, vous utiliseriez la commande suivante :

nmap -sV -p 80,443,8080 127.0.0.1

Cela vous permet de cibler plusieurs ports spécifiques dans un seul balayage.

Utilisez la détection complète avec nmap -sV --version-all 127.0.0.1

Dans cette étape, nous allons utiliser l'option --version-all de Nmap pour effectuer la détection la plus complète possible de la version des services. Cette option indique à Nmap d'essayer chaque sonde de détection de version pour chaque port ouvert. C'est le paramètre le plus agressif et peut fournir les résultats les plus précis, mais il prend également le plus de temps pour être terminé.

Exécutons la commande :

  1. Ouvrez le terminal Xfce.

  2. Tapez la commande suivante et appuyez sur Entrée :

nmap -sV --version-all 127.0.0.1

Vous devriez voir une sortie similaire à la suivante (la sortie exacte peut varier selon les services exécutés sur votre machine) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.52 ((Ubuntu))
111/tcp  open  rpcbind 2-4 (RPC #100000)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

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

Explication :

  • nmap -sV --version-all 127.0.0.1 : Effectue une détection de version de service (-sV) avec l'option --version-all sur l'ordinateur local (127.0.0.1).
  • La sortie montre les ports ouverts et les versions des services détectées.
  • Remarquez que le temps de balayage est plus long par rapport aux balayages précédents, car Nmap essaie chaque sonde possible.

Considérations importantes :

  • Utiliser --version-all peut considérablement augmenter le temps de balayage.
  • Dans certains cas, cela peut ne pas fournir des résultats significativement plus précis que le niveau par défaut.
  • Prenez conscience de l'impact sur le système cible, car ce balayage agressif peut générer plus de trafic.

Cette option est la plus utile lorsque vous avez besoin de l'information la plus précise possible sur la version des services et que vous êtes prêt à accepter un temps de balayage plus long.

Analyser la sortie dans le terminal Xfce

Dans cette étape, nous allons apprendre à analyser la sortie des balayages Nmap directement dans le terminal Xfce. Comprendre la sortie est crucial pour identifier les vulnérabilités potentielles et obtenir des informations sur le système cible.

Supposons que vous avez déjà exécuté l'une des commandes Nmap précédentes, par exemple :

nmap -sV 127.0.0.1

La sortie sera affichée directement dans le terminal. Analysons les éléments clés de la sortie :

  • Starting Nmap... : Cette ligne indique la version de Nmap et l'heure à laquelle le balayage a commencé.
  • Nmap scan report for... : Cette ligne montre l'adresse IP cible ou le nom d'hôte.
  • Host is up... : Cela indique si l'hôte cible est accessible.
  • PORT STATE SERVICE VERSION : Ceci est le tableau principal contenant les résultats du balayage.
    • PORT : Le numéro de port.
    • STATE : L'état du port (par exemple, open, closed, filtered).
    • SERVICE : Le service détecté en cours d'exécution sur le port (par exemple, http, ssh, smtp).
    • VERSION : La version du service détecté (par exemple, Apache httpd 2.4.52, OpenSSH 8.9p1).
  • Service detection performed... : Cette ligne indique que la détection de la version du service a été effectuée.
  • Nmap done... : Cette ligne montre la durée du balayage et le nombre d'hôtes balayés.

Analyse de la sortie :

  1. Ports ouverts : Identifiez les ports ouverts. Ce sont les ports qui écoutent activement les connexions et sont des points d'entrée potentiels pour les attaquants.
  2. Services : Découvrez les services en cours d'exécution sur les ports ouverts. Savoir les services vous permet de rechercher les vulnérabilités potentielles associées à ces services.
  3. Versions : Identifiez les versions des services. Les versions antérieures de logiciels ont souvent des vulnérabilités connues qui peuvent être exploitées.

Exemple :

Si la sortie indique que le port 22 est ouvert et exécute OpenSSH 7.6p1, vous pouvez rechercher les vulnérabilités connues pour cette version spécifique d'OpenSSH.

Utilisation de grep pour filtrer la sortie :

Vous pouvez utiliser la commande grep pour filtrer la sortie de Nmap et vous concentrer sur des informations spécifiques. Par exemple, pour trouver toutes les lignes contenant le mot "open", vous pouvez rediriger la sortie de Nmap vers grep :

Tout d'abord, exécutez la commande nmap à nouveau :

nmap -sV 127.0.0.1

Ensuite, redirigez la sortie vers grep. Comme la sortie de la commande précédente est déjà dans le terminal, nous ne pouvons pas la rediriger directement. Cependant, nous pouvons utiliser grep pour rechercher la sortie de la commande dans l'historique du terminal.

history | grep "nmap -sV 127.0.0.1" | tail -n 1 | xargs -L 1 bash -c 'eval $(echo $1 | sed "s/^[ ]*[0-9]*[ ]*//")'

Cette commande trouve d'abord la ligne dans l'historique qui contient la commande nmap, puis extrait la commande elle-même, et enfin l'exécute. La sortie de la commande nmap sera ensuite affichée dans le terminal.

Maintenant, utilisons grep pour filtrer la sortie. Comme nous ne pouvons pas directement rediriger la sortie de la commande précédente, nous devrons exécuter la commande nmap à nouveau et rediriger sa sortie vers grep.

nmap -sV 127.0.0.1 | grep "open"

Cela affichera seulement les lignes qui contiennent le mot "open", ce qui facilite l'identification des ports ouverts.

Analyser la sortie dans le terminal est une compétence fondamentale pour les administrateurs de réseau et les professionnels de la sécurité. Elle vous permet d'évaluer rapidement la posture de sécurité d'un système et d'identifier les vulnérabilités potentielles.

Enregistrez les résultats avec nmap -sV -oN services.txt 192.168.1.1

Dans cette étape, nous allons apprendre à sauvegarder les résultats d'un balayage Nmap dans un fichier pour une analyse ou un rapport ultérieurs. Nmap propose plusieurs formats de sortie, et nous utiliserons le format de sortie "normal" (-oN) dans cet exemple.

  1. Ouvrez le terminal Xfce.

  2. Tapez la commande suivante et appuyez sur Entrée :

nmap -sV -oN services.txt 192.168.1.1

Cette commande effectue un balayage de détection de version de service (-sV) sur l'adresse IP cible 192.168.1.1 et enregistre la sortie au format "normal" (-oN) dans un fichier nommé services.txt dans votre répertoire actuel (~/project).

Explication :

  • nmap -sV : Effectue une détection de version de service.
  • -oN services.txt : Spécifie que la sortie doit être enregistrée au format "normal" dans un fichier nommé services.txt.
  • 192.168.1.1 : L'adresse IP cible. Notez : Si vous n'avez pas d'hôte à l'adresse 192.168.1.1, vous pouvez utiliser 127.0.0.1 à la place.

Une fois le balayage terminé, vous pouvez afficher le contenu du fichier services.txt à l'aide de la commande cat :

cat services.txt

Cela affichera les résultats du balayage Nmap dans le terminal.

Alternativement, vous pouvez ouvrir le fichier services.txt avec un éditeur de texte tel que nano :

nano services.txt

Cela vous permet de parcourir les résultats de manière plus structurée.

Comprendre le format de sortie :

Le format de sortie "normal" est conçu pour être lisible par l'homme et fournit un résumé concis des résultats du balayage. Il inclut des informations sur l'hôte cible, les ports ouverts, les services détectés et leurs versions.

Autres formats de sortie :

Nmap prend en charge plusieurs autres formats de sortie, notamment :

  • -oX : Format de sortie XML, adapté pour être analysé par d'autres outils.
  • -oS : Format de sortie pour les Script Kiddie (pour s'amuser).
  • -oG : Format de sortie grepable, conçu pour être facilement analysé avec grep et d'autres outils de ligne de commande.

Sauvegarder les résultats des balayages est essentiel pour documenter vos découvertes, les partager avec les autres et suivre les modifications au fil du temps.

Résumé

Dans ce laboratoire, les participants apprennent à utiliser Nmap pour la détection de services et de versions. Ils commencent par un balayage de détection de service de base sur l'ordinateur local en utilisant la commande nmap -sV 127.0.0.1. Ils apprennent également à ajuster l'intensité du balayage, à détecter les services sur des ports spécifiques et à effectuer une détection complète. En outre, ils analysent la sortie dans le terminal Xfce et enregistrent les résultats dans un fichier texte en utilisant l'option -oN.