Effectuer une analyse complète 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, vous allez apprendre à effectuer des scans complets à l'aide de Nmap. Le laboratoire se concentre sur la combinaison de différents types de scans pour recueillir des informations détaillées sur une cible.

Vous exécuterez des scans complets en utilisant des options telles que -sS (scan TCP SYN), -sU (scan UDP), -O (détection du système d'exploitation) et -sV (détection de la version du service). Vous explorerez également l'ajout de scripts avec -sC, le réglage de la durée avec -T3, l'augmentation de la verbosité avec -v et l'enregistrement des résultats du scan dans un fichier avec -oN. Enfin, vous analyserez la sortie complète générée par ces scans dans le terminal Xfce.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/udp_scanning("UDP Scanning Techniques") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/script_management("Script Categories and Updating") subgraph Lab Skills nmap/save_output -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/port_scanning -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/timing_performance -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/verbosity -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/syn_scan -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/udp_scanning -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/os_version_detection -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/service_detection -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} nmap/script_management -.-> lab-547104{{"Effectuer une analyse complète avec Nmap"}} end

Exécuter un scan complet avec nmap -sS -sU -O -sV 192.168.1.1

Dans cette étape, nous allons effectuer un scan complet d'une adresse IP cible à l'aide de Nmap. Un scan complet combine plusieurs types de scans pour recueillir des informations complètes sur la cible. Cela inclut le scan TCP SYN (-sS), le scan UDP (-sU), la détection du système d'exploitation (-O) et la détection de la version du service (-sV).

Avant de commencer, expliquons brièvement chacune de ces options Nmap :

  • -sS : Scan TCP SYN (également appelé scan furtif ou scan semi-ouvert). C'est un scan rapide et furtif qui ne termine pas la connexion TCP.
  • -sU : Scan UDP. Il envoie des paquets UDP à la cible et écoute les réponses pour déterminer quels ports UDP sont ouverts.
  • -O : Détection du système d'exploitation. Il essaie d'identifier le système d'exploitation de l'hôte cible en analysant son empreinte digitale de la pile TCP/IP.
  • -sV : Détection de la version du service. Elle détermine la version du logiciel exécuté sur les ports ouverts.

Maintenant, exécutons la commande de scan complet. Nous allons scanner l'adresse IP 192.168.1.1. Assurez-vous que l'adresse IP cible est accessible depuis votre VM LabEx. Si vous n'avez pas de cible spécifique en tête, vous pouvez utiliser l'adresse IP de votre propre machine ou une adresse IP de test dans votre réseau local.

Ouvrez votre terminal Xfce et accédez au répertoire ~/project. Ensuite, exécutez la commande suivante :

nmap -sS -sU -O -sV 192.168.1.1

Cette commande lancera un scan complet de l'adresse IP cible 192.168.1.1. Nmap effectuera un scan TCP SYN, un scan UDP, une détection du système d'exploitation et une détection de la version du service.

La sortie affichera les ports ouverts, les services exécutés sur ces ports, le système d'exploitation de la cible et autres informations pertinentes.

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
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.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD

OS details: Linux 3.2 - 4.9
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   1.20 ms 192.168.1.1

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

Cette sortie montre les ports ouverts (par exemple, 22, 80, 139, 445), les services exécutés sur ces ports (par exemple, ssh, http, netbios-ssn, microsoft-ds) et le système d'exploitation de la cible (Linux). Le résultat du scan UDP montre que le port 5353 est ouvert.

Ajouter des scripts avec nmap -sS -sU -sC -p 22,80 127.0.0.1

Dans cette étape, nous allons améliorer notre scan Nmap en incorporant des scripts Nmap. Les scripts Nmap sont des outils puissants qui peuvent automatiser diverses tâches, telles que la détection de vulnérabilités, l'énumération des services, etc. L'option -sC indique à Nmap d'utiliser l'ensemble par défaut de scripts. Nous spécifierons également les ports à scanner en utilisant l'option -p.

Avant de continuer, clarifions le but des options -sC et -p :

  • -sC : Cette option indique à Nmap d'exécuter l'ensemble par défaut de scripts sur la cible. Ces scripts sont conçus pour fournir des informations de base sur les services exécutés sur la cible.
  • -p : Cette option vous permet de spécifier les ports que vous souhaitez scanner. Dans ce cas, nous spécifions les ports 22 et 80.

