Réseaux: Déterminer le système d'exploitation d'une cible avec la commande ping.

Ce qui est inutile est indispensable donc je vais vous présenter comment déterminer le système d'exploitation d'une cible avec la commande ping.

Avant de vous expliquer comment faire je vais revenir sur quelques prérequis.

Le TTL c'est quoi?
Le TTL d'un paquet IP est un champ dans l'entête qui indique combien de routeur le paquet peut traverser. Quand un système envoie un paquet il initialise le TTL avec une valeur (maximum 255). A chaque fois que ce paquet va traverser un routeur, le TTL va diminuer de 1. Si le TTL atteint 0 alors le paquet ne va pas plus loin et le routeur qui a décrémenté le TTL à 0 renvoie une erreur "Time Exceeded" à l'hote source. Ce mécanisme permet d'éviter les boucles de routage et donc d'éviter d'avoir des paquets qui traversent le réseau sans jamais s'arrêter (et donc de ne pas saturer le réseau pour rien).

Là où ça commence à être intéressant c'est que tous les systèmes d'exploitations n'initialisent le TTL avec la même valeur. Ce mécanisme permet de déduire le système d'exploitation d'un host distant.

Système d'exploitationTTL par défaut
Linux64
Windows128
Cisco254

Et en pratique ça donne quoi?

Très Simple, il faut utiliser la commande ping suivi d'une adresse IP:

ping vers un PC windows
ping vers un PC Linux

Le TTL retourné est égal à 128 c'est sûrement un PC Windows, si le TTL retourné est égal à 64 c'est sûrement un PC linux.

Ceci fonctionne parfaitement sur un réseau local mais sur un réseau distant c'est un tout petit peu plus compliqué: il faut calculer le nombre de routeur que doit traverser le paquet et ajouter ce nombre au TTL reçu.

Ici le TTL reçu est 127. Il faut faire +1 car il y a un routeur entre les deux équipements. Le TTL initial est donc 128 donc la cible utilise probablement windows. Si vous ne savez pas combien de routeur votre paquet traverse vous pouvez utiliser la commande traceroute pour le déterminer.

Il faut quand même garder en tête qu'il est possible pour un ordinateur de ne pas utiliser le TTL par défaut de son système et donc de fausser les résultats de cette technique 🙂 Un scan nmap est donc bien meilleur 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *