OS Fingerprints

Question 9

Quel est le système d’exploitation de l’attaquant ?

Nous avons appris comment à partir de l’exploitation du protocole TCP, il était possible à un attaquant d’obtenir de nombreuses informations sur un poste cible. Voyons maintenant comment à partir des traces laissées dans les journaux systèmes lors des scans sur le poste cible, un responsable de la sécurité peut récolter des informations sur l’attaquant. Notons que celles-ci peuvent être récupérées sans que l’attaquant n’en soit averti.

La signature

A travers l’article « Connais ton ennemi : Les empreintes digitales passives », sont exposées les 4 caractéristiques du protocole TCP qui varient selon les systèmes d’exploitation. Nous pouvons donc les considérer comme une signature de l’OS au sein des paquets TCP.

Voici ces champs :

  • Le TTL : valeur du Time To Live
  • La Win : valeur de la Window Size
  • Le DF : activation du Don’t Fragment bit
  • Le ToS : valeur du Type of Service

Ces valeurs suffisent la plupart du temps pour déterminer le système d’exploitation d’origine des paquets TCP. Le résultat n’est pas fiable à 100%, ce qui implique d’examiner plusieurs paquets puis combiner leur conclusion.

Une base de données des différentes signatures relevées est disponible à l’adresse suivante : « http://www.honeynet.org/ papers/finger/traces.txt ».

Il est important de garder à l’esprit que le résultat obtenu n’est que pure supposition. En premier lieu, les applications paramètrent leurs propres paquets (Nmap, Hunt, Nemesis), avec des signatures différentes de celle du système d’exploitation. Ensuite, les valeurs par défaut du système d’exploitation peuvent être modifiées manuellement.

Il existe toutefois d’autres signatures au sein des protocoles réseaux et de leur implémentation par les systèmes d’exploitation ou autres outils du réseau.

La version

L’attaquant utilise un Linux dont la version du noyau est comprise entre 2.4.2 & 2.4.14. Voyons comment obtenir ce résultat…
Il existe un utilitaire très simple nommé « p0f », développé sous licence GPL par Michal Zalewski. C’est un logiciel passif qui accepte en entrée un fichier de logs.

Exemple :

ubuntu@ubuntu:~$ p0f -s ./Desktop/0826@19-snort.log | sort -u

p0f - passive os fingerprinting utility, version 2.0.8

(C) M. Zalewski <lcamtuf@dione.cc>, W. Stearns <wstearns@pobox.com>

p0f: listening (SYN) on ‘./Desktop/0826@19-snort.log’, 262 sigs (14 generic, cksum 0F1F5CA2), rule: ‘all’.

[+] End of input file.

192.168.0.9:34026 - Linux 2.4-2.6 (up: 46 hrs)

[…]

192.168.0.9:35308 - Linux 2.4-2.6 (up: 46 hrs)

192.168.0.9:40532 - NMAP OS detection probe (1) *

[…]

192.168.0.9:42305 - NMAP OS detection probe (4) *

192.168.0.9:52198 - NMAP syn scan (2) *

[…]

192.168.0.9:52204 - NMAP syn scan (2) *

192.168.0.9:58164 - NMAP OS detection probe (1) *

[…]

192.168.0.9:58174 - NMAP OS detection probe (1) *

Il nous est alors facile de conclure sur la nature du système d’exploitation de l’attaquant : « Linux 2.4-2.6 », opérant depuis plus de « 46h », avec l’outil « Nmap ».