GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande nmap

Nmap est un puissant outil d'analyse de réseau pour les audits de sécurité et les tests d'intrusion. C'est l'un des outils essentiels utilisés par les administrateurs réseau pour résoudre les problèmes de connectivité réseau et l'analyse des ports.

Nmap peut également détecter l'adresse Mac, le type de système d'exploitation, la version du service et bien plus encore.

Cet article explique les bases de l'utilisation de nmap commande pour effectuer diverses tâches réseau.

Installation de Nmap #

Nmap est un programme multiplateforme qui peut être installé sur tous les principaux systèmes d'exploitation. Il a été initialement publié en tant qu'outil Linux uniquement, puis il a été porté sur d'autres systèmes tels que BSD, Windows et macOS.

Si vous préférez une interface graphique à la ligne de commande, Nmap possède également une interface utilisateur graphique appelée Zenmap.

Les packages binaires officiels sont disponibles au téléchargement à partir de la page de téléchargement de Nmap.

La procédure d'installation est simple et varie en fonction de votre système d'exploitation.

Installer Nmap sur Ubuntu et Debian #

Nmap est disponible à partir des référentiels Ubuntu et Debian par défaut. Pour l'installer, exécutez :

sudo apt updatesudo apt install nmap

Installer Nmap sur CentOS et Fedora #

Sur CentOS et d'autres dérivés de Red Hat, exécutez :

sudo dnf install nmap

Installer Nmap sur macOS #

Les utilisateurs de macOS peuvent installer Nmap en téléchargeant le package d'installation ".dmg" depuis le site Nmap ou via Homebrew :

brew install nmap

Installer Nmap sur Windows #

La version Windows de Nmap présente certaines limitations et est généralement un peu plus lente que la version UNIX.

L'option la plus simple pour installer Nmap sur Windows est de télécharger et d'exécuter le fichier exe d'auto-installation.

Vous pouvez exécuter Nmap sous Windows soit à partir de la ligne de commande, soit en lançant le programme Zenmap. Pour plus d'informations sur l'utilisation de Nmap sous Windows, consultez les instructions d'utilisation post-installation.

Utiliser Nmap #

Nmap est généralement utilisé pour auditer la sécurité du réseau, le mappage du réseau, identifier les ports ouverts et rechercher des appareils en ligne.

La syntaxe simplifiée du nmap commande est la suivante :

nmap [Options] [Target...]

L'exemple le plus basique d'utilisation de Nmap consiste à analyser une seule cible en tant qu'utilisateur standard sans spécifier d'options :

nmap scanme.nmap.org

Lorsqu'il est appelé en tant qu'utilisateur non root qui n'a pas de privilèges de paquets bruts, nmap exécute l'analyse de connexion TCP. Le (-sT ) est activé par défaut en mode non privilégié.

La sortie ressemblera à ceci, y compris des informations de base sur l'analyse et une liste des ports TCP ouverts et filtrés.

Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
110/tcp  open     pop3
143/tcp  open     imap
443/tcp  open     https
587/tcp  open     submission
993/tcp  open     imaps
995/tcp  open     pop3s
1025/tcp open     NFS-or-IIS
1080/tcp open     socks
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap

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

L'option d'analyse la plus populaire est l'analyse TCP SYN (-sS ) qui est plus rapide que l'option de connexion et fonctionne avec toutes les piles TCP conformes.

-sS est activé par défaut lorsque nmap est appelé en tant qu'utilisateur avec des privilèges administratifs :

sudo nmap 192.168.10.121

Pour une sortie plus détaillée, utilisez l'augmentation de la verbosité avec -v ou -vv :

sudo nmap -vv 192.168.10.121

Pour effectuer une analyse UDP, invoquez la commande avec le (-sU ) en tant qu'utilisateur root :

sudo nmap -sU 192.168.10.121

Pour une liste complète des méthodes d'analyse de ports, visitez la page de documentation Nmap.

Nmap prend également en charge les adresses IPv6. Pour spécifier un hôte IPv6, utilisez le -6 choix :

sudo nmap -6 fd12:3456:789a:1::1

Spécification des hôtes cibles #

Nmap traite tous les arguments qui ne sont pas des options comme des hôtes cibles.

Les arguments sont considérés comme des options s'ils commencent par un tiret simple ou double (- , -- ).

L'option la plus simple est de passer une ou plusieurs adresses cibles ou noms de domaine :

nmap 192.168.10.121 host.to.scan

Vous pouvez utiliser la notation CIDR pour spécifier une plage réseau :

nmap 192.168.10.0/24

Pour spécifier une plage d'octets, utilisez le tiret. Par exemple, pour scanner 192.168.10.1 , 192.168.11.1 , et 192.168.12.1 :

nmap 192.168.10-12.1

Un autre caractère que vous pouvez utiliser pour spécifier les cibles est la virgule. La commande suivante cible les mêmes hôtes que celle ci-dessus :

nmap 192.168.10,11,12.1

Vous pouvez combiner tous les formulaires :

nmap 10.8-10.10,11,12.0/28  192.168.1-2.100,101

Pour vous assurer que vous avez spécifié les bons hôtes avant l'analyse, utilisez l'option d'analyse de liste (-sL ), qui répertorie uniquement les cibles sans exécuter d'analyse :

nmap -sL 10.8-10.10,11,12.0/28  192.168.1-2.100,101

Si vous souhaitez exclure les cibles incluses dans la plage que vous avez spécifiée, utilisez le --exclude choix :

nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12

Spécification et analyse des ports #

