Dienst-Hijack zur Rechteausweitung erkennen (T1543.003)

Kurzfassung: Dienste laufen oft mit SYSTEM-Rechten - und genau das macht sie zum Hebel. Statt einen neuen Dienst anzulegen, biegt der Angreifer einen bestehenden, schwach geschützten Dienst auf seine eigene Datei um: binPath ändern, ImagePath in der Registry umschreiben oder einen Wiederherstellungsbefehl setzen. Beim nächsten Start läuft sein Code mit SYSTEM. Für den Verteidiger sind diese Eingriffe gut sichtbar, weil sie über wenige, benannte Wege laufen. Drei sigma-cli-validierte Sigma-Regeln, dazu Härtung und der Test im Lab. Serie "Angriff erkennen".

Nach dem Erstzugang hat der Angreifer oft nur Benutzerrechte und sucht den Weg nach oben. Während die Ausnutzung einer Schwachstelle einen Programmfehler braucht und die Token-Manipulation eine fremde Identität borgt, nutzt dieser Weg eine Konfigurationsschwäche: einen Dienst, den ein normaler Nutzer verändern darf. Wer den binPath eines solchen Dienstes auf eigenen Code umbiegt, erbt beim nächsten Start dessen Rechte - meist SYSTEM. Das ist kein Anlegen eines neuen Dienstes zur Ausführung, sondern das Kapern eines vorhandenen zur Rechteausweitung. Dieser Beitrag nimmt die Erkennung in den Blick und bleibt auf der Verteidigerseite.

Einordnung in ATT&CK: Create or Modify System Service: Windows Service (T1543.003). MITRE führt die Technik in den Taktiken Persistence und Privilege Escalation; in dieser Serie steht sie in der Spalte Privilege Escalation, weil der gekaperte Dienst mit erhöhten Rechten läuft. Verwandt sind schwache Dienstberechtigungen und ungequotete Dienstpfade.

Was der Angreifer tut

Das Kapern eines Dienstes läuft - auf der Ebene des Prinzips, nicht als Anleitung - in wenigen Mustern ab:

  • Einen schwachen Dienst finden. Gesucht wird ein Dienst, dessen Konfiguration ein normaler Nutzer ändern darf oder dessen Dateien er überschreiben kann.
  • Den binPath umbiegen. Per sc.exe config wird der binPath des Dienstes auf eine eigene Datei gesetzt; beim nächsten Start läuft diese mit den Rechten des Dienstes.
  • Den ImagePath umschreiben. Derselbe Effekt lässt sich über die Registry erzielen, indem der ImagePath des Dienstes auf eine Datei im Benutzerpfad zeigt.
  • Den Fehlerfall ausnutzen. Ein gesetzter Wiederherstellungsbefehl (sc failure) führt bei einem Dienstabsturz einen beliebigen Befehl mit SYSTEM-Rechten aus.

Für die Erkennung ist entscheidend: Alle Wege laufen über wenige benannte Eingriffe - sc.exe config, die Dienst-Registry und sc failure. Genau daran setzen die Regeln an.

Welche Logquellen die Technik zeigt

  • Prozess-Telemetrie zuerst. Event 4688 und Sysmon Event 1 zeigen sc.exe mit config und binpath oder mit failure und command im Klartext. Die wichtigste Quelle.
  • Registry. Sysmon Event 13 zeigt die Änderung des ImagePath eines Dienstes - besonders, wenn der neue Wert in einen Benutzerpfad zeigt.
  • Dienst-Ereignisse. Das Ändern einer Dienstkonfiguration erscheint auch als System-Ereignis 7040 (Starttyp) und 7045 (neuer Dienst), was die Prozess-Telemetrie ergänzt.
  • Werkzeug-Kontext. sc.exe ist ein mitgeliefertes Windows-Werkzeug; Grundlagen zu seinem Missbrauch unter Living off the Land.

Das Muster im Log

