Explorer les techniques de numérisation de ports avec Nmap
Nmap est un outil puissant dans le domaine de la cybersécurité, notamment lorsqu'il s'agit de la numérisation de ports. La numérisation de ports est une méthode utilisée pour découvrir quels ports sur un système cible sont ouverts et quels services peuvent être exécutés sur ces ports. Il existe différents types de techniques de numérisation de ports, chacune ayant ses propres avantages uniques et cas d'utilisation spécifiques. Dans cette étape, nous allons explorer certaines de ces techniques en numérisant notre service fictif.
Tout d'abord, effectuons une numérisation TCP connect de base ciblant spécifiquement notre port 8888. Une numérisation TCP connect est un moyen simple de vérifier si un port est ouvert. Elle fonctionne en tentant d'établir une connexion TCP complète au port cible. Si la connexion réussit, le port est considéré comme ouvert.
nmap -p 8888 localhost
Dans cette commande, l'option -p
est utilisée pour spécifier le ou les ports que nous voulons numériser. Ici, nous demandons à Nmap de numériser le port 8888 sur le localhost
, qui fait référence à la machine actuelle. Après avoir exécuté cette commande, vous devriez voir une sortie similaire à celle - ci :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 15:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Cette sortie confirme que notre port 8888 est ouvert. Nmap a également identifié le nom du service associé à ce port selon sa base de données interne.
Maintenant, essayons une numérisation SYN. Une numérisation SYN est une approche plus discrète que la numérisation TCP connect. Elle n'achève pas la connexion TCP complète, ce qui la rend moins susceptible d'être détectée par les systèmes de détection d'intrusion.
sudo nmap -sS -p 8888 localhost
L'option -sS
spécifie que nous voulons effectuer une numérisation SYN. Ce type de numérisation nécessite des privilèges root car il implique l'envoi de paquets réseau bruts, qui est une opération de bas niveau. C'est pourquoi nous utilisons la commande sudo
. La sortie devrait être similaire à la numérisation précédente :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 15:55 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/tcp open sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Ensuite, essayons une numérisation UDP. UDP (User Datagram Protocol) est un type de protocole réseau différent de TCP. Alors que TCP fournit un service fiable orienté connexion, UDP est un protocole sans connexion. Nous utiliserons une numérisation UDP pour vérifier si le port 8888 est ouvert pour le trafic UDP.
sudo nmap -sU -p 8888 localhost
L'option -sU
spécifie une numérisation UDP. Les numérisations UDP peuvent être plus longues que les numérisations TCP car UDP n'a pas le même mécanisme d'accusé de réception intégré que TCP, donc Nmap doit attendre plus longtemps pour déterminer si un port est ouvert ou fermé. La sortie pourrait ressembler à ceci :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 16:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8888/udp closed sun-answerbook
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Notez que le port UDP est indiqué comme fermé. Cela est normal car notre service netcat écoute les connexions TCP, pas UDP.
Enfin, effectuons une numérisation de détection de version de service. Ce type de numérisation nous aide à identifier quel service spécifique et quelle version sont exécutés sur un port particulier.
nmap -sV -p 8888 localhost
L'option -sV
indique à Nmap d'effectuer une détection de service/version. Il essaie d'envoyer des sondes spécifiques aux ports ouverts et d'analyser les réponses pour déterminer le service et sa version. La sortie pourrait ressembler à ceci :
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-30 16:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE VERSION
8888/tcp open http Apache httpd
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 6.51 seconds
La détection de version peut ne pas identifier correctement notre service netcat comme une application authentique, mais elle montre comment Nmap essaie de déterminer ce qui est exécuté sur les ports ouverts.
Sauvegardons nos résultats dans un fichier pour un usage ultérieur. Sauvegarder les résultats de la numérisation nous permet de les revoir plus tard, de les partager avec d'autres personnes ou de les utiliser pour une analyse plus approfondie.
nmap -p 8888 localhost > /home/labex/project/nmap_scan_results.txt
Dans cette commande, le symbole >
est utilisé pour rediriger la sortie de la numérisation Nmap vers un fichier nommé nmap_scan_results.txt
situé dans le répertoire /home/labex/project
.
Vous pouvez afficher les résultats sauvegardés avec :
cat /home/labex/project/nmap_scan_results.txt
La commande cat
est utilisée pour afficher le contenu d'un fichier.
Ceci conclut notre exploration des différentes techniques de numérisation de ports avec Nmap.