Maintenant, exécutons la commande. Nous allons scanner 127.0.0.1 (localhost) sur les ports 22 et 80, en utilisant les scripts par défaut.

Ouvrez votre terminal Xfce et accédez au répertoire ~/project. Ensuite, exécutez la commande suivante :

nmap -sS -sU -sC -p 22,80 127.0.0.1

Cette commande effectuera un scan SYN (-sS) et un scan UDP (-sU) sur les ports 22 et 80 de l'ordinateur local (127.0.0.1), et elle exécutera également les scripts par défaut (-sC) sur ces ports.

La sortie affichera les ports ouverts, les services exécutés sur ces ports et les résultats des scripts exécutés.

Exemple de sortie (la sortie réelle variera selon les services exécutés sur votre ordinateur local) :

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.000039s latency).

PORT   STATE SERVICE
22/tcp open  ssh
| ssh-hostkey:
|   2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (RSA)
|_  256 SHA256:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy (ECDSA)
80/tcp closed http

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

Dans cet exemple, le port 22 (SSH) est ouvert et le script ssh-hostkey a fourni des informations sur la clé d'hôte SSH. Le port 80 (HTTP) est fermé. Le scan UDP n'a révélé aucun port ouvert.

Régler le timing avec nmap -sS -sU -T3 192.168.1.1

Dans cette étape, nous allons apprendre à régler le timing des scans Nmap en utilisant l'option -T. L'option -T contrôle l'agressivité du scan, ce qui affecte la vitesse et la précision des résultats. Un modèle de timing plus élevé peut rendre les scans plus rapides, mais augmente également les chances d'être détecté ou de manquer certains résultats.