Drei Signale tragen. Das erste ist ein sc.exe-Aufruf mit config und binPath, der einen bestehenden Dienst umbiegt - dafür gibt es im Alltag selten einen Grund. Das zweite ist eine Registry-Änderung, die den ImagePath eines Dienstes auf einen Benutzer- oder Temp-Pfad setzt; dort liegt kein legitimer Dienst. Das dritte ist ein gesetzter Wiederherstellungsbefehl per sc failure, der bei einem Dienstfehler Code ausführt. Legitime Treffer stammen aus bewusster Administration und einzelner Software mit eigenem Dienst. Auffällig wird es, wenn der Zielpfad im Benutzerbereich liegt oder der Eingriff aus einem ungewöhnlichen Kontext kommt. Der Blick auf Werkzeug, Zielpfad und Dienst trennt den Alltag vom Angriff.

Drei Sigma-Regeln

Die Regeln sind mit sigma-cli geprüft und nehmen die drei Wege: die binPath-Änderung per sc.exe, den umgebogenen ImagePath in der Registry und den Wiederherstellungsbefehl. Die erste und dritte werten die Prozess-Telemetrie aus, die zweite die Registry.

1. binPath eines Dienstes per sc.exe geändert (T1543.003). sc.exe config mit binpath auf einen bestehenden Dienst. Die Regel steht auf level: high.

Sigma
title: binPath eines bestehenden Dienstes per sc.exe geaendert
id: 3b8e1d47-5c02-4a96-9f1e-2d6b4c8a7e13
status: experimental
description: |
  Erkennt das Umbiegen des binPath eines bestehenden Dienstes ueber sc.exe config. Dienste laufen oft
  mit SYSTEM-Rechten; wer den binPath eines schwach geschuetzten Dienstes auf eine eigene Datei aendert,
  fuehrt beim naechsten Start seinen Code mit SYSTEM-Rechten aus (Rechteausweitung ueber einen Dienst).
  Ein nachtraeglich geaenderter binPath ist im normalen Betrieb selten.
references:
  - https://attack.mitre.org/techniques/T1543/003/
author: blue-team.net
tags:
  - attack.privilege-escalation
  - attack.t1543.003
logsource:
  product: windows
  category: process_creation
detection:
  sel_sc:
    Image|endswith: '\sc.exe'
  sel_config:
    CommandLine|contains: 'config'
  sel_bin:
    CommandLine|contains: 'binpath'
  condition: sel_sc and sel_config and sel_bin
falsepositives:
  - Legitime Umkonfiguration eines Dienstes durch die Administration - bekannte Faelle nach Host und Konto als Baseline ausnehmen
level: high

2. Dienst-ImagePath auf Benutzerpfad umgebogen (T1543.003). Der ImagePath eines Dienstes zeigt in der Registry auf einen Benutzer- oder Temp-Pfad. Ebenfalls level: high.

Sigma
title: Dienst-ImagePath auf Benutzerpfad umgebogen
id: 7e2c9a05-6d18-4b73-8a1f-3c7d5b9e2a46
status: experimental
description: |
  Erkennt, dass der ImagePath eines Dienstes in der Registry auf ein benutzerschreibbares Verzeichnis
  zeigt - Users, AppData, Temp oder Downloads. Angreifer biegen den ImagePath eines Dienstes auf ihre
  eigene Datei um, die dann mit den Rechten des Dienstes (oft SYSTEM) laeuft (Rechteausweitung ueber
  einen Dienst). Ein ImagePath im Benutzerpfad ist ein starkes Signal.
references:
  - https://attack.mitre.org/techniques/T1543/003/
author: blue-team.net
tags:
  - attack.privilege-escalation
  - attack.t1543.003
logsource:
  product: windows
  category: registry_set
detection:
  sel_path:
    TargetObject|contains: '\Services\'
  sel_img:
    TargetObject|endswith: '\ImagePath'
  sel_user:
    Details|contains:
      - '\Users\'
      - '\AppData\'
      - '\Temp\'
      - '\Downloads\'
  condition: sel_path and sel_img and sel_user
falsepositives:
  - Einzelne Software installiert Dienste in einem Benutzer- oder Datenpfad - bekannte Dienste nach Pfad und Herausgeber als Baseline ausnehmen
level: high

3. Dienst-Wiederherstellungsbefehl per sc.exe gesetzt (T1543.003). sc.exe failure mit command=. Die Regel steht auf level: high.

