Introduction
Nmap (Network Mapper) est un outil fondamental en sécurité et administration réseau. Ce laboratoire vous présente les flags de scan Nmap, qui vous permettent d'effectuer une reconnaissance réseau et une évaluation des vulnérabilités efficaces. Grâce à une pratique concrète, vous apprendrez à utiliser diverses commandes Nmap pour découvrir des hôtes, scanner des ports et identifier les services sur un réseau. Ces compétences sont essentielles pour les administrateurs réseau et les professionnels de la sécurité afin de maintenir des environnements réseau sécurisés.
Installation de Nmap et Scan de Base
Installation de Nmap
Nmap n'est pas pré-installé sur la plupart des systèmes, notre première étape est donc de l'installer. Ouvrez un terminal dans votre environnement LabEx et exécutez les commandes suivantes :
sudo apt update
sudo apt install nmap -y
Une fois l'installation terminée, vérifiez que Nmap est correctement installé en vérifiant sa version :
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 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
Comprendre les bases de Nmap
Nmap fonctionne en envoyant des paquets spécialement conçus aux hôtes cibles et en analysant les réponses. Cela permet de déterminer :
- Quels hôtes sont disponibles sur le réseau
- Quels services (ports) ils proposent
- Quels systèmes d'exploitation ils exécutent
- Quel type de filtres de paquets/pare-feu sont utilisés
La syntaxe de base d'une commande Nmap est :
nmap [scan type] [options] target
Où :
[scan type]spécifie le type de scan à effectuer[options]sont des paramètres supplémentaires pour personnaliser le scantargetest l'adresse IP, le nom d'hôte ou la plage IP à scanner
Votre premier scan : Scanner le localhost
Commençons par un scan simple de votre propre machine (localhost). Exécutez :
nmap localhost
Cette commande scanne les 1000 ports TCP les plus courants sur votre machine locale. La sortie ressemblera à ceci :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
La sortie montre :
- L'heure de début du scan
- L'hôte scanné (localhost/127.0.0.1)
- Les ports ouverts et leurs services associés
- L'heure d'achèvement du scan et les statistiques
Comprendre les résultats du scan
Analysons la sortie :
PORT: Affiche le numéro de port et le protocole (par exemple, 22/tcp)STATE: Indique si le port est ouvert, fermé ou filtréSERVICE: Affiche le service généralement associé à ce port
Les états de port les plus courants sont :
open: Le port accepte les connexionsclosed: Le port est accessible mais aucune application n'écoute dessusfiltered: Nmap ne peut pas déterminer si le port est ouvert car le filtrage des paquets bloque ses sondes
Scanner un port spécifique
Pour scanner un port spécifique, utilisez le flag -p suivi du numéro de port :
nmap -p 22 localhost
La sortie se concentrera uniquement sur le port 22 :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
Scanner une plage de ports
Vous pouvez scanner une plage de ports en utilisant un trait d'union :
nmap -p 20-25 localhost
Cela scanne les ports 20 à 25 :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
24/tcp closed priv-mail
25/tcp closed smtp
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Vous avez maintenant appris comment installer Nmap et effectuer des scans de ports de base. Dans l'étape suivante, nous explorerons des techniques de scan plus avancées en utilisant divers flags Nmap.
Exploration des Flags de Scan Nmap Essentiels
Maintenant que vous comprenez les bases de Nmap, explorons quelques flags de scan essentiels qui vous donneront plus de contrôle et d'informations à partir de vos scans.
Scan TCP SYN (-sS)
Le scan TCP SYN est le type de scan par défaut lorsqu'il est exécuté en tant que root. Il est souvent appelé scan "semi-ouvert" car il ne termine jamais les connexions TCP. Il est relativement discret et rapide.
Exécutons un scan SYN sur localhost :
sudo nmap -sS localhost
La sortie ressemblera à ceci :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Scan TCP Connect (-sT)
Le scan TCP Connect est le scan par défaut lorsque Nmap n'est pas exécuté avec des privilèges root. Il termine la poignée de main TCP complète, ce qui le rend plus détectable mais aussi plus fiable dans certains cas.
nmap -sT localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Détection de version de service (-sV)
Le flag de détection de version indique à Nmap d'essayer de déterminer la version des services fonctionnant sur les ports ouverts :
nmap -sV localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 6.41 seconds
Remarquez comment la sortie inclut désormais des informations de version détaillées pour chaque service. Ceci est extrêmement précieux pour les évaluations de sécurité car certaines versions peuvent présenter des vulnérabilités connues.
Détection du système d'exploitation (-O)
Le flag de détection du système d'exploitation tente de déterminer le système d'exploitation de la cible :
sudo nmap -O localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
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 1.57 seconds
Remarquez que Nmap a détecté que le système exécute le noyau Linux version 4.X ou 5.X.
Combiner les flags pour un scan complet
Vous pouvez combiner plusieurs flags pour obtenir des résultats plus complets. Par exemple, combinons la détection de version de service et la détection du système d'exploitation :
sudo nmap -sV -O localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00015s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.23 seconds
Scan agressif (-A)
Le flag de scan agressif combine plusieurs options de scan, notamment la détection du système d'exploitation, la détection de version, le scan de script et le traceroute :
sudo nmap -A localhost
Sortie (tronquée pour plus de brièveté) :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 11
| Capabilities flags: 65535
| Some Capabilities: SupportsLoadDataLocal, Support41Auth, Speaks41ProtocolOld, IgnoreSigpipes, DontAllowDatabaseTableColumn, FoundRows, SupportsCompression, ConnectWithDatabase, LongPassword, InteractiveClient, SwitchToSSLAfterHandshake, ODBCClient, Speaks41ProtocolNew, IgnoreSpaceBeforeParenthesis, LongColumnFlag, SupportsTransactions, SupportsMultipleResults, SupportsAuthPlugins, SupportsMultipleStatments
| Status: Autocommit
| Salt: \x14\x12\x1Fjw\x182\x15\x0D\x12\x13C\x1F\x14\x0D\x07
|_ Auth Plugin Name: caching_sha2_password
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.12 seconds
Remarquez la quantité importante d'informations supplémentaires fournies par le scan agressif, y compris les informations de clé SSH, les détails du serveur HTTP et des informations de service MySQL plus détaillées.
Dans cette étape, vous avez appris plusieurs flags de scan Nmap essentiels et comment les combiner pour obtenir des résultats plus complets. Dans l'étape suivante, nous explorerons des stratégies de scan pratiques pour différents scénarios.
Stratégies de Scan Réseau et Contrôles de Temporisation
Dans cette étape, nous allons découvrir les stratégies de scan réseau et comment contrôler la temporisation et les performances des scans Nmap. Ceci est crucial lors du scan de réseaux plus vastes ou lorsque vous devez être plus discret.
Scanner plusieurs hôtes
Nmap peut scanner plusieurs hôtes de différentes manières :
Scanner une liste d'adresses IP
Vous pouvez spécifier plusieurs adresses IP séparées par des espaces :
nmap 127.0.0.1 127.0.0.2
Scanner une plage d'adresses IP
Vous pouvez scanner une plage d'adresses IP en utilisant la notation CIDR :
nmap 127.0.0.1/30
Cette commande scanne de 127.0.0.0 à 127.0.0.3. La sortie affichera :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap scan report for 127.0.0.2
Host is up (0.00015s latency).
All 1000 scanned ports on 127.0.0.2 are closed
Nmap scan report for 127.0.0.3
Host is up (0.00013s latency).
All 1000 scanned ports on 127.0.0.3 are closed
Nmap done: 4 IP addresses (3 hosts up) scanned in 0.92 seconds
Options de découverte d'hôtes
Scan Ping (-sn)
Parfois, vous voulez juste savoir quels hôtes sont en ligne sans scanner les ports. Le scan ping est parfait pour cela :
nmap -sn 127.0.0.1/24
Cette commande scannera l'ensemble du sous-réseau 127.0.0.1/24, mais n'effectuera que la découverte d'hôtes sans scan de ports. En raison de la longueur de la sortie, nous ne montrerons qu'un extrait :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Nmap scan report for 127.0.0.2
Host is up (0.00013s latency).
Nmap scan report for 127.0.0.3
Host is up (0.00014s latency).
...
Nmap done: 256 IP addresses (256 hosts up) scanned in 2.34 seconds
Ignorer la découverte d'hôtes (-Pn)
Parfois, les pare-feu bloquent les requêtes ping. Pour contourner cela et scanner tous les hôtes, quelle que soit la réponse ping, utilisez le flag -Pn :
nmap -Pn localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:45 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
Contrôles de temporisation et de performance
Nmap fournit plusieurs modèles de temporisation qui ajustent divers paramètres de scan :
-T0: Paranoid - Très lent, utilisé pour l'évasion d'IDS (Intrusion Detection System)-T1: Sneaky - Lent, utilisé pour l'évasion d'IDS-T2: Polite - Ralentit pour consommer moins de bande passante-T3: Normal - Par défaut, équilibre la vitesse et la fiabilité-T4: Aggressive - Plus rapide, suppose un réseau raisonnablement rapide et fiable-T5: Insane - Très rapide, suppose un réseau extrêmement rapide
Essayons un scan agressif :
nmap -T4 localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
Remarquez que le scan s'est terminé légèrement plus rapidement que le scan par défaut.
Formats de sortie
Nmap peut enregistrer les résultats des scans dans différents formats pour une analyse ou un reporting ultérieurs :
Sortie normale (-oN)
Enregistrez les résultats du scan dans un format normal dans un fichier :
nmap -oN scan_results.txt localhost
Cette commande enregistre la sortie du scan dans scan_results.txt dans le répertoire courant.
Sortie XML (-oX)
Enregistrez les résultats du scan au format XML, ce qui est utile pour l'analyse avec d'autres outils :
nmap -oX scan_results.xml localhost
Tous les formats (-oA)
Enregistrez les résultats du scan dans tous les formats (normal, XML et grepable) :
nmap -oA scan_results localhost
Cela crée trois fichiers : scan_results.nmap, scan_results.xml et scan_results.gnmap.
Examinons le contenu du fichier de sortie normal :
cat scan_results.txt
Sortie :
## Nmap 7.80 scan initiated Thu Sep 14 16:55:23 2023 as: nmap -oN scan_results.txt localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
## Nmap done at Thu Sep 14 16:55:23 2023 -- 1 IP address (1 host up) scanned in 0.12 seconds
Stratégie de scan pratique
Combinons ce que nous avons appris pour créer une stratégie de scan pratique pour un scan complet :
sudo nmap -sS -sV -O -T4 -oA comprehensive_scan localhost
Cette commande :
- Utilise le scan furtif SYN (-sS)
- Détecte les versions des services (-sV)
- Tente la détection du système d'exploitation (-O)
- Utilise une temporisation agressive (-T4)
- Enregistre les résultats dans tous les formats (-oA)
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.42 seconds
Vous pouvez maintenant afficher les résultats du scan complet dans l'un des fichiers de sortie :
ls comprehensive_scan.*
Sortie :
comprehensive_scan.gnmap comprehensive_scan.nmap comprehensive_scan.xml
Considérations éthiques
N'oubliez pas que le scan réseau ne doit être effectué que sur les réseaux que vous possédez ou pour lesquels vous avez une autorisation explicite de scanner. Le scan non autorisé peut être :
- Illégal dans de nombreuses juridictions
- Considéré comme un acte hostile par les administrateurs réseau
- Potentiellement perturbateur pour les services réseau
Dans cet environnement de laboratoire, nous n'avons scanné que localhost, ce qui est toujours autorisé car il s'agit de votre propre système.
Vous avez maintenant appris différentes stratégies de scan réseau, des contrôles de temporisation et des formats de sortie. Vous possédez toutes les connaissances fondamentales nécessaires pour effectuer une reconnaissance réseau efficace à l'aide de Nmap.
Scan de Scripts et Analyse de Services Ciblée
Dans cette étape, nous allons explorer le puissant moteur de scripts (NSE) de Nmap et apprendre à effectuer une analyse de services ciblée. Les scripts NSE étendent les fonctionnalités de Nmap en permettant des scans plus détaillés pour des services et des vulnérabilités spécifiques.
Introduction au Nmap Scripting Engine (NSE)
Le Nmap Scripting Engine permet aux utilisateurs d'écrire et de partager des scripts pour automatiser une variété de tâches réseau. Nmap est livré avec des centaines de scripts pré-écrits, classés en différents groupes :
auth: Scripts liés à l'authentificationdefault: Scripts exécutés par défaut avec-sCdiscovery: Découverte d'hôtes et de servicesexploit: Tentative d'exploitation des vulnérabilitésmalware: Détection de logiciels malveillants et de portes dérobéessafe: Scripts sûrs et non intrusifsvuln: Scripts de détection de vulnérabilités
Exécution des scripts par défaut (-sC)
Le flag -sC exécute l'ensemble de scripts par défaut, qui sont généralement sûrs et fournissent des informations utiles :
nmap -sC localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
|_mysql-info: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 3.42 seconds
Remarquez comment les scripts ont fourni des informations supplémentaires sur chaque service, comme les clés d'hôte SSH et les titres de pages HTTP.
Exécution de scripts spécifiques
Vous pouvez exécuter des scripts spécifiques en utilisant le flag --script suivi du nom du script ou de la catégorie :
nmap --script=http-title localhost
Cela exécute uniquement le script http-title, qui récupère le titre des pages HTTP :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
Exécution de scripts par catégorie
Vous pouvez exécuter tous les scripts d'une catégorie spécifique :
nmap --script=discovery localhost
Cela exécute tous les scripts de découverte, qui peuvent fournir une mine d'informations sur les services réseau (sortie tronquée pour plus de brièveté) :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
| cups-info:
| CUPS Server:
| Server: CUPS/2.3 IPP/2.1
|_ Authentication-Method: Basic
| http-methods:
|_ Supported Methods: GET HEAD OPTIONS POST
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 15
| Capabilities flags: 65535
| Some Capabilities: ConnectWithDatabase, SupportsLoadDataLocal, SupportsTransactions, DontAllowDatabaseTableColumn, Support41Auth, InteractiveClient, Speaks41ProtocolOld, FoundRows, IgnoreSigpipes, ODBCClient, SwitchToSSLAfterHandshake, IgnoreSpaceBeforeParenthesis, LongColumnFlag, Speaks41ProtocolNew, SupportsMultipleStatments, LongPassword, SupportsCompression, SupportsMultipleResults, SupportsAuthPlugins
| Status: Autocommit
| Salt: \x7FeL)\x0C\x5C#S\x06N%\x1E\x7EYaC
|_ Auth Plugin Name: caching_sha2_password
Nmap done: 1 IP address (1 host up) scanned in 5.28 seconds
Combiner le scan de scripts avec la détection de services
Pour obtenir les résultats les plus complets, combinez le scan de scripts avec la détection de services :
nmap -sV -sC localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
|_mysql-info: ERROR: Script execution failed (use -d to debug)
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 9.03 seconds
Analyse de services ciblée
Concentrons-nous sur l'analyse plus détaillée de services spécifiques.
Analyse des services HTTP
Pour analyser les services HTTP en détail, nous pouvons utiliser les scripts http-* :
nmap --script="http-*" -p 80 localhost
Cela exécute tous les scripts liés à HTTP sur le port 80 :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
80/tcp open http
|_http-chrono: Request times for /; avg: 32.68ms; min: 32.68ms; max: 32.68ms
|_http-comments-displayer: Couldn't find any comments.
|_http-date: Thu, 14 Sep 2023 17:30:24 GMT; +6s from local time.
|_http-devframework: Couldn't determine the underlying framework or CMS. Try increasing 'httpspider.maxpagecount' value to spider more pages.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
|_http-feed: Couldn't find any feeds.
|_http-fetch: Please enter the complete path of the directory to save data in.
|_http-generator: Couldn't find any generator in the HTML headers and body
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-mobileversion-checker: No mobile version detected.
|_http-referer-checker: Couldn't find any cross-domain scripts.
|_http-security-headers:
| http-server-header:
| Apache/2.4.41
|_ Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-traceroute: ERROR: Script execution failed (use -d to debug)
|_http-useragent-tester:
|_http-xssed: No previously reported XSS vuln.
Nmap done: 1 IP address (1 host up) scanned in 2.31 seconds
Analyse des services SSH
De même, nous pouvons analyser les services SSH :
nmap --script="ssh-*" -p 22 localhost
Sortie :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
|_ssh-run: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
Scan de vulnérabilités
Nmap inclut des scripts qui peuvent détecter les vulnérabilités potentielles. L'utilisation de la catégorie vuln peut aider à identifier les problèmes de sécurité :
nmap --script=vuln localhost
Cela peut prendre un certain temps car il exécute diverses vérifications de vulnérabilité. La sortie peut ressembler à ceci :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: LIKELY VULNERABLE
| IDs: CVE:CVE-2007-6750
| Slowloris tries to keep many connections to the target web server open and hold
| them open as long as possible. It accomplishes this by opening connections to
| the target web server and sending a partial request. By doing so, it starves
| the http server's resources causing Denial Of Service.
|
| Disclosure date: 2009-09-17
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_ http://ha.ckers.org/slowloris/
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 87.28 seconds
Dans ce cas, Nmap a identifié que le serveur web Apache pourrait être vulnérable à une attaque Slowloris DoS. Ces informations peuvent être précieuses pour sécuriser vos systèmes.
Création d'un rapport de scan complet
Maintenant, combinons tout ce que nous avons appris pour créer un rapport de sécurité complet :
sudo nmap -sS -sV -O -sC --script=vuln -T4 -oA comprehensive_security_report localhost
Cette commande :
- Utilise le scan furtif SYN (-sS)
- Détecte les versions des services (-sV)
- Tente la détection du système d'exploitation (-O)
- Exécute les scripts par défaut (-sC)
- Exécute les scripts de détection de vulnérabilités (--script=vuln)
- Utilise une temporisation agressive (-T4)
- Enregistre les résultats dans tous les formats (-oA)
La sortie sera complète et pourrait prendre un certain temps à se terminer. Une fois terminé, vous disposerez d'un rapport de sécurité détaillé dans différents formats (normal, XML et grepable) que vous pourrez consulter pour l'analyse de sécurité.
Dans cette étape, vous avez appris à utiliser le moteur de scripts de Nmap pour collecter des informations détaillées sur les services et détecter les vulnérabilités potentielles. Ces techniques avancées sont essentielles pour les évaluations complètes de la sécurité réseau.
Résumé
Dans ce laboratoire, vous avez appris les bases de l'utilisation de Nmap pour la reconnaissance réseau et l'évaluation de la sécurité. Vous comprenez maintenant :
- Comment installer Nmap et effectuer des scans de base des hôtes et des ports
- Comment utiliser les flags de scan Nmap essentiels pour différents types de scans
- Comment mettre en œuvre des stratégies de scan efficaces et contrôler les paramètres de temporisation
- Comment exploiter le Nmap Scripting Engine pour une analyse détaillée des services et la détection des vulnérabilités
Ces compétences constituent une base pour les évaluations de la sécurité réseau et sont essentielles pour les professionnels de la cybersécurité. N'oubliez pas d'utiliser toujours ces techniques de manière responsable et uniquement sur les réseaux que vous êtes autorisé à scanner.
Au fur et à mesure que vous poursuivez votre parcours en cybersécurité, envisagez d'explorer des fonctionnalités Nmap plus avancées telles que le développement de scripts NSE personnalisés, les techniques d'évasion de pare-feu et l'intégration avec d'autres outils de sécurité. Une pratique régulière avec Nmap vous aidera à devenir plus compétent dans l'identification des problèmes de sécurité potentiels dans les environnements réseau.



