OS & Service Identification (Grundlagen)

Bei der OS & Service Identification geht es darum, Anwendungen und Betriebssysteme zu bestimmen und zu erkennen. Wenn wir wissen, welches Betriebssystem und welche Software und Dienste verwendet werden, dann können wir uns auf die Suche nach bekannten Schwachstellen und Sicherheitslücken machen. Hierzu brauchen wir konkrete Informationen über das Zielsystem.

Obwohl OS Identification und Service Identification hier getrennt betrachtet werden, gehören sie streng genommen zusammen. Das hat damit zu tun, dass bestimmte Anwendungen exklusiv auf einem Betriebssystem eingesetzt werden.
Ein Beispiel: Nehmen wir an, ein Exchange-Server von Microsoft ist hinter einer Linux-Firewall versteckt, dann würde eine OS Identification das Linux als Betriebssystem erkennen. Eine Service Identification würde allerdings den Exchange-Server erkennen. Exchange gibt es aber nur für Windows. Und deshalb muss das Betriebssystem ein Windows sein, dass sich hinter einer Linux-Firewall befindet.
Das heißt, OS Identification und Service Identification müssen zwingend kombiniert werden, damit fehlerhafte Ergebnisse reduziert werden. Und das wir es noch mit einer Firewall zu tun haben.

Service Identification

Service Identification wird auch als Service-Fingerprinting oder Version-Detection (Versions-Scan) bezeichnet. Das Ziel ist, die Anwendung und deren Version möglichst genau zu bestimmen. Dann kann man mit diesen Informationen gezielt nach bekannten Schwachstellen suchen. Eine genaue Versionsnummer hilft enorm beim Ermitteln eines geeigneten Exploits, für den das Zielsystem anfällig ist.
Sofern die Anwendung diese Informationen nicht direkt herausrückt, besteht die Möglichkeit, Anwendungs-Meldungen und Protokoll-Eigenheiten auszuwerten und mit einer Signaturdatenbank abzugleichen. Dafür gibt es spezielle Tools:

  • NMAP
  • OpenVAS
  • Metasploit

Methoden der Service Identication

  • Bannergrabbing
  • Protocol Querying

Bannergrabbing (Service Identication)

Hintergrund: Viele Dienste identifizieren sich beim Verbindungsaufbau mit einem Begrüßungstest. Der sogenannte Banner enthält für den Anwender eine kurze Information über Service und Host. Deshalb bietet es sich für einen Angreifer an, auf Anwendungsebene eine Verbindung vorzutäuschen, um an diesen Banner zu kommen und auszuwerten.

Beim Bannergrabbing braucht man neben der IP-Adresse des Dienstes auch dessen Portnummer auf die man sich verbindet, was man im Regelfall mit einem Port-Scan herausfinden kann. Mit etwas Glück gibt der Dienst bei der Verbindungsaufnahme ein paar Informationen über sich preis.

Auf die Informationen, die man durch Bannergrabbing erhalten hat, darf man sich aber nicht verlassen. Ein sehr guter Systemadministrator weiß um die Bedeutung für den Angreifer. Deshalb sollte der Angreifer in jedem Fall die Informationen zusätzlich prüfen, die er per Bannergrabbing erhalten hat. Es kann sein, dass der Systemadministrator den Banner manipuliert hat, um eine andere Applikation oder sogar einen anderen Service vorzutäuschen. Die ausgegebenen Informationen sind in jedem Fall in Frage zu stellen.

Protocol Querying (Service Identication)

Beim Protocol Querying werden Methoden aus dem OS-Fingerprinting eingesetzt. Dabei wird untersucht, wie sich das Protokoll auf der anderen Seite verhält. Interessant sind Abweichungen vom jeweiligen RFC, fehlerhafte Implementierungen und Fehlermeldungen.

Ablauf beim Protocol Querying

  1. Senden einer Anfrage oder eines Pakets
  2. Warten auf die Antwort
  3. Fingerprint der Antwort erstellen
  4. Abgleich mit einer Signaturdatenbank

