Erkennen des Betriebssystems
Scanner können unter Umständen nicht nur die Anwendungen hinter offenen Ports erkennen, sondern auch das Betriebssystem des Untersuchungsobjekts bestimmen. Dies ist sinnvoll, weil es vom Betriebssystem abhängen kann, ob und wie eine Schwachstelle auszunutzen ist.
Betriebssystemerkennung, auch OS Fingerprinting genannt, ist der Prozess, mit dem das Betriebssystem eines Zielsystems in einem Netzwerk bestimmt wird.
Beim OS Fingerprinting wird ausgenutzt, dass unterschiedliche Betriebssysteme die Protokolle der Internet- und der Transportschicht abweichend implementieren. Dadurch behandeln und beantworten sie Netzwerkpakete unterschiedlich.
Für die Bestimmung des Betriebssystems werden folgende Schritte durchgeführt:
- Der Scanner sendet verschiedene Nachrichten an den Zielhost. Dies sind in erster Linie TCP-Segmente, weil TCP viele Optionen hat. Daneben werden auch UDP und ICMP verwendet.
- Der Zielhost antwortet auf die Nachrichten.
- Der Scanner wertet die Antworten hinsichtlich mehrerer Attribute aus und leitet daraus ab, welches Betriebssystem der Zielhost hat.
Einige der Attribute aus den Antworten, die sich zwischen Betriebssystemen unterscheiden und aus denen sich daher ein Fingerabdruck des Betriebssystems bilden lässt, sind:
| Attribut | Beschreibung |
|---|---|
| Sequenznummer | Wird im TCP verwendet, um die Reihenfolge der Datenpakete zu verfolgen |
| Fenstergröße | Gibt im TCP an, wie viele Bytes an Daten ein Empfänger bereit ist zu empfangen |
| Time-to-live | Ist ein Feld in IP-Paketen, das die maximale Anzahl von Hops (Zwischenstationen) angibt, die ein Paket durchlaufen darf, bevor es verworfen wird |
| Don't fragment | Gibt in IP-Paketen an, ob das Paket geteilt werden darf |
| ICMP-Fehlercodes | Gibt in ICMP-Nachrichten den spezifischen Grund für ein Netzwerkproblem an |
Betriebssystemerkennung mit Nmap
Um das Betriebssystem zu bestimmen, vergleicht Nmap die Antworten des Zielhosts mit Einträgen für bekannte Betriebssysteme in der Datei nmap-os-db.
Mit folgendem Befehl siehst du, welche Informationen Nmap zum Betriebssystem des LUPFERs gewinnen kann:
sudo nmap -O <ip>
Das Flag -O startet also das OS Fingerprinting, wobei du sudo-Rechte haben musst.
Du solltest folgende Informationen erhalten:
| Nmap-Ausgabe | Erklärung |
|---|---|
| Running: Linux 4.X|5.X | Das Betriebssystem ist eine Version des Linux-Kernels, die zwischen 4.X und 5.X liegt. |
| OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 | "CPE" steht für "Common Platform Enumeration". Das ist ein standardisiertes Schema zur eindeutigen Identifizierung von Betriebssystemen, Software oder Hardware. Das Betriebssystem entspricht dem Linux-Kernel der 4er-Serie und der 5er-Serie. |
| OS details: Linux 4.15 - 5.8 | Die genaue Version des Linux-Kernels liegt zwischen 4.15 und 5.8. |
Nmap kann das Betriebssystem also nicht eindeutig erkennen. Aber es erkennt, dass es sich um ein Betriebssystem handelt, dass auf dem Linux-Kernel basiert. Im weiteren Verlauf wirst du sehen, ob du diese Information noch verwenden kannst.