L'option -T accepte des valeurs de 0 à 5, chaque valeur représentant un modèle de timing différent :

  • -T0 : Parano (très lent, utilisé pour les systèmes de détection d'intrusions)
  • -T1 : Rusé ( lent, évite la détection)
  • -T2 : Poli (ralentit le scan pour éviter de surcharger la cible)
  • -T3 : Normal (valeur par défaut, vitesse et précision équilibrées)
  • -T4 : Aggressif (rapide, peut augmenter le risque de détection ou de résultats inexacts)
  • -T5 : Insensé (très rapide, risque élevé de détection et de résultats inexacts)

Dans cette étape, nous utiliserons l'option -T3, qui représente le modèle de timing "Normal". C'est la valeur par défaut, mais nous la spécifierons explicitement à des fins de démonstration. Nous effectuerons également un scan SYN (-sS) et un scan UDP (-sU) sur l'adresse IP cible 192.168.1.1.

Ouvrez votre terminal Xfce et accédez au répertoire ~/project. Ensuite, exécutez la commande suivante :

nmap -sS -sU -T3 192.168.1.1

Cette commande effectuera un scan SYN et un scan UDP sur l'adresse IP cible 192.168.1.1 en utilisant le modèle de timing "Normal".

La sortie affichera les ports ouverts et les services exécutés sur ces ports, similairement aux scans précédents. La principale différence est que le scan sera effectué avec les paramètres de timing par défaut.

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  open  netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  open  microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp open  mdns    Avahi mDNS/DNS-SD

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

Cette sortie est similaire à la sortie de la première étape, mais elle démontre comment définir explicitement le modèle de timing en utilisant l'option -T.

Ajouter la verbosité avec nmap -v -sS -sU -O 127.0.0.1

Dans cette étape, nous allons ajouter de la verbosité à notre scan Nmap en utilisant l'option -v. La verbosité augmente la quantité d'informations affichées pendant le scan, fournissant plus de détails sur le processus et les résultats. Cela peut être utile pour le dépannage ou pour mieux comprendre ce que fait Nmap.

L'option -v augmente le niveau de verbosité. Vous pouvez l'utiliser plusieurs fois (par exemple, -vv) pour augmenter davantage la verbosité.

Dans cette étape, nous effectuerons un scan SYN (-sS), un scan UDP (-sU) et une détection du système d'exploitation (-O) sur l'adresse IP cible 127.0.0.1 (localhost), et nous ajouterons de la verbosité en utilisant l'option -v.

Ouvrez votre terminal Xfce et accédez au répertoire ~/project. Ensuite, exécutez la commande suivante :

nmap -v -sS -sU -O 127.0.0.1

Cette commande effectuera les scans spécifiés avec une verbosité accrue. Vous verrez une sortie plus détaillée sur le processus de scan, y compris les sondes envoyées, les réponses reçues et les tentatives de détection du système d'exploitation.

Exemple de sortie (la sortie réelle variera selon la cible et les services exécutés sur elle) :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
NSE: Chargé 0 scripts pour le balayage.
Lancement du scan SYN Stealth
Balayage de localhost (127.0.0.1) [1000 ports]
Découverte du port 22/tcp ouvert sur 127.0.0.1
Scan SYN Stealth terminé
Lancement du scan UDP
Balayage de localhost (127.0.0.1) [1000 ports]
Scan UDP terminé
Lancement de la détection du système d'exploitation.
Balayage de localhost (127.0.0.1)
Détail de la détection du système d'exploitation terminé.
Rapport de scan Nmap pour localhost (127.0.0.1)
L'hôte est actif (0.000039s de latence).
Ports non affichés : 998 fermés
PORT   ÉTAT SERVICE
22/tcp ouvert ssh
5353/udp ouvert mdns

Type de périphérique : Généraliste
Exécution : Linux 5.X
OS CPE : cpe:/o:linux:linux_kernel:5
Détails de l'OS : Linux 5.0 - 5.15

Données de fichiers lues : /usr/bin/../share/nmap
Détail de la détection du système d'exploitation effectué. Veuillez signaler tout résultat incorrect à https://nmap.org/submit/ .
Nmap terminé : 1 adresse IP (1 hôte actif) balayé en 15.24 secondes

Remarquez les informations supplémentaires affichées sur le processus de scan, telles que "Lancement du scan SYN Stealth", "Scan UDP terminé" et "Lancement de la détection du système d'exploitation". C'est le résultat de la verbosité accrue.

Sauvegarder un scan complet avec nmap -sS -sU -sV -oN full.txt 192.168.1.1

Dans cette étape, nous allons apprendre à sauvegarder la sortie d'un scan Nmap dans un fichier en utilisant l'option -oN. Cela est utile pour une analyse ultérieure ou pour documenter les résultats d'un scan.

L'option `-oN spécifie que la sortie doit être enregistrée au format "normal" dans le fichier spécifié. Le format "normal" est un format lisible par l'homme et facile à analyser.

Dans cette étape, nous effectuerons un scan SYN (-sS), un scan UDP (-sU) et une détection de la version du service (-sV) sur l'adresse IP cible 192.168.1.1, et nous enregistrerons la sortie dans un fichier nommé full.txt dans le répertoire ~/project.

Ouvrez votre terminal Xfce et accédez au répertoire ~/project. Ensuite, exécutez la commande suivante :

nmap -sS -sU -sV -oN full.txt 192.168.1.1

Cette commande effectuera les scans spécifiés et enregistrera la sortie dans le fichier full.txt.

Une fois le scan terminé, vous pouvez afficher le contenu du fichier full.txt en utilisant la commande cat ou un éditeur de texte comme nano.

cat full.txt

ou

nano full.txt

Le fichier full.txt contiendra la sortie du scan Nmap au format lisible par l'homme.

Exemple de contenu de full.txt (le contenu réel variera selon la cible) :

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT     ÉTAT SERVICE VERSION
22/tcp   ouvert ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   ouvert http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  ouvert netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  ouvert microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp ouvert mdns    Avahi mDNS/DNS-SD
Service Info: Host: MYSERVER; OS: Linux; CPE: cpe:/o:linux:linux_kernel

## Nmap done at Fri Oct 27 10:20:10 2023 -- 1 IP address (1 host up) scanned in 10.24 seconds

Cette sortie est similaire à la sortie affichée dans le terminal, mais elle est désormais enregistrée dans un fichier pour une utilisation ultérieure.

Analyser la sortie complète dans le terminal Xfce

Dans cette étape, nous allons analyser la sortie complète générée par les scans Nmap effectués dans les étapes précédentes. Comprendre la sortie est crucial pour identifier les vulnérabilités potentielles et recueillir des informations sur le système cible. Nous allons nous concentrer sur l'interprétation des éléments clés de la sortie Nmap dans le terminal Xfce.

Tout d'abord, revenons sur les différents types de scans que nous avons effectués et les informations qu'ils fournissent :

  • Scan SYN (-sS) : C'est un scan discrètement qui identifie rapidement les ports ouverts sans achever la mainmise TCP. C'est utile pour cartographier rapidement les ports ouverts sur une cible.
  • Scan UDP (-sU) : Ce scan identifie les ports UDP ouverts. UDP est un protocole sans connexion, donc ce scan peut être moins fiable et plus lent qu'un scan TCP.
  • Détection du système d'exploitation (-O) : Cela tente de déterminer le système d'exploitation en cours d'exécution sur la cible.
  • Détection de la version du service (-sV) : Cela tente de déterminer la version des services en cours d'exécution sur les ports ouverts.
  • Scan de scripts (-sC) : Cela exécute un ensemble de scripts Nmap pour identifier les vulnérabilités et recueillir plus d'informations sur la cible.

Maintenant, analysons la sortie. Vous pouvez soit vous référer au fichier full.txt créé dans l'étape précédente, soit exécuter à nouveau un scan et observer la sortie directement dans le terminal. Par exemple, vous pouvez afficher le contenu de full.txt en utilisant la commande cat :

cat ~/project/full.txt

Ou vous pouvez exécuter à nouveau la commande de scan complète de l'étape 1 :

nmap -sS -sU -O -sV 192.168.1.1

Éléments clés à rechercher dans la sortie :

  • Ports ouverts : Nmap listera les ports ouverts sur le système cible. C'est la première étape pour identifier les services potentiels en cours d'exécution.
  • Informations sur le service : Nmap tentera d'identifier le service en cours d'exécution sur chaque port ouvert. Ces informations peuvent être utilisées pour identifier les vulnérabilités connues dans ces services.
  • Système d'exploitation : Nmap tentera d'identifier le système d'exploitation en cours d'exécution sur la cible. Ces informations peuvent être utilisées pour identifier les vulnérabilités spécifiques à l'OS.
  • Latence du scan : La sortie montre la latence, qui est le temps qu'il prend à Nmap pour communiquer avec la cible. Une latence plus élevée peut indiquer une congestion réseau ou une connexion lente.

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
Not shown: 997 closed ports
PORT     ÉTAT SERVICE VERSION
22/tcp   ouvert ssh     OpenSSH 7.6p0 Ubuntu 7ubuntu2 (protocol 2.0)
80/tcp   ouvert http    Apache httpd 2.4.29 ((Ubuntu))
139/tcp  ouvert netbios-ssn Samba netbios-ssn (workgroup: WORKGROUP)
445/tcp  ouvert microsoft-ds Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
5353/udp ouvert mdns    Avahi mDNS/DNS-SD
Service Info: Host: MYSERVER; OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS CPE: cpe:/o:linux:linux_kernel
Aggressive OS guesses: Linux 3.10 - 4.11 (95%), Linux 3.16 (95%), Linux 4.4 (95%), Linux 4.6 - 4.7 (95%), Linux 4.8 (95%), Linux 4.9 (95%), Linux 4.12 (95%), Linux 4.13 (95%), Linux 4.14 (95%), Linux 4.15 (95%)
No exact OS matches for host.

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

Dans cet exemple de sortie :

  • Le port 22 est ouvert et exécute OpenSSH 7.6p0.
  • Le port 80 est ouvert et exécute Apache httpd 2.4.29.
  • Les ports 139 et 445 sont ouverts et exécutent Samba.
  • Le port 5353 est ouvert et exécute Avahi mDNS/DNS-SD.
  • Nmap a fait des suppositions agressives sur l'OS, suggérant qu'il s'agit probablement d'un noyau Linux entre les versions 3.10 et 4.15.

En analysant soigneusement la sortie Nmap, vous pouvez obtenir des informations précieuses sur la posture de sécurité du système cible.

Récapitulatif

Dans ce laboratoire, nous avons effectué des scans complets avec Nmap, combinant le scan TCP SYN (-sS), le scan UDP (-sU), la détection du système d'exploitation (-O) et la détection de la version du service (-sV) pour recueillir des informations abondantes sur une adresse IP cible. Nous avons appris à exécuter un scan complet en utilisant la commande nmap -sS -sU -O -sV 192.168.1.1 et à interpréter la sortie, qui inclut les ports ouverts, les services en cours d'exécution et le système d'exploitation de la cible.

De plus, le laboratoire a porté sur l'ajout de scripts avec -sC, le réglage de la cadence avec -T3, l'augmentation de la verbosité avec -v et l'enregistrement des résultats du scan dans un fichier à l'aide de -oN. Ces techniques améliorent les capacités de Nmap pour une analyse et un rapportage de réseau détaillés.