Exploitation for Privilege Escalation erkennen (T1068)

Kurzfassung: Nicht jeder Weg nach oben nutzt eine Konfigurationsschwäche - manchmal ist es eine echte Programmierschwachstelle. Exploitation for Privilege Escalation nutzt einen Fehler in einem Dienst, im Kernel oder in einem Treiber aus, um von Benutzer- auf System- oder Kernel-Rechte zu springen. Der eigentliche Exploit ist im Log schwer zu sehen, aber seine Folgen sind es: ein Druck- oder Dienstprozess, der plötzlich eine Shell startet, ein frisch angelegter Kernel-Treiber-Dienst und eine Nutzlast, die aus einem Benutzerpfad mit Dienstrechten läuft. Drei sigma-cli-validierte Sigma-Regeln, dazu Härtung und der Test im Lab. Serie "Angriff erkennen".

Die bisherigen Wege nach oben in dieser Serie - der UAC-Bypass und die Token-Manipulation - missbrauchen das normale Verhalten von Windows. Exploitation for Privilege Escalation ist anders: Hier wird eine echte Schwachstelle in Code ausgenutzt, der mit hohen Rechten läuft - ein Dienst, der Kernel selbst oder ein verwundbarer, signierter Treiber. Der eigentliche Exploit läuft im Speicher ab und hinterlässt dort kaum auswertbare Spuren. Für den Verteidiger zählt deshalb, was davor und danach sichtbar wird. Dieser Beitrag nimmt die Erkennung in den Blick und bleibt bewusst auf der Verteidigerseite - ohne jede Anleitung zur Ausnutzung.

Einordnung in ATT&CK: Exploitation for Privilege Escalation (T1068). MITRE führt die Technik in der Taktik Privilege Escalation; in dieser Serie steht sie in derselben Spalte. Sie umfasst sowohl das Ausnutzen lokaler Dienst- und Kernel-Schwachstellen als auch das Nachladen eines verwundbaren Treibers (Bring Your Own Vulnerable Driver).

Was der Angreifer tut

Die Ausnutzung einer Schwachstelle zur Rechteausweitung läuft - auf der Ebene des Prinzips, nicht als Anleitung - in wenigen Mustern ab:

  • Eine Dienst-Schwachstelle ausnutzen. Ein lokal erreichbarer Dienst, der mit SYSTEM-Rechten läuft, wird über einen Fehler dazu gebracht, fremden Code auszuführen - das Ergebnis ist oft eine Shell als Kind des Dienstprozesses.
  • Einen Kernel-Fehler nutzen. Eine Schwachstelle im Kernel oder in einem Treiber erlaubt den Sprung auf Kernel-Rechte - die höchste Stufe auf dem System.
  • Einen verwundbaren Treiber mitbringen. Bei BYOVD wird ein legitim signierter, aber fehlerhafter Treiber als Dienst registriert und geladen; seine Schwachstelle liefert dann die Kernel-Rechte.
  • Die Nutzlast absetzen. Nach dem Sprung läuft häufig eine aus einem Benutzer- oder Temp-Pfad gestartete Binary mit Dienst- oder SYSTEM-Rechten weiter.

Für die Erkennung ist entscheidend: Der Exploit selbst ist leise, aber er erzeugt ungewöhnliche Eltern-Kind-Beziehungen, einen neuen Kernel-Dienst oder eine eskalierte Nutzlast - und genau daran setzen die Regeln an.

Welche Logquellen die Technik zeigt

  • Prozess-Telemetrie. Event 4688 und Sysmon Event 1 zeigen die verräterischen Eltern-Kind-Beziehungen: ein Dienst- oder Druckprozess als Elternteil einer Shell, oder ein Dienst, der eine Binary aus einem Benutzerpfad startet. Die wichtigste Quelle.
  • Treiber-Ladevorgänge. Sysmon Event 6 protokolliert das Laden von Kernel-Treibern samt Signatur und Pfad - für BYOVD aufschlussreich, wenn ein Treiber aus einem ungewöhnlichen Kontext kommt.
  • Dienst-Erstellung. Das Anlegen eines neuen Dienstes erscheint als System-Ereignis 7045 und in der Prozess-Telemetrie, wenn sc.exe einen Kernel-Dienst registriert.
  • Werkzeug-Kontext. sc.exe ist ein mitgeliefertes Windows-Werkzeug; Grundlagen zu seinem Missbrauch unter Living off the Land, Einrichtung der Telemetrie unter Sysmon einrichten.

Das Muster im Log