Par défaut, Nmap effectue une analyse rapide des 1000 ports les plus populaires. Ces ports ne sont pas les 1000 premiers ports consécutifs, mais les 1000 ports les plus couramment utilisés, allant de 1 à 65389.

Pour rechercher tous les ports de 1 à 65535, utilisez le -p- choix :

nmap -p- 192.168.10.121

Chaque port peut être dans l'un des états suivants :

  • open - Le programme en cours d'exécution sur le port répond à la requête.
  • fermé - Aucun programme ne s'exécute sur le port et l'hôte répond aux requêtes.
  • filtré - L'hôte ne répond pas à la demande.

Par exemple, pour scanner uniquement le port 443, vous utiliserez la commande suivante :

nmap -p 443 192.168.10.121

Pour spécifier plusieurs ports, séparez les ports cibles par une virgule :

nmap -p 80,443 192.168.10.121

Les plages de ports peuvent être spécifiées avec le symbole du tiret. Par exemple, pour analyser tous les ports UDP allant de 1 à 1024, vous exécuteriez :

sudo nmap -sU -p 1-1024 192.168.10.121

Tous combinés :

nmap -p 1-1024,8080,9000 192.168.10.121

Les ports peuvent également être spécifiés à l'aide du nom de port. Par exemple, pour rechercher le port 22, ssh, vous pouvez utiliser :

nmap -p ssh 192.168.10.121

Analyse Ping #

Pour effectuer une analyse ping ou une découverte d'hôte, appelez le nmap commande avec le -sn choix :

sudo nmap -sn 192.168.10.0/24

Le -sn L'option indique à Nmap uniquement de découvrir les hôtes en ligne et de ne pas effectuer d'analyse de port. Ceci est utile lorsque vous souhaitez déterminer rapidement lesquels des hôtes spécifiés sont opérationnels.

Désactivation de la résolution de nom DNS #

Le comportement par défaut de Nmap consiste à effectuer une résolution DNS inverse pour chaque hôte découvert, ce qui augmente le temps d'analyse.

Lors de l'analyse de grands réseaux, il est judicieux de désactiver la résolution DNS inverse et d'accélérer les analyses. Pour ce faire, invoquez la commande avec le -n choix :

sudo nmap -n 192.168.10.0/16

Numéro de détection du système d'exploitation, du service et de la version

Nmap peut détecter le système d'exploitation hôte distant à l'aide de l'empreinte de la pile TCP/IP. Pour exécuter la détection du système d'exploitation, appelez la commande avec le -O choix :

sudo nmap -O scanme.nmap.org

Si Nmap peut détecter le système d'exploitation hôte, il affichera quelque chose comme ci-dessous :

...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops

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

Généralement, les services système écoutent sur des ports standard qui leur sont bien connus et qui leur sont réservés. Par exemple, si le port 22 qui correspond au service SSH est ouvert, vous supposerez qu'un serveur SSH s'exécute sur l'hôte. Cependant, vous ne pouvez pas en être absolument sûr, car les utilisateurs peuvent exécuter des services sur les ports de leur choix.

Avec la détection de service et de version, Nmap vous montrera quel programme écoute sur le port et la version du programme.

Pour rechercher le service et la version, utilisez le -sV choix :

sudo nmap -sV scanme.nmap.org
...
PORT      STATE    SERVICE      VERSION
19/tcp    filtered chargen
22/tcp    open     ssh          OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp    open     http         Apache httpd 2.4.7 ((Ubuntu))
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds
9929/tcp  open     nping-echo   Nping echo
31337/tcp open     tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...

Vous pouvez également rechercher le système d'exploitation, les versions et exécuter traceroute en une seule commande à l'aide de -A choix :

sudo nmap -A 192.168.10.121

Numéro de sortie Nmap

Par défaut, Nmap imprime les informations sur la sortie standard (stdout).

Si vous analysez un grand réseau ou avez besoin des informations pour une utilisation ultérieure, vous pouvez enregistrer la sortie dans un fichier.

Nmap fournit plusieurs types de sortie. Pour enregistrer la sortie au format normal, utilisez le -oN option suivie du nom du fichier :

sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt

L'option la plus populaire consiste à enregistrer la sortie au format XML. Pour ce faire, utilisez le -oX choix :

sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml

Un autre format utile est la sortie grepable, qui peut être analysée avec les outils Unix standard comme grep , awk et cut . La sortie grepable est spécifiée avec le -oG choix :

sudo nmap -sU -p 1-1024 192.168.10.121 -oG output

Moteur de script Nmap #

L'une des fonctionnalités les plus puissantes de Nmap est son moteur de script. Nmap est livré avec des centaines de scripts, et vous pouvez également écrire vos propres scripts en langage Lua.

Vous pouvez utiliser des scripts pour détecter les logiciels malveillants et les portes dérobées, effectuer des attaques par force brute, etc.

Par exemple, pour vérifier si un hôte donné est compromis, vous pouvez utiliser :

nmap -sV --script http-malware-host scanme.nmap.org

Conclusion #

Nmap est un outil open source utilisé principalement par les administrateurs réseau pour découvrir les hôtes et scanner les ports.

Veuillez noter que dans certains pays, il n'est pas légal de scanner les réseaux sans autorisation.


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande basename ?

  4. Comment utiliser la commande nmap sous Linux

  5. Comment utiliser la commande id sous Linux

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande nmap

Comment utiliser la commande wget sous Linux ?

Comment utiliser la commande xargs sous Linux ?

Comment utiliser la commande RPM sous Linux

Comment utiliser la commande which sous Linux