Comment scanner plusieurs adresses IP simultanément avec Nmap en cybersécurité

NmapAdvanced
Pratiquer maintenant

Introduction

Dans le domaine de la cybersécurité, la compréhension de votre infrastructure réseau est essentielle pour maintenir la sécurité. Nmap (Network Mapper) est un outil open-source largement utilisé qui permet aux professionnels de la sécurité de découvrir les hôtes et les services sur les réseaux informatiques. Ce tutoriel vous guidera à travers le processus d'utilisation de Nmap pour scanner simultanément plusieurs adresses IP, vous permettant de cartographier efficacement votre réseau et d'identifier les problèmes de sécurité potentiels.

À la fin de ce lab, vous comprendrez comment installer Nmap, effectuer des scans de base, cibler plusieurs adresses IP en utilisant différentes techniques et interpréter les résultats. Ces compétences constituent une partie fondamentale de la reconnaissance réseau dans les évaluations de cybersécurité et sont précieuses pour les opérations de sécurité défensives et offensives.

Installation de Nmap et Exécution de Votre Premier Scan

Dans cette première étape, nous allons installer Nmap sur notre système Ubuntu et effectuer un scan de base pour vérifier qu'il fonctionne correctement.

Installation de Nmap

Nmap est disponible dans les dépôts Ubuntu, ce qui facilite son installation. Ouvrez un terminal et exécutez les commandes suivantes :

## Mettre à jour les listes de paquets
sudo apt update

## Installer Nmap
sudo apt install nmap -y

Cette commande téléchargera et installera Nmap ainsi que toutes les dépendances requises. Vérifions que l'installation a réussi en vérifiant la version de Nmap :

nmap --version

Vous devriez voir une sortie similaire à celle-ci :

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39
Compiled without: nmap-update npcap ipv6
Available nsock engines: epoll poll select

Comprendre la Syntaxe de Base de Nmap

La syntaxe de base de Nmap est la suivante :

nmap [type de scan] [options] [cible]

Où :

  • [type de scan] spécifie le type de scan à effectuer (par exemple, scan TCP SYN)
  • [options] sont des paramètres supplémentaires pour personnaliser le scan
  • [cible] est l'hôte ou le réseau à scanner

Votre Premier Scan : Scanner la Machine Locale

Commençons par un simple scan de votre machine locale. C'est un moyen sûr de tester Nmap sans scanner des réseaux externes :

nmap localhost

Cette commande scanne les 1000 ports TCP les plus courants sur votre machine locale. Vous devriez voir une sortie similaire à celle-ci :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

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

La sortie affiche :

  • L'heure de début du scan
  • La cible scannée
  • L'état de l'hôte (up ou down)
  • Les ports ouverts avec leurs noms de service
  • Les statistiques du scan

Notez que les ports ouverts exacts que vous voyez peuvent différer en fonction de la configuration de votre système.

Comprendre les États des Ports

Nmap catégorise les ports en différents états :

  • open : Une application accepte activement les connexions sur ce port
  • closed : Le port est accessible, mais aucune application n'écoute dessus
  • filtered : Nmap ne peut pas déterminer si le port est ouvert car un pare-feu bloque l'accès
  • unfiltered : Le port est accessible, mais Nmap ne peut pas déterminer s'il est ouvert ou fermé
  • open|filtered : Nmap ne peut pas déterminer si le port est ouvert ou filtré
  • closed|filtered : Nmap ne peut pas déterminer si le port est fermé ou filtré

Dans les résultats de votre scan, la plupart des ports seront probablement listés comme "closed", avec quelques ports "open" pour les services en cours d'exécution sur votre système.

Scanner Plusieurs Adresses IP en Utilisant Différentes Méthodes

Maintenant que nous avons installé Nmap et effectué notre premier scan, explorons différentes façons de scanner simultanément plusieurs adresses IP. Ceci est particulièrement utile pour les administrateurs réseau et les professionnels de la sécurité qui ont besoin d'évaluer plusieurs systèmes efficacement.

Méthode 1 : Utilisation des Plages d'IP

L'une des façons les plus simples de scanner plusieurs adresses IP est de spécifier une plage d'IP. Créons un petit réseau virtuel pour scanner en toute sécurité.

Tout d'abord, voyons nos interfaces réseau actuelles :

ip addr show

