Hacker Geek OS Fingerprinting mit TTL- und TCP-Fenstergrößen
Wussten Sie, dass Sie herausfinden können, welches Betriebssystem ein Netzwerkgerät gerade ausführt, wenn Sie nur die Art und Weise betrachten, wie es im Netzwerk kommuniziert? Sehen wir uns an, wie wir herausfinden können, welches Betriebssystem auf unseren Geräten läuft.
Wieso würdest du das machen?
Das Ermitteln des Betriebssystems, auf dem ein Computer oder ein Gerät ausgeführt wird, kann aus vielen Gründen nützlich sein. Lassen Sie uns zunächst einen Blick auf die Alltagsperspektive werfen. Stellen Sie sich vor, Sie möchten zu einem neuen ISP wechseln, der für $ 50 pro Monat ungenutztes Internet anbietet. Mit dem Fingerprinting des Betriebssystems werden Sie schnell feststellen, dass es Müllrouter gibt und einen PPPoE-Dienst anbieten, der auf einer Reihe von Windows Server 2003-Computern angeboten wird. Hört sich jetzt nicht mehr so gut an?
Eine andere Verwendung, wenn auch nicht so ethisch, ist die Tatsache, dass Sicherheitslücken OS-spezifisch sind. Sie führen beispielsweise einen Port-Scan durch und finden, dass Port 53 geöffnet ist, und der Computer führt eine veraltete und verwundbare Version von Bind aus. Sie haben die SINGLE-Chance, die Sicherheitslücke auszunutzen, da der Dämon durch einen fehlgeschlagenen Versuch zum Absturz gebracht wird.
Wie funktioniert das Fingerprinting von Betriebssystemen??
Bei der passiven Analyse des aktuellen Datenverkehrs oder beim Betrachten alter Paketerfassungen besteht die einfachste und effektivste Möglichkeit, das Fingerabdruckverfahren des Betriebssystems zu verwenden, darin, einfach die TCP-Fenstergröße und Time To Live (TTL) im IP-Header des ersten zu betrachten Paket in einer TCP-Sitzung.
Hier sind die Werte für die bekannteren Betriebssysteme:
Betriebssystem | Zeit zu leben | TCP-Fenstergröße |
Linux (Kernel 2.4 und 2.6) | 64 | 5840 |
Google Linux | 64 | 5720 |
FreeBSD | 64 | 65535 |
Windows XP | 128 | 65535 |
Windows Vista und 7 (Server 2008) | 128 | 8192 |
iOS 12.4 (Cisco-Router) | 255 | 4128 |
Der Hauptgrund dafür, dass die Betriebssysteme unterschiedliche Werte haben, liegt in der Tatsache, dass die RFCs für TCP / IP keine Standardwerte enthalten. Beachten Sie außerdem, dass der TTL-Wert nicht immer mit einem in der Tabelle angegebenen Wert übereinstimmt, selbst wenn auf Ihrem Gerät eines der aufgeführten Betriebssysteme ausgeführt wird. Wenn Sie ein IP-Paket über das Netzwerk senden, wird das Betriebssystem des sendenden Geräts angezeigt Setzt die TTL auf die Standard-TTL für dieses Betriebssystem, aber wenn das Paket Router durchläuft, wird die TTL um 1 gesenkt. Wenn Sie also eine TTL von 117 sehen, kann dies ein Paket sein, das mit einer TTL von 128 und gesendet wurde hat 11 Router durchlaufen, bevor er erfasst wurde.
Die Verwendung von tshark.exe ist der einfachste Weg, die Werte anzuzeigen. Vergewissern Sie sich nach der Paketerfassung, dass Wireshark installiert ist, und navigieren Sie zu:
C: \ Programme \
Halten Sie nun die Umschalttaste gedrückt und klicken Sie mit der rechten Maustaste auf den Wireshark-Ordner, und wählen Sie im Kontextmenü die Option zum Öffnen des Befehlsfensters
Jetzt tippen:
tshark -r "C: \ Benutzer \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" -T Felder -e ip.src -e ip.ttl -e tcp.window_size
Stellen Sie sicher, dass Sie "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" durch den absoluten Pfad zu Ihrer Paketerfassung ersetzen. Sobald Sie die Eingabetaste drücken, werden Ihnen alle SYN-Pakete aus Ihrem Capture angezeigt und das Tabellenformat ist einfacher zu lesen
Dies ist eine zufällige Paketerfassung, bei der ich eine Verbindung mit der How-To-Geek-Website herstellte. Unter all dem anderen Chatter, das Windows macht, kann ich Ihnen zwei Dinge mit Sicherheit sagen:
- Mein lokales Netzwerk ist 192.168.0.0/24
- Ich bin auf einer Windows 7-Box
Wenn Sie sich die erste Zeile der Tabelle ansehen, werden Sie feststellen, dass ich nicht lüge. Meine IP-Adresse ist 192.168.0.84, meine TTL ist 128 und meine TCP-Fenstergröße ist 8192. Dies entspricht den Werten für Windows 7.
Als nächstes sehe ich eine 74.125.233.24-Adresse mit einer TTL von 44 und einer TCP-Fenstergröße von 5720. Wenn ich mir meine Tabelle ansehe, gibt es kein Betriebssystem mit einer TTL von 44, jedoch heißt es, dass Linux die Server von Google sind Führen Sie eine TCP-Fenstergröße 5720 aus. Nach einer schnellen Websuche der IP-Adresse sehen Sie, dass es sich tatsächlich um einen Google-Server handelt.
Wofür verwenden Sie noch tshark.exe, sagen Sie uns in den Kommentaren.