Kurzfassung: Kurz nach dem Erstzugang will ein Angreifer wissen, womit er es zu tun hat - und die laufenden Dienste verraten viel: welche Sicherheitssoftware aktiv ist, welche Datenbank läuft, wo sich ein Angriff lohnt. System Service Discovery ist unscheinbar, weil Admins dieselben Befehle nutzen. Für den Verteidiger zählt deshalb der Kontext: sc query, net start oder Get-Service von einem ungewöhnlichen Prozess oder Konto, zusammen mit weiterer Erkundung. Drei sigma-cli-validierte Sigma-Regeln, dazu Härtung und der Test im Lab. Serie "Angriff erkennen".
Nach dem ersten Fuß in der Tür folgt die Orientierung. Welche Dienste laufen auf diesem System? Steht ein EDR-Dienst im Weg, läuft hier eine Datenbank, ein Backup-Agent, eine Verwaltungs-software? Die Liste der Dienste beantwortet das in Sekunden und mit Bordmitteln. Das macht System Service Discovery zu einem frühen, häufigen Schritt - und zugleich zu einem schwer greifbaren, weil genau diese Befehle im Admin-Alltag ständig vorkommen. Der Schlüssel zur Erkennung ist nicht der Befehl allein, sondern wer ihn ausführt und was drumherum passiert. Dieser Beitrag nimmt die Erkennung in den Blick und bleibt auf der Verteidigerseite.
Einordnung in ATT&CK: System Service Discovery (T1007), eine Technik der Taktik Discovery; in dieser Serie steht sie entsprechend in der Spalte Discovery. Sie beschreibt das Auflisten installierter und laufender Dienste und grenzt sich von anderen Erkundungswegen wie der Netz-, Freigabe- oder Kontenerkundung ab, die jeweils andere Informationen sammeln.
Was der Angreifer tut
Die Dienste-Erkundung läuft - auf der Ebene des Prinzips, nicht als Anleitung - in wenigen Mustern ab:
- Dienste auflisten. Mit Bordmitteln wie sc query, net start oder tasklist /svc wird die Liste der laufenden und installierten Dienste abgefragt.
- Über Skriptsprachen abfragen. Get-Service in PowerShell oder wmic service liefern dieselben Informationen, oft eingebettet in ein größeres Erkundungsskript.
- Ziele ableiten. Aus der Dienstliste liest der Angreifer ab, welche Sicherheitssoftware aktiv ist, welche Anwendungen laufen und wo sich ein weiterer Schritt lohnt.
- Leise bleiben. Weil die Befehle alltäglich sind, geht die Abfrage im normalen Rauschen leicht unter - der Angreifer setzt darauf.
Für die Erkennung ist entscheidend: Jeder dieser Wege hinterlässt einen Prozess mit aussagekräftiger Befehlszeile. Nicht der einzelne Aufruf ist das Signal, sondern der Kontext - der aufrufende Prozess, das Konto und die umgebende Aktivität. Genau daran setzen die Regeln an.
Welche Logquellen die Technik zeigt
- Prozess-Telemetrie zuerst. Event 4688 zeigt sc, net, tasklist, PowerShell oder wmic samt vollständiger Befehlszeile und übergeordnetem Prozess - die wichtigste Quelle für die Dienste-Erkundung.
- Eltern-Kind-Beziehung. Entscheidend ist, wer die Abfrage startet; ein Aufruf aus einem Office-Programm, einem Skript-Host oder einem frisch nachgeladenen Prozess ist ein starkes Signal.
- Häufung und Reihenfolge. Mehrere Erkundungsbefehle kurz nacheinander ergeben das Muster einer automatisierten Erkundung - das wiegt schwerer als ein einzelner Aufruf.
- Werkzeug-Kontext. sc, net, tasklist und wmic sind mitgelieferte Windows-Programme; Grundlagen zum Missbrauch solcher Bordmittel unter Living off the Land.
Das Muster im Log
Drei Signale tragen. Das erste ist ein sc-Aufruf mit query. Das zweite ist net start ohne Argument oder tasklist mit dem Schalter svc. Das dritte ist Get-Service per PowerShell oder wmic service. Legitime Treffer stammen aus Administration, Monitoring und Skripten, die Dienste routinemäßig abfragen - diese Technik ist im Alltag häufig, deshalb stehen die Regeln bewusst auf niedriger Stufe. Auffällig wird es, wenn die Abfrage aus einem Office-Programm oder Skript-Host kommt, von einem Konto stammt, das sonst keine Dienste abfragt, oder zusammen mit weiterer Erkundung kurz nach dem Erstzugang auftritt. Der Blick auf Elternprozess, Konto und Umfeld trennt den Alltag vom Angriff.
Drei Sigma-Regeln
Die Regeln sind mit sigma-cli geprüft und nehmen die drei Signale: sc query, net start oder tasklist /svc und die Abfrage per PowerShell oder wmic. Alle drei werten die Prozess-Telemetrie aus und stehen wegen der Häufigkeit im Alltag auf level: low - als Bausteine für Korrelation, nicht als Einzelalarm.
1. Dienste-Enumeration per sc query (T1007). sc.exe mit query. Die Regel steht auf level: low.
title: Dienste-Enumeration per sc query
id: 7a3c9e51-6b24-4d85-a2f6-3d8c5b1e9a74
status: experimental
description: |
Erkennt die Enumeration der installierten Dienste per sc.exe mit query. Angreifer verschaffen sich so
einen Ueberblick ueber laufende und installierte Dienste, um Angriffsflaechen und
Sicherheitssoftware zu finden (System Service Discovery). Fuer sich genommen ist das Alltag, im
Zusammenspiel mit weiterer Erkundung aber ein Signal.
references:
- https://attack.mitre.org/techniques/T1007/
author: blue-team.net
tags:
- attack.discovery
- attack.t1007
logsource:
product: windows
category: process_creation
detection:
sel_img:
Image|endswith: '\sc.exe'
sel_q:
CommandLine|contains: 'query'
condition: sel_img and sel_q
falsepositives:
- Administration und Monitoring fragen Dienste regulaer ab - bekannte Hosts, Konten und Skripte als Baseline ausnehmen
level: low
2. Dienste-Enumeration per net start oder tasklist (T1007). net start ohne Argument oder tasklist /svc. Ebenfalls level: low.
title: Dienste-Enumeration per net start oder tasklist
id: 8e4b6c23-7d91-4a63-b5f2-9c3d7a4e1b68
status: experimental
description: |
Erkennt die Enumeration laufender Dienste per net start (ohne Argument listet es die aktiven Dienste)
oder per tasklist mit dem Schalter svc, der Prozesse und zugehoerige Dienste auflistet. Angreifer
verschaffen sich so einen Ueberblick ueber die aktiven Dienste eines Systems (System Service
Discovery).
references:
- https://attack.mitre.org/techniques/T1007/
author: blue-team.net
tags:
- attack.discovery
- attack.t1007
logsource:
product: windows
category: process_creation
detection:
sel_net:
Image|endswith:
- '\net.exe'
- '\net1.exe'
CommandLine|endswith: ' start'
sel_tasklist:
Image|endswith: '\tasklist.exe'
CommandLine|contains: '/svc'
condition: sel_net or sel_tasklist
falsepositives:
- Administration und Skripte listen Dienste regulaer auf - bekannte Hosts und Konten als Baseline ausnehmen
level: low
3. Dienste-Enumeration per PowerShell oder wmic (T1007). Get-Service oder wmic service. Ebenfalls level: low.
title: Dienste-Enumeration per PowerShell oder wmic
id: 2a9e5c37-4d82-4f61-b3d7-7c2e8b4a1f69
status: experimental
description: |
Erkennt die Enumeration der Dienste per PowerShell (Get-Service) oder per wmic service. Angreifer
nutzen diese Wege, um die installierten Dienste eines Systems aufzulisten, oft im Rahmen einer
breiteren Erkundung (System Service Discovery). Die Abfrage ist im Alltag haeufig, in einer
Angriffskette aber Teil des Musters.
references:
- https://attack.mitre.org/techniques/T1007/
author: blue-team.net
tags:
- attack.discovery
- attack.t1007
logsource:
product: windows
category: process_creation
detection:
sel_ps:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
CommandLine|contains: 'Get-Service'
sel_wmic:
Image|endswith: '\wmic.exe'
CommandLine|contains: 'service'
condition: sel_ps or sel_wmic
falsepositives:
- Administration und Monitoring fragen Dienste per PowerShell oder wmic ab - bekannte Hosts und Skripte als Baseline ausnehmen
level: low
Härtung: der Angriff, der ins Leere läuft
- Rechte begrenzen. Normale Nutzer brauchen keine systemweite Dienste-Abfrage - wo möglich die Ausführung solcher Werkzeuge auf administrative Konten beschränken.
- Skriptsprachen einhegen. PowerShell mit Constrained Language Mode und Script Block Logging betreiben, damit Get-Service-Abfragen in Erkundungsskripten sichtbar werden.
- Kommandozeile protokollieren. Die Prozess-Befehlszeile (Event 4688 mit Command-Line-Auditing oder Sysmon) zuverlässig erfassen - ohne sie fehlt der entscheidende Kontext.
- Korrelieren statt einzeln alarmieren. Dienste-Abfragen als Bausteine führen und erst in Kombination mit weiterer Erkundung oder auffälligem Elternprozess alarmieren.
Der Test
Die Erkennung lässt sich im Lab gefahrlos prüfen, auf einem isolierten System mit aktivem Sysmon und Command-Line-Auditing - mit harmlosen Abfragen:
- Für Regel 1 sc query ausführen und prüfen, dass Event 4688 den Aufruf samt Befehlszeile zeigt.
- Für Regel 2 net start und tasklist /svc ausführen und prüfen, dass die Regel beide Formen erfasst.
- Für Regel 3 Get-Service in PowerShell und wmic service aufrufen und kontrollieren, dass die Regel greift.
- Breiter wird der Test mit den Fällen zu T1007 aus Atomic Red Team.
Fehlalarme und Tuning
- Administration und Monitoring. Dienste-Abfragen sind im Betrieb allgegenwärtig. Bekannte Verwaltungshosts, Monitoring-Konten und Skripte als Baseline ausnehmen, bevor die Regeln überhaupt zur Korrelation herangezogen werden.
- Niedrige Stufe mit Bedacht. Die Regeln stehen bewusst auf low - sie sind als Kontext gedacht und sollten nicht allein alarmieren.
- Elternprozess entscheidet. sc query aus einem Admin-Skript ist Alltag; derselbe Aufruf aus einem Office-Programm oder Skript-Host ist es nicht - nach dem Kontext priorisieren.
- Kette schlägt Einzelzeile. Die Dienste-Abfrage zusammen mit weiterer Erkundung kurz nach dem Erstzugang ist weit aussagekräftiger als ein Treffer allein - die Korrelation schärft die Bewertung.
Fazit
System Service Discovery ist ein früher, leiser Orientierungsschritt: Die Liste der Dienste verrät dem Angreifer, welche Sicherheitssoftware und welche Anwendungen laufen und wo sich der nächste Schritt lohnt. Die verlässlichen Signale sind sc query, net start oder tasklist /svc und die Abfrage per Get-Service oder wmic service. Weil diese Befehle im Alltag häufig sind, liegt die Stärke in der Korrelation: aufrufender Prozess, Konto und umgebende Erkundung entscheiden. Die wirksamste Härtung sind begrenzte Rechte, eingehegte Skriptsprachen und ein zuverlässiges Protokoll der Befehlszeile. Weitere Techniken dieser Taktik führt das Lexikon nach Taktik unter Discovery.