Maintenant, nous allons scanner une plage d'adresses IP sur notre réseau local. À des fins de démonstration, nous utiliserons une petite plage :

nmap 127.0.0.1-5

Cette commande scanne 5 adresses IP : 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4 et 127.0.0.5. Vous verrez une sortie pour chaque hôte qui répond au scan. Généralement, seul 127.0.0.1 (localhost) répondra.

Méthode 2 : Utilisation de la Notation CIDR

Une autre méthode courante pour spécifier plusieurs cibles est d'utiliser la notation CIDR (Classless Inter-Domain Routing), qui est un moyen concis de spécifier des plages d'adresses IP.

Scannons la plage de bouclage locale :

nmap 127.0.0.0/24

Cette commande scanne 256 adresses IP de 127.0.0.0 à 127.0.0.255. Le /24 indique que les 24 premiers bits de l'adresse IP sont fixes, tandis que les 8 derniers bits varient.

Pour accélérer le scan et se concentrer uniquement sur la recherche d'hôtes actifs sans scanner les ports, nous pouvons utiliser l'option -sn :

nmap -sn 127.0.0.0/24

Ceci effectue un scan ping qui détermine uniquement si les hôtes sont en ligne, sans scanner leurs ports. Vous devriez voir une sortie comme :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 2.66 seconds

Méthode 3 : Utilisation d'une Liste d'Adresses IP

Pour des adresses IP spécifiques non séquentielles, vous pouvez créer un fichier contenant les cibles et utiliser l'option -iL.

Créons un fichier avec quelques adresses IP :

echo "127.0.0.1
127.0.0.2
127.0.0.5" > targets.txt

Maintenant, scannez ces cibles spécifiques :

nmap -iL targets.txt

Cette commande lit les adresses IP à partir du fichier targets.txt et scanne chacune d'elles.

Méthode 4 : Combinaison de Plusieurs Spécifications de Cibles

Nmap vous permet de combiner différentes méthodes de ciblage dans une seule commande. Par exemple :

nmap 127.0.0.1 127.0.0.5-10 127.0.0.0/29

Cette commande scanne :

  • L'adresse IP unique 127.0.0.1
  • La plage d'IP de 127.0.0.5 à 127.0.0.10
  • La plage CIDR 127.0.0.0/29 (qui inclut 127.0.0.0 à 127.0.0.7)

Optimisation de la Vitesse de Scan

Lors du scan de plusieurs cibles, le temps de scan peut augmenter de manière significative. Nmap fournit des options pour contrôler le timing du scan et augmenter l'efficacité :

nmap -T4 127.0.0.0/24

L'option -T4 définit un modèle de timing "agressif", ce qui accélère le scan. Les modèles de timing vont de 0 (paranoid) à 5 (insane), les valeurs plus élevées entraînant des scans plus rapides mais potentiellement moins fiables. Pour les scans de routine, -T4 offre un bon équilibre entre vitesse et fiabilité.

Comprendre la Sortie de Nmap et Sauvegarder les Résultats

Lors de la réalisation de scans réseau, il est important de comprendre comment interpréter les résultats et de les sauvegarder pour une analyse ou un rapport ultérieur. Dans cette étape, nous allons explorer différents formats de sortie de Nmap et comment sauvegarder les résultats des scans.

Comprendre la Sortie Détaillée de Nmap

Effectuons un scan plus détaillé de localhost pour mieux comprendre la sortie de Nmap :

nmap -v localhost

L'option -v active la sortie verbeuse, fournissant plus d'informations sur le scan. Vous devriez voir une sortie similaire à :

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:30 UTC
Initiating Ping Scan at 10:30
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 10:30, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 10:30
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 443/tcp on 127.0.0.1
Completed Connect Scan at 10:30, 0.02s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Cette sortie fournit :

  • La progression du scan
  • Chaque port ouvert découvert en temps réel
  • Le rapport de scan final avec les ports et services ouverts
  • Les statistiques de timing

Sauvegarde des Résultats de Scan dans des Fichiers

Nmap peut enregistrer les résultats dans plusieurs formats, ce qui est utile pour la documentation, l'analyse ultérieure ou le partage avec les membres de l'équipe.

Format de Sortie Normal

Pour enregistrer les résultats du scan dans le format de sortie standard de Nmap :

nmap localhost -oN normal_output.txt

Cela crée un fichier nommé normal_output.txt avec les résultats du scan dans le même format que celui affiché dans le terminal.