Die Informationen, die man durch das Protocol Querying erhält sind in jedem Fall zuverlässiger als beim Bannergrabbing. Allerdings dauert es auch länger. Und die Qualität und Aktualität der Signaturdatenbank ist von ausschlaggebender Bedeutung.
Allerdings kann ein ungewöhnliches Paketsendeverhalten die IDS zum Detektieren veranlassen oder den Service zum Absturz bringen.

OS Identification (Betriebssystemerkennung)

OS Identification wird auch als OS-Fingerprinting oder OS-Detection bezeichnet. Dabei geht es um das Erkennen des entfernten Betriebssystems. Zusätzlich zur Service Identification kann die Betriebssystemerkennung dabei helfen, falsche Ergebnisse zu reduzieren.
Betriebssysteme erkennt man an Abweichungen und Fehler in der Implementierung. Es gibt verschiedene Wege das herauszufinden. Man unterscheidet zwischen aktivem und passivem OS-Fingerprinting.

Passives OS-Fingerprinting

Beim passiven OS-Fingerprinting werden verräterische Informationen aus dem TCP-Header gelesen. Für die Felder im TCP-Header sind nicht immer Defaultwerte definiert und weichen deshalb je nach Implementierung ab. Manche Betriebssysteme kann man dabei exakt bestimmten, weil sie exotische Einträge haben.
Die Kombination der Inhalte des TCP-Headers stellen einen Fingerprint dar, der sich mit einer Datenbank abgleichen lässt. Das funktioniert besonders gut, bei DHCP, ICMP, BOOTP, SNMP, UPNP, HTTP, SMB, und noch einigen weiteren Protokollen.
Als Angreifer benötigt man hierfür physikalischen Zugriff auf das Netzwerk. Dabei bleibt man aber passiv. Man greift im Netzwerk nur den Datenverkehr, beispielsweise mit Wireshark, ab und sucht dann nach Protokollen, die in ihren Headern verräterische Informationen enthalten. Dazu sind aber umfangreiche Kenntnisse über Systeme und Betriebssysteme notwendig.

Beim passivem OS-Fingerprinting wird nicht in den Netzwerk-Verkehr eingegriffen. Als Angreifer muss man dann mit eingeschränkten Informationen leben. Allerdings bleibt man dabei unentdeckt. Gegen passives OS-Fingerprinting kann man als Netzwerk-Administrator nichts machen.

Aktives OS-Fingerprinting

Beim aktiven OS-Fingerprinting braucht man keinen physikalischen Zugriff auf das Netzwerk. Es reicht, wenn man eine Verbindung zum Zielsystem aufbauen kann. Also mit direktem Zugriff aufs Zielsystem. Beispielsweise um Datenverkehr zu provozieren, um eine Betriebssystemerkennung vorzunehmen.
Solche Zugriffe können per IDS detektiert werden.

Maßnahmen gegen OS-Fingerprinting

  • Ändern der Defaultwerte im TCP-Stack
  • Einsatz von IDS

Nächster Schritt

Was passiert nach der OS & Service Identification? Auf Basis der erhaltenen Informationen kann man dann gezielt nach Schwachstellen, Sicherheitslücken und fertige Exploits suchen.
Erfahrende Angreifer versuchen auf Anwendungsebene bekannte und typische Schwachstellen zu ermitteln.

  • unsichere Grundkonfigurationen (Vanilla-Installationen)
  • fehlerhaften Konfigurationen
  • ...

Das setzt natürlich umfangreiche Kenntnisse über die eingesetzte Software auf dem Zielsystem voraus.
Dem unbedarften Systemadministrator und Pentester und Junior-Hacker wird sich vielleicht eher anderen Wegen zuwenden.

  • Vulnerabillity Scanning
  • Exploiting

OS & Service Identification mit NMAP

Obwohl NMAP hauptsächlich ein Port-Scanner ist, eignet es sich sehr gut für die OS & Service Identification. Dazu enthält NMAP eine riesige Datenbank mit Heuristiken für die Identifikation von Betriebssystemen und Anwendungen.

Weitere verwandte Themen:

Teilen:

Produktempfehlungen

Netzwerktechnik-Fibel

Netzwerktechnik-Fibel

Das will ich haben!