Open-Source-Tools prüfen IT-Sicherheit

27.04.2006
Von Simon Wepfer

Betriebssystem identifizieren

Einer der Punkte, in denen sich Betriebssysteme voneinander unterscheiden, ist das Kommu-nikationsverhalten. So lässt sich durch die Auswertung der Reaktion auf bestimmte Anfragen (beispielsweise ein FIN-Paket auf einen geschlossenen TCP-Port) auf das installierte Be-triebssystem sowie dessen Version schließen. Diese Technik wird als "OS-Fingerprinting" bezeichnet. Der Port-Scanner Nmap unterstützt die Funktion mit dem Schalter "-O", benötigt jedoch mindestens einen offenen sowie einen geschlossenen Port, was bei durch Firewalls geschützten Systemen fehlschlägt. Das Tool "Xprobe" hingegen begnügt sich mit einem geschlossenen oder einem offenen Port. Für ein OS-Fingerprinting bei offenem TCP-Port 22 genügt folgendes Kommando:

# xprobe2 -p tcp:22:open 192.168.1.20

TCP-Sequenznummern und Timestamps

Wenn sich TCP-Sequenznummern voraussagen lassen, kann eine bestehende Verbindung gekapert oder unterbrochen werden. Daher ist es wichtig, dass ein System pseudozufällige Zahlenwerte nutzt. Mit der Option "-vv" versucht Nmap, die Sequenznummern sowie die TCP-Timestamps auszuwerten. Noch besser funktioniert dies mit "hping2". Unterstützt ein System die TCP-Timestamps und stellt den Zähler nicht regelmäßig zurück, lässt sich die Zeit seit dem letzten Neustart auslesen. Dies scheint auf den ersten Blick nicht so tragisch, doch da Patches oder Firmware-Upgrades oft einen Neustart erzwingen, könnte ein Angreifer mit dieser Information auf den Patch-Level des Systems schließen und so seinen Angriff besser planen:

# hping2 -S 192.168.1.20 -p 22 -tcp-timestamp

HPING 192.168.1.20 (eth0 192.168.1.20): S set, 40 headers + 0 data bytes

len=56 ip=92.168.1.20 ttl=52 DF id=6211 sport=22 flags=SA seq=0 win=33012 rtt=3388.5 ms

TCP timestamp: tcpts=34284190

HZ seems hz=100

System uptime seems: 3 days, 23 hours, 14 minutes, 1 seconds