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.

OS fingerprinting
Ablauf des OS Fingerprintings

Für die Bestimmung des Betriebssystems werden folgende Schritte durchgeführt:

  1. 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.
  2. Der Zielhost antwortet auf die Nachrichten.
  3. 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.