Introduction
Bienvenue dans le laboratoire sur l'empreinte numérique du système d'exploitation (OS Fingerprinting).
L'empreinte numérique d'un système d'exploitation est une technique de reconnaissance critique utilisée aussi bien par les professionnels de la sécurité que par les attaquants pour déterminer l'OS exécuté sur une cible distante. En envoyant des paquets TCP et UDP spécifiques, parfois malformés, à une cible et en analysant les différences subtiles dans la manière dont la pile TCP/IP de la cible répond (telles que les valeurs Time-To-Live, les tailles de fenêtre et les combinaisons de drapeaux), des outils comme Nmap peuvent deviner avec précision le système d'exploitation sous-jacent.
Il s'agit d'une technique d'inférence, et non d'une vérité absolue. Nmap compare le comportement réseau observé avec une base de données d'empreintes. Le résultat peut être très utile, mais il doit être considéré comme une estimation éclairée qui peut être influencée par des pare-feux, des proxys ou des piles réseau inhabituelles.
Dans ce laboratoire, vous apprendrez à exploiter les puissantes capacités d'empreinte numérique de Nmap pour identifier des systèmes distants et à combiner ces techniques avec la détection de version pour un profilage réseau complet.
Activer l'empreinte numérique de l'OS
Dans cette étape, nous allons apprendre les bases de l'empreinte numérique d'un système d'exploitation à l'aide de Nmap. L'empreinte numérique d'un OS est une technique utilisée pour déterminer le système d'exploitation exécuté sur une cible distante. Nmap y parvient en envoyant une série de paquets TCP et UDP soigneusement conçus à la cible et en analysant les réponses. Étant donné que différents systèmes d'exploitation implémentent la pile TCP/IP de manière légèrement différente, Nmap peut comparer ces réponses à sa vaste base de données pour trouver une correspondance.
Cela fonctionne parce que les piles réseau sont des implémentations écrites par des humains, et ces implémentations diffèrent par de nombreux paramètres par défaut subtils. L'empreinte numérique transforme ces différences en indices.
Pour activer l'empreinte numérique de l'OS dans Nmap, nous utilisons l'option -O. Il est important de noter que la création de paquets bruts nécessite des privilèges d'administration, nous devons donc exécuter cette commande avec sudo.
Exécutons un scan d'empreinte numérique de l'OS sur notre machine locale (localhost) et enregistrons le résultat dans un fichier nommé os_scan.txt dans notre répertoire de projet.
sudo nmap -O -p 22,80 localhost > /home/labex/project/os_scan.txt
Une fois le scan terminé, vous pouvez consulter les résultats à l'aide de la commande cat.
cat /home/labex/project/os_scan.txt
Vous verrez un résultat similaire à ce qui suit. Recherchez les lignes commençant par "Device type", "Running" et "OS details".
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 14:53 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000020s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
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.56 seconds
Le résultat révèle que la cible exécute un noyau Linux, ce qui correspond à notre environnement LabEx.
Analyser les suppositions sur l'OS
Dans cette étape, nous explorerons comment Nmap gère l'incertitude lors de l'empreinte numérique d'un OS. Parfois, une cible peut avoir un pare-feu qui rejette certains paquets, ou elle peut exécuter un système d'exploitation obscur ou hautement personnalisé. Dans ces cas, Nmap pourrait ne pas trouver de correspondance parfaite dans sa base de données.
Lorsque Nmap ne peut pas déterminer le système d'exploitation exact, il peut fournir une liste de suppositions accompagnée d'un pourcentage de confiance. Nous pouvons forcer Nmap à deviner de manière plus agressive en utilisant l'option --osscan-guess (qui est également équivalente à --fuzzy). Cela indique à Nmap d'afficher les correspondances d'OS même si elles ne sont pas quasi parfaites.
Cela nous rappelle que les résultats de reconnaissance contiennent souvent une part d'incertitude. Les bons analystes notent cette incertitude au lieu de prétendre que chaque détection est exacte.
Exécutons un autre scan sur localhost, cette fois en activant la supposition agressive de l'OS, et enregistrons les résultats dans un fichier nommé guess_scan.txt.
sudo nmap -O --osscan-guess -p 22,80 localhost > /home/labex/project/guess_scan.txt
Maintenant, affichez le contenu du nouveau fichier.
cat /home/labex/project/guess_scan.txt
Le résultat ressemblera à celui de l'étape précédente, mais si la cible était plus obscure, vous verriez une liste de suppositions d'OS séparées par des virgules avec des pourcentages, comme Aggressive OS guesses: Linux 5.0 (96%), Linux 4.15 (95%).
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 14:54 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000020s latency).
...
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
...
Même sur un système standard, l'utilisation de --osscan-guess est une technique précieuse lorsqu'on traite des cibles durcies qui tentent d'obscurcir le comportement de leur pile TCP/IP.
Combiner la détection d'OS et de version (-A)
Dans cette étape, nous combinerons la détection d'OS avec d'autres fonctionnalités puissantes de Nmap en utilisant l'option -A. L'option -A signifie "Aggressive scan options" (options de scan agressif).
Lorsque vous utilisez l'option -A, Nmap active automatiquement plusieurs fonctionnalités avancées à la fois :
- Détection d'OS (
-O) - Détection de version (
-sV), qui sonde les ports ouverts pour déterminer les versions des services et des applications - Scan de scripts (
-sC), qui exécute un ensemble par défaut de scripts du moteur de script Nmap (NSE) - Traceroute (
--traceroute), qui détermine le chemin réseau vers la cible
Cette approche combinée fournit un profil complet du système cible, ce qui en fait un favori des professionnels de la sécurité pour la reconnaissance initiale.
Effectuons un scan agressif sur localhost et enregistrons le résultat dans aggressive_scan.txt. Ce scan peut prendre un peu plus de temps car il effectue beaucoup plus de vérifications.
sudo nmap -A -p 22,80 localhost > /home/labex/project/aggressive_scan.txt
Une fois le scan terminé, inspectez les résultats.
cat /home/labex/project/aggressive_scan.txt
Vous remarquerez un résultat beaucoup plus riche. En plus des détails sur l'OS, vous verrez maintenant les versions exactes des services exécutés sur les ports ouverts (comme OpenSSH et nginx), ainsi que des informations supplémentaires recueillies par les scripts par défaut.
Starting Nmap 7.80 ( https://nmap.org ) at 2026-03-09 14:54 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000019s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
...
En combinant ces techniques, vous pouvez recueillir une mine d'informations sur un système cible avec une seule commande.
Résumé
Félicitations ! Vous avez terminé avec succès le laboratoire sur l'empreinte numérique du système d'exploitation.
Dans ce laboratoire, vous avez appris à :
- Utiliser l'option
-Ode Nmap pour effectuer une empreinte numérique à distance du système d'exploitation en analysant les réponses de la pile TCP/IP. - Appliquer l'option
--osscan-guesspour forcer Nmap à fournir des suppositions probabilistes lorsque l'OS cible n'est pas parfaitement identifié. - Utiliser l'option
-Apour combiner la détection d'OS avec la détection de version de service, le scan de scripts et le traceroute pour un profilage complet de la cible.
Ces compétences sont fondamentales pour la reconnaissance réseau et l'évaluation des vulnérabilités, permettant aux professionnels de la sécurité de comprendre l'environnement qu'ils analysent et d'adapter leurs mesures de sécurité en conséquence.