Sigma
title: Dienst-Wiederherstellungsbefehl per sc.exe gesetzt
id: 9f4a0c62-7b13-4e86-b2a8-1d6c3e5b7a92
status: experimental
description: |
  Erkennt das Setzen eines Wiederherstellungsbefehls fuer einen Dienst ueber sc.exe failure mit
  command=. Der bei einem Dienstfehler ausgefuehrte Befehl laeuft mit den Rechten des Dienstes, oft
  SYSTEM; Angreifer missbrauchen das zur Rechteausweitung und Persistenz, indem sie den Fehlerfall
  gezielt ausloesen. Ein gesetzter Wiederherstellungsbefehl ist im normalen Betrieb ungewoehnlich.
references:
  - https://attack.mitre.org/techniques/T1543/003/
author: blue-team.net
tags:
  - attack.privilege-escalation
  - attack.t1543.003
logsource:
  product: windows
  category: process_creation
detection:
  sel_sc:
    Image|endswith: '\sc.exe'
  sel_fail:
    CommandLine|contains: 'failure'
  sel_cmd:
    CommandLine|contains: 'command='
  condition: sel_sc and sel_fail and sel_cmd
falsepositives:
  - Legitime Dienste mit eigener Wiederherstellungsaktion - bekannte Faelle dokumentieren und ausnehmen
level: high

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

  • Dienstberechtigungen prüfen. Dienste dürfen nicht von normalen Nutzern umkonfiguriert werden können; schwache Berechtigungen auf Diensten und ihren Dateien gezielt beseitigen. Die wirksamste Maßnahme gegen diesen Weg.
  • Dienstpfade sauber halten. binPath immer in Anführungszeichen setzen und Dienste nur aus geschützten Systempfaden starten, nie aus Benutzer- oder Temp-Verzeichnissen.
  • Anwendungssteuerung. Mit AppLocker oder WDAC verhindern, dass ein Dienst eine Datei aus einem Benutzerpfad ausführt.
  • Gezielt überwachen. sc.exe config mit binpath, die ImagePath-Änderungen und sc failure mit command als feste Erkennungen führen.

Der Test

Die Erkennung lässt sich im Lab gefahrlos prüfen, auf einem isolierten System mit aktivem Sysmon - den Testdienst danach wieder zurücksetzen:

  • Für Regel 1 mit sc config einen Testdienst auf einen neuen binPath setzen. Event 4688 muss sc.exe samt config und binpath zeigen.
  • Für Regel 2 den ImagePath eines Testdienstes in der Registry auf einen Benutzerpfad setzen und prüfen, dass Sysmon Event 13 die Änderung meldet.
  • Für Regel 3 mit sc failure einen Wiederherstellungsbefehl setzen und den Treffer in der Prozess-Telemetrie kontrollieren.
  • Breiter wird der Test mit den Fällen zu T1543.003 aus Atomic Red Team.

Fehlalarme und Tuning

  • Administration. Admins konfigurieren Dienste bewusst um. Bekannte Konten, Hosts und Wartungsfenster als Baseline ausnehmen, bevor die Regeln scharf geschaltet werden.
  • Software mit eigenem Dienst. Einzelne Produkte legen Dienste in Datenpfaden an oder setzen Wiederherstellungsaktionen. Diese bekannten Dienste nach Pfad und Herausgeber ausnehmen.
  • Zielpfad ist entscheidend. Ein binPath oder ImagePath in einem Benutzer- oder Temp-Pfad wiegt weit schwerer als eine Umkonfiguration innerhalb der Systempfade - danach priorisieren.
  • Kette schlägt Einzelzeile. Die Dienständerung zusammen mit einem folgenden Start des Dienstes und Code aus dem Benutzerpfad ist weit aussagekräftiger als ein Treffer allein - die Korrelation schärft die Bewertung.

Fazit

Die Rechteausweitung über einen Dienst nutzt keine Schwachstelle im Code, sondern eine in der Konfiguration: einen Dienst, den ein normaler Nutzer verändern darf. Die verlässlichen Signale sind ein sc.exe-Aufruf mit config und binpath, ein ImagePath im Benutzerpfad und ein gesetzter Wiederherstellungsbefehl. Die wirksamste Härtung ist, Dienstberechtigungen und Dienstpfade sauber zu halten, sodass niemand ohne Not an einem Dienst drehen kann. Die lautere Variante über einen echten Exploit zeigt die Ausnutzung einer Schwachstelle; das Borgen einer Identität 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.