Kurzfassung: Die Benutzerkontensteuerung (UAC) soll verhindern, dass Programme unbemerkt mit Administratorrechten laufen. Ein UAC-Bypass umgeht genau diese Abfrage - meist, indem ein vertrauenswürdiger, auto-elevierter Windows-Prozess über einen manipulierten Registry-Eintrag auf fremden Code umgebogen wird. Für den Verteidiger ist das gut erkennbar, weil die genutzten Registry-Schlüssel und Eltern-Kind-Beziehungen eindeutig sind. Die Ansatzpunkte: der Registry-Hijack, der auffällige Kindprozess eines Auto-Elevate-Handlers und der CMSTP-Missbrauch. Drei sigma-cli-validierte Sigma-Regeln, Härtung und Test. Serie "Angriff erkennen".
Nach dem Erstzugang hat ein Angreifer oft nur die Rechte eines normalen Benutzers. Um an die wirklich interessanten Dinge zu kommen, braucht er mehr - und der leiseste Schritt dorthin ist häufig ein UAC-Bypass: keine Schwachstelle im klassischen Sinn, sondern das Ausnutzen von Windows-Programmen, die sich ohne Rückfrage selbst elevieren dürfen. Dieser Beitrag eröffnet die Serien-Welle "Rechte und blinde Flecken" und bleibt bewusst auf der Verteidigerseite. Verwandt ist das spätere Abschalten der Abwehr, etwa die EDR-Umgehung; die missbrauchten Bordmittel gehören zur Familie der LOLBins.
Einordnung in ATT&CK: Die Technik ist Abuse Elevation Control Mechanism: Bypass User Account Control (T1548.002). In der Serie steht der Beitrag in der Spalte Privilege Escalation. Ziel ist, erhöhte Rechte zu erlangen, ohne dass die UAC-Abfrage erscheint - der Angreifer wird vom System selbst eleviert.
Was der Angreifer tut
Hinter dem UAC-Bypass stehen dutzende Varianten, aber ein gemeinsames Grundmuster. Auf der Ebene des Prinzips, nicht als Anleitung:
- Einen Auto-Elevate-Handler umbiegen. Ein Windows-Prozess, der sich ohne Rückfrage elevieren darf - etwa fodhelper, eventvwr, sdclt oder computerdefaults -, liest beim Start einen Registry-Schlüssel im Benutzerzweig. Dort wird das eigene Kommando eingetragen und läuft dann mit erhöhten Rechten.
- CMSTP missbrauchen. Das Bordmittel cmstp lädt eine INF-Datei mit erhöhten Rechten und lässt sich so für Bypass und Code-Ausführung einspannen.
- COM- und Token-Varianten. Es gibt ganze Sammlungen solcher Techniken; das Muster bleibt: ein vertrauenswürdiger Prozess wird eleviert und führt fremden Code aus.
Für die Erkennung ist entscheidend: Ein UAC-Bypass setzt meist voraus, dass das Konto ohnehin im geteilten Token lokale Admin-Rechte hat - er umgeht die Abfrage, nicht die Gruppenzugehörigkeit. Trotzdem ist er gefährlich, weil er leise volle Rechte verschafft. Und er hinterlässt klare Spuren.
Welche Logquellen die Technik zeigt
- Die Registry zuerst. Sysmon Event 13 zeigt den Hijack der shell\open\command-Schlüssel unter ms-settings, mscfile oder Folder - das klarste Signal.
- Die Eltern-Kind-Beziehung. Event 4688 und Sysmon Event 1 zeigen einen Auto-Elevate-Handler als Elternprozess eines cmd oder PowerShell - das typische Ergebnis des Bypasses. Die Skript-Variante deckt das Script Block Logging zusätzlich auf.
- Der CMSTP-Aufruf. cmstp mit INF im stillen Modus taucht in der Prozess-Telemetrie auf.
- Fehlende UAC-Abfrage. Ein elevierter Prozess ohne die übliche Interaktion mit der Zustimmungsabfrage ist ein schwächeres, ergänzendes Indiz.
Das Muster im Log
Zwei Signale tragen. Erstens ein neuer shell\open\command-Eintrag unter ms-settings, mscfile oder Folder im Benutzerzweig - dafür gibt es kaum einen legitimen Grund. Zweitens fodhelper, eventvwr oder sdclt als Elternprozess von cmd oder PowerShell. Beide zusammen sind praktisch eindeutig, und der CMSTP-Aufruf mit INF im stillen Modus rundet das Bild ab. Anders als bei vielen anderen Techniken brauchen diese Treffer kaum Tuning: Die Muster kommen im normalen Betrieb schlicht nicht vor.
Drei Sigma-Regeln
Die Regeln sind mit sigma-cli geprüft. Die erste nutzt den Registry-Hijack, die zweite die Eltern-Kind-Beziehung, die dritte den CMSTP-Missbrauch. Die erste setzt die Registry-Erfassung voraus, die beiden anderen die Prozessüberwachung mit Kommandozeile.
1. UAC-Bypass über Registry-Hijack (T1548.002). Das Anlegen der manipulierten shell\open\command-Schlüssel. Die Regel steht auf level: high.
title: UAC-Bypass ueber Registry-Hijack von Auto-Elevate-Handlern
id: 8bda5fd0-29d4-403b-9da7-093a05f9a89d
status: experimental
description: |
Erkennt das Anlegen von Registry-Eintraegen, mit denen gaengige UAC-Bypasses
einen auto-elevierten Windows-Prozess auf ein eigenes Kommando umbiegen. Die
Schluessel unter ms-settings, mscfile oder Folder im Benutzerzweig werden von
fodhelper, eventvwr oder sdclt gelesen und fuehren dann mit erhoehten Rechten aus.
references:
- https://attack.mitre.org/techniques/T1548/002/
author: blue-team.net
tags:
- attack.privilege-escalation
- attack.t1548.002
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|contains:
- '\ms-settings\shell\open\command'
- '\mscfile\shell\open\command'
- '\Folder\shell\open\command'
- '\exefile\shell\open\command'
condition: selection
falsepositives:
- Sehr selten; bestimmte Software registriert eigene Handler. Im Kontext pruefen
level: high
2. Auto-elevierter Prozess startet ungewöhnlichen Kindprozess (T1548.002). Ein Auto-Elevate-Handler als Elternteil eines Kommandozeilen- oder Skript-Hosts. Ebenfalls level: high.
title: Auto-elevierter Windows-Prozess startet ungewoehnlichen Kindprozess
id: 03fe59b5-ad76-42c1-8fe1-899178903d31
status: experimental
description: |
Erkennt, dass ein auto-elevierter Windows-Prozess wie fodhelper, computerdefaults,
eventvwr oder sdclt einen Kommandozeilen- oder Skript-Host startet. Das ist das
typische Ergebnis eines UAC-Bypasses: Der vertrauenswuerdige Prozess fuehrt mit
erhoehten Rechten fremden Code aus.
references:
- https://attack.mitre.org/techniques/T1548/002/
author: blue-team.net
tags:
- attack.privilege-escalation
- attack.t1548.002
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\fodhelper.exe'
- '\computerdefaults.exe'
- '\eventvwr.exe'
- '\sdclt.exe'
- '\slui.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\mshta.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\rundll32.exe'
condition: selection_parent and selection_child
falsepositives:
- Sehr selten; im Einzelfall administrative Nutzung pruefen
level: high
3. CMSTP-Missbrauch zur Rechteausweitung (T1548.002). cmstp mit INF im stillen Modus. level: medium, mit Tuning gegen VPN-Profile.
title: CMSTP-Missbrauch zur Rechteausweitung
id: 20521687-6543-4bfe-b797-00f68b533c7d
status: experimental
description: |
Erkennt den Aufruf von cmstp mit einer INF-Datei im stillen Modus. cmstp laedt
die INF mit erhoehten Rechten und wird so fuer UAC-Bypass und Code-Ausfuehrung
missbraucht. Der stille Modus mit INF ist im normalen Betrieb ungewoehnlich.
references:
- https://attack.mitre.org/techniques/T1548/002/
author: blue-team.net
tags:
- attack.privilege-escalation
- attack.t1548.002
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\cmstp.exe'
CommandLine|contains: '.inf'
selection_flag:
CommandLine|contains:
- ' /s'
- ' /au'
- ' /ns'
condition: selection and selection_flag
falsepositives:
- Legitime VPN- oder Verbindungsprofile per cmstp; bekannte Faelle ausnehmen
level: medium
Härtung: der Angriff, der ins Leere läuft
- Keine lokalen Admin-Rechte im Alltag. Ein UAC-Bypass braucht ein Konto, das im geteilten Token Administrator ist. Wer für die tägliche Arbeit kein lokaler Admin ist, gibt dem Bypass keine Grundlage - die wirksamste Maßnahme.
- UAC auf die höchste Stufe. "Immer benachrichtigen" verkleinert die Zahl der auto-elevierten Pfade, die sich missbrauchen lassen.
- Anwendungssteuerung. Die Ausführung von cmstp und ungewöhnliche Kindprozesse von Auto-Elevate-Handlern einschränken, wo sie nicht gebraucht werden.
- Registry als Tripwire. Die shell\open\command-Schlüssel gezielt überwachen - ihr Beschreiben ist fast immer bösartig.
Der Test
Die Erkennung lässt sich im Lab gefahrlos prüfen, auf einem isolierten System mit aktivem Sysmon:
- Für Regel 1 einen der shell\open\command-Schlüssel im Benutzerzweig setzen. Sysmon Event 13 muss den Eintrag zeigen.
- Für Regel 2 einen bekannten fodhelper-Bypass im Lab ausführen. Event 4688 und Sysmon Event 1 müssen die Eltern-Kind-Beziehung zeigen.
- Für Regel 3 cmstp mit einer Test-INF im stillen Modus aufrufen. Vollständiger wird der Test mit den Fällen zu T1548.002 aus Atomic Red Team.
Fehlalarme und Tuning
- Software mit eigenen Handlern. Sehr selten registriert legitime Software eigene shell\open\command-Einträge. Prüfe neue Einträge im Kontext, bevor du hart blockierst.
- Bewusste Admin-Elevation. Ein Administrator, der gezielt eleviert, kann ähnliche Prozessmuster erzeugen. Korreliere mit Nutzer und Kontext.
- cmstp für VPN. Legitime Verbindungsprofile nutzen cmstp. Nimm die bekannten INFs und Profile aus, bevor du Regel 3 scharf schaltest.
- Eltern-Kind schlägt Einzelsignal. Der Registry-Eintrag allein oder der Kindprozess allein ist schwächer als beide zusammen. Korreliere die Treffer der ersten beiden Regeln.
Fazit
Der UAC-Bypass ist der leise erste Schritt zu vollen lokalen Rechten - aber er hinterlässt eindeutige Spuren: manipulierte shell\open\command-Schlüssel und auffällige Kindprozesse vertrauenswürdiger Windows-Programme. Die wirksamste Härtung ist, Normalnutzern keine lokalen Admin-Rechte zu geben; die Erkennung ist dank der präzisen Muster unkompliziert. Wie sich das spätere Abschalten der Abwehr zeigt, steht in der EDR-Umgehung. Weitere Techniken dieser Taktik sammelt das Lexikon nach Taktik unter Privilege Escalation.