Drei Signale tragen. Das erste ist ein Druck- oder Dienstprozess - etwa spoolsv oder printfilterpipelinesvc -, der eine Shell oder einen Skript-Host als Kind startet; dafür gibt es kaum einen legitimen Grund. Das zweite ist ein neu angelegter Kernel-Treiber-Dienst per sc.exe mit dem Typ kernel oder einem binPath auf eine .sys-Datei. Das dritte ist ein Systemdienst, der eine ausführbare Datei aus einem Benutzer- oder Temp-Pfad startet. Legitime Treffer stammen fast nur aus Treiber- und Softwareinstallationen auf bekannten Hosts. Auffällig wird es, wenn das Muster ohne laufende Installation, aus einem ungewöhnlichen Kontext oder kurz nach dem Erstzugang auftaucht. Der Blick auf Elternprozess, Pfad und Zeitpunkt trennt den Alltag vom Angriff.

Drei Sigma-Regeln

Die Regeln sind mit sigma-cli geprüft und nehmen die drei sichtbaren Folgen: die Shell aus dem Dienstprozess, den neuen Kernel-Treiber-Dienst und die eskalierte Nutzlast aus dem Benutzerpfad. Alle drei werten die Prozess-Telemetrie mit Kommandozeile aus.

1. Druck- oder Dienstprozess startet eine Shell (T1068). Ein typischerweise privilegierter Dienst- oder Druckprozess als Elternteil von cmd, PowerShell oder einem Loader. Die Regel steht auf level: high.

Sigma
title: Druck- oder Dienstprozess startet eine Shell
id: 7c2a8e51-3b9d-4a16-9f2e-1d4c6b8a0f31
status: experimental
description: |
  Erkennt, dass ein typischerweise mit hohen Rechten laufender Dienst- oder Druckprozess eine
  interaktive Shell oder einen Skript-Interpreter als Kindprozess startet - etwa spoolsv.exe oder
  printfilterpipelinesvc.exe, die cmd.exe oder powershell.exe aufrufen. Dieses Eltern-Kind-Muster ist
  ein starkes Signal fuer die Ausnutzung einer Dienst-Schwachstelle zur Rechteausweitung.
references:
  - https://attack.mitre.org/techniques/T1068/
author: blue-team.net
tags:
  - attack.privilege-escalation
  - attack.t1068
logsource:
  product: windows
  category: process_creation
detection:
  sel_parent:
    ParentImage|endswith:
      - '\spoolsv.exe'
      - '\printfilterpipelinesvc.exe'
      - '\PrintIsolationHost.exe'
  sel_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
  condition: sel_parent and sel_child
falsepositives:
  - Treiber- oder Druckertreiber-Installationen, die kurzzeitig Skripte aufrufen - nach Host und Zeitfenster als Baseline ausnehmen
level: high

2. Kernel-Treiber-Dienst per sc.exe angelegt (T1068). sc.exe create mit dem Diensttyp kernel oder einem binPath auf eine .sys-Datei - das Kennzeichen von BYOVD. Ebenfalls level: high.

Sigma
title: Kernel-Treiber-Dienst per sc.exe angelegt
id: 9e1b7d44-6c20-4f8a-b3d5-2a7e9c1f0b62
status: experimental
description: |
  Erkennt das Anlegen eines Kernel-Treiber-Dienstes ueber sc.exe mit dem Diensttyp kernel oder einem
  binPath auf eine .sys-Datei. Das ist ein Kennzeichen von Bring-Your-Own-Vulnerable-Driver (BYOVD):
  Angreifer registrieren einen verwundbaren, signierten Treiber als Dienst und nutzen dessen Schwachstelle
  fuer Kernel-Rechte. Ein neuer Kernel-Dienst aus einem ungewoehnlichen Kontext ist ein Eskalationssignal.
references:
  - https://attack.mitre.org/techniques/T1068/
author: blue-team.net
tags:
  - attack.privilege-escalation
  - attack.t1068
logsource:
  product: windows
  category: process_creation
detection:
  sel_sc:
    Image|endswith: '\sc.exe'
  sel_create:
    CommandLine|contains: 'create'
  sel_kernel:
    CommandLine|contains:
      - 'type= kernel'
      - 'type=kernel'
      - '.sys'
  condition: sel_sc and sel_create and sel_kernel
falsepositives:
  - Legitime Treiber- oder Sicherheitssoftware-Installationen, die Kernel-Dienste anlegen - bekannte Faelle nach Host und Konto als Baseline ausnehmen
level: high

3. Dienst startet Binary aus Benutzerpfad (T1068). services oder svchost als Elternteil einer ausführbaren Datei aus einem Benutzer- oder Temp-Pfad. Die Regel steht auf level: medium.

Sigma
title: Dienst startet ausfuehrbare Datei aus Benutzerpfad
id: 4f8c0a2e-5d13-47b6-8c9a-3e6b1d7f2a05
status: experimental
description: |
  Erkennt, dass ein Systemdienst (services.exe oder svchost.exe) als Elternprozess eine ausfuehrbare
  Datei aus einem benutzerschreibbaren Verzeichnis startet. Nach erfolgreicher Rechteausweitung laeuft
  die nachgeladene Nutzlast dann mit Dienst- oder SYSTEM-Rechten. Der Start einer Binary aus einem
  Benutzer- oder Temp-Pfad durch einen Dienst ist ein Hinweis auf eine eskalierte Nutzlast.