Format de Sortie XML

La sortie XML est utile pour le traitement programmatique des résultats du scan :

nmap localhost -oX xml_output.xml

Cela crée un fichier XML qui peut être analysé par d'autres outils ou scripts.

Format de Sortie Greppable

Pour une analyse facile avec des outils en ligne de commande comme grep :

nmap localhost -oG grep_output.txt

Ce format est particulièrement utile pour extraire rapidement des informations spécifiques à l'aide d'outils comme grep.

Tous les Formats à la Fois

Pour enregistrer la sortie dans les trois formats simultanément :

nmap localhost -oA scan_results

Cela crée trois fichiers : scan_results.nmap, scan_results.xml et scan_results.gnmap.

Visualisation des Résultats Enregistrés

Examinons l'un des fichiers de sortie enregistrés :

cat normal_output.txt

Vous devriez voir les résultats du scan Nmap qui ont été précédemment enregistrés dans ce fichier.

Combinaison des Options de Sortie avec le Scan de Plusieurs IP

Combinons maintenant ce que nous avons appris en scannant plusieurs IP et en enregistrant les résultats :

nmap 127.0.0.1-5 -oN multiple_hosts.txt

Cette commande scanne 5 adresses IP et enregistre les résultats dans multiple_hosts.txt.

Examinons ces résultats :

cat multiple_hosts.txt

Vous verrez les résultats du scan pour toutes les adresses IP spécifiées. Généralement, seul 127.0.0.1 apparaîtra comme "up" avec des ports ouverts dans cet exemple.

Ajout de la Détection de Version de Service

Pour recueillir plus d'informations sur les services en cours d'exécution sur les ports ouverts, nous pouvons utiliser l'option -sV :

nmap -sV localhost -oN service_scan.txt

Cela effectue la détection de version de service et enregistre les résultats dans service_scan.txt.

Voyons quelles informations supplémentaires cela fournit :

cat service_scan.txt

La sortie devrait maintenant inclure des informations de version pour les services détectés, ce qui est précieux pour les évaluations de sécurité, car des versions spécifiques peuvent avoir des vulnérabilités connues.

Options de Scan Avancées pour l'Évaluation Réseau

Maintenant que nous comprenons les bases de Nmap et comment scanner plusieurs cibles, explorons quelques options de scan avancées qui sont particulièrement utiles pour les évaluations de cybersécurité.

Sélection des Ports et Types de Scan

Par défaut, Nmap scanne les 1000 ports TCP les plus courants. Cependant, vous pouvez personnaliser les ports à scanner.

Scanner des Ports Spécifiques

Pour scanner des ports spécifiques :

nmap -p 22,80,443 localhost

Cette commande scanne uniquement les ports 22, 80 et 443.

Pour scanner une plage de ports :

nmap -p 20-25 localhost

Cela scanne les ports 20 à 25.

Pour scanner les 65535 ports TCP :

nmap -p- localhost

Notez que scanner tous les ports prend beaucoup plus de temps.

Utilisation de Différents Types de Scan

Nmap prend en charge diverses techniques de scan. La valeur par défaut est un scan TCP SYN (-sS), mais cela nécessite des privilèges root. Sans privilèges root, Nmap utilise un scan TCP connect (-sT).

Essayons explicitement un scan TCP connect :

nmap -sT localhost

Pour un scan plus furtif (nécessite des privilèges root) :

sudo nmap -sS localhost

Pour scanner les ports UDP (souvent négligé mais important pour la sécurité) :

sudo nmap -sU -p 53,161,162 localhost

Cela scanne les ports UDP 53 (DNS), 161 et 162 (SNMP).

Détection du Système d'Exploitation et Scan de Version

Pour des informations plus complètes, combinons la détection du système d'exploitation et le scan de version des services :

sudo nmap -sS -O -sV localhost

L'option -O tente d'identifier le système d'exploitation de la cible. Cela fournit des informations précieuses pour les évaluations de sécurité, car différents systèmes d'exploitation peuvent avoir différentes vulnérabilités.

Décomposons ce que fait chaque option :

  • -sS : Effectue un scan SYN (nécessite root)
  • -O : Tente d'identifier le système d'exploitation de la cible
  • -sV : Sonde les ports ouverts pour déterminer les informations de service/version

La sortie inclura des informations détaillées sur le système d'exploitation et les versions des services en cours d'exécution sur la cible.

Utilisation des Scripts Nmap

Nmap inclut un puissant Nmap Scripting Engine (NSE) qui peut effectuer un large éventail de tâches, de la détection de services avancée au scan de vulnérabilités.

Exécutons un script de base qui vérifie les services couramment exposés :

nmap --script=default localhost

Pour un scan plus axé sur la sécurité :

nmap --script=vuln localhost

Cela exécute des scripts de détection de vulnérabilités contre la cible, ce qui peut identifier les problèmes de sécurité courants.

Options de Timing et de Performance

Lors du scan de plusieurs cibles, l'optimisation des performances du scan devient cruciale. Nous avons déjà vu l'option -T, mais il existe des contrôles plus précis disponibles.

nmap -T4 --max-rtt-timeout 200ms --min-rate 1000 127.0.0.1/24

Cette commande :

  • Utilise le modèle de timing "agressif" (-T4)
  • Définit le délai d'attente aller-retour maximal à 200 ms
  • Définit un débit minimum de 1000 paquets par seconde

Ces paramètres peuvent accélérer considérablement les scans de plusieurs hôtes, bien qu'ils puissent être moins fiables sur les réseaux encombrés ou à latence élevée.

Combinaison de Tout pour un Scan Complet

Combinons plusieurs techniques pour un scan complet de notre réseau local :

sudo nmap -sS -sV -O -p 1-1000 --script=default -T4 -oA comprehensive_scan 127.0.0.1

Cette commande effectue :

  • Un scan SYN
  • La détection de version des services
  • La détection du système d'exploitation
  • Scanne les ports 1 à 1000
  • Exécute les scripts par défaut
  • Utilise un timing agressif
  • Enregistre les résultats dans tous les formats avec le préfixe "comprehensive_scan"

Examinons les résultats :

cat comprehensive_scan.nmap

Ce scan complet fournit une mine d'informations sur le système cible, notamment les ports ouverts, les services en cours d'exécution, les versions des services et les vulnérabilités potentielles.

Considérations Éthiques et Bonnes Pratiques

Avant de conclure, il est important de souligner que Nmap ne doit être utilisé que sur les réseaux pour lesquels vous avez une autorisation explicite de scanner. Le scan non autorisé peut être illégal et peut être perçu comme une action hostile.

Quelques bonnes pratiques à suivre :

  1. Toujours obtenir l'autorisation avant de scanner un réseau ou un système
  2. Utiliser des scans moins agressifs lorsque cela est possible pour minimiser l'impact sur le réseau
  3. Être conscient du potentiel de faux positifs et de faux négatifs
  4. Documenter vos activités de scan pour référence et responsabilité
  5. Respecter la confidentialité des informations découvertes

Résumé

Dans ce laboratoire, vous avez appris à utiliser Nmap pour scanner efficacement plusieurs adresses IP simultanément, une compétence cruciale pour les administrateurs réseau et les professionnels de la cybersécurité. Nous avons couvert :

  1. L'installation de Nmap et l'exécution de scans de base pour comprendre ses fonctionnalités principales
  2. Diverses méthodes pour spécifier plusieurs cibles, y compris les plages d'adresses IP, la notation CIDR et les listes de cibles
  3. Comment interpréter et enregistrer les résultats des scans dans différents formats pour une analyse plus approfondie
  4. Des techniques de scan avancées qui fournissent des informations plus détaillées sur les services réseau et les vulnérabilités potentielles

Ces compétences constituent une base pour la reconnaissance réseau et l'évaluation de la sécurité. En scannant efficacement plusieurs adresses IP, vous pouvez rapidement cartographier un réseau, identifier les services en cours d'exécution et découvrir les faiblesses de sécurité potentielles.

Pour développer davantage vos compétences en Nmap, envisagez d'explorer :

  • Des scripts NSE (Nmap Scripting Engine) plus spécialisés pour des évaluations de sécurité ciblées
  • L'intégration de Nmap avec d'autres outils de sécurité
  • L'automatisation des scans avec des scripts pour une surveillance de sécurité régulière
  • Le développement de scripts NSE personnalisés pour des besoins de scan spécifiques

Rappelez-vous que les outils de scan réseau comme Nmap doivent toujours être utilisés de manière responsable et éthique, avec une autorisation appropriée pour scanner les systèmes cibles.