references:
  - https://attack.mitre.org/techniques/T1068/
author: blue-team.net
tags:
  - attack.privilege-escalation
  - attack.t1068
logsource:
  product: windows
  category: process_creation
detection:
  sel_parent:
    ParentImage|endswith:
      - '\services.exe'
      - '\svchost.exe'
  sel_path:
    Image|contains:
      - '\Users\'
      - '\AppData\Local\Temp\'
      - '\Downloads\'
  condition: sel_parent and sel_path
falsepositives:
  - Legitime Installer und Updater, die aus einem Dienst heraus ein Setup im Benutzerpfad starten - bekannte Faelle als Baseline ausnehmen
level: medium

Härtung: der Angriff, der ins Leere läuft

  • Patchen, wo es weh tut. Exploitation for Privilege Escalation lebt von ungepatchten Diensten, Kerneln und Treibern. Zeitnahes Einspielen der Updates nimmt vielen Exploits schlicht die Grundlage - die wirksamste Maßnahme.
  • Verwundbare Treiber blockieren. Die von Microsoft gepflegte Sperrliste für verwundbare Treiber (HVCI, Treiber-Blockliste) aktivieren, damit bekannte BYOVD-Treiber gar nicht erst laden.
  • Angriffsfläche verkleinern. Nicht benötigte Dienste - etwa den Druck-Spooler auf Servern - abschalten und die Rechte von Dienstkonten begrenzen.
  • Gezielt überwachen. Die Dienst-Erstellung (7045), die Treiber-Ladevorgänge und die Eltern-Kind-Muster als feste Erkennungen führen und auf Unerwartetes alarmieren.

Der Test

Die Erkennung lässt sich im Lab gefahrlos prüfen, auf einem isolierten System mit aktivem Sysmon - ohne einen echten Exploit, allein über die sichtbaren Folgen:

  • Für Regel 1 einen Dienst im Lab so konfigurieren, dass er cmd.exe startet, und das Eltern-Kind-Muster in Event 4688 prüfen. Alternativ die Beziehung mit einem harmlosen Elternprozess nachstellen.
  • Für Regel 2 mit sc create testdrv type= kernel binPath= C:\Temp\test.sys einen Kernel-Dienst anlegen (ohne gültigen Treiber startet er nicht) und das Erscheinen in der Prozess-Telemetrie kontrollieren.
  • Für Regel 3 einen Dienst eine Binary aus einem Benutzerpfad starten lassen und den Treffer in Event 4688 verifizieren.
  • Breiter wird der Test mit den Fällen zu T1068 aus Atomic Red Team.

Fehlalarme und Tuning

  • Treiber- und Softwareinstallation. Installer legen legitim Kernel-Dienste an und starten Setups aus Temp-Pfaden. Bekannte Installer, Pfade und Konten als Baseline ausnehmen.
  • Sicherheitssoftware. EDR und Virenschutz laden eigene Treiber und nutzen Dienstprozesse breit. Diese bekannten Produkte gezielt ausnehmen.
  • Dienst-Shell ist spezifisch. Ein Druck- oder Dienstprozess, der eine Shell startet, hat kaum einen legitimen Grund - diese Treffer hochpriorisieren.
  • Kette schlägt Einzelzeile. Ein Exploit-Signal zusammen mit einer folgenden Erkundung oder lateralen Bewegung ist aussagekräftiger als ein Treffer allein - die Korrelation schärft die Bewertung.

Fazit

Exploitation for Privilege Escalation ist der laute Nachbar der leisen Rechteausweitung: Statt Windows-Verhalten zu missbrauchen, wird eine echte Schwachstelle ausgenutzt. Der Exploit selbst bleibt im Speicher verborgen, doch seine Folgen sind klar - eine Shell aus dem Dienstprozess, ein neuer Kernel-Treiber-Dienst und eine Nutzlast aus dem Benutzerpfad mit Dienstrechten. Die wirksamste Härtung ist konsequentes Patchen und das Blockieren verwundbarer Treiber; die Erkennung setzt verlässlich an den sichtbaren Spuren an. Die leiseren Wege nach oben zeigen der UAC-Bypass und die Token-Manipulation. Weitere Techniken dieser Taktik sammelt das Lexikon nach Taktik unter Privilege Escalation.

NH

$ whoami

Norbert Hofmann

Cyber Defense Analyst im Security Operations Center eines Managed Security Service Providers. Red und Blue Teaming, Malware-Analyse, Incident Response und Security-Awareness-Trainings. Finalist bei „Deutschlands bester Hacker“ 2022, mehrere CVE-Einträge für WordPress-Plugins.