Detection rules › Splunk
Windows Special Privileged Logon On Multiple Hosts
The following analytic detects a user authenticating with special privileges on 30 or more remote endpoints within a 5-minute window. It leverages Event ID 4672 from Windows Security logs to identify this behavior. This activity is significant as it may indicate lateral movement or remote code execution by an adversary. If confirmed malicious, the attacker could gain extensive control over the network, potentially leading to privilege escalation, data exfiltration, or further compromise of the environment. Security teams should adjust detection thresholds based on their specific environment.
Known false positives
- Vulnerability scanners or system administration tools may also trigger this detection. Filter as needed.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Discovery | |
| Lateral Movement |
Telemetry coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4672: Special privileges assigned to new logon. |
Rule body
name: Windows Special Privileged Logon On Multiple Hosts
id: 4c461f5a-c2cc-4e86-b132-c262fc9edca7
version: 12
creation_date: '2023-03-23'
modification_date: '2026-05-13'
author: Mauricio Velazco, Splunk
status: production
type: TTP
description: The following analytic detects a user authenticating with special privileges on 30 or more remote endpoints within a 5-minute window. It leverages Event ID 4672 from Windows Security logs to identify this behavior. This activity is significant as it may indicate lateral movement or remote code execution by an adversary. If confirmed malicious, the attacker could gain extensive control over the network, potentially leading to privilege escalation, data exfiltration, or further compromise of the environment. Security teams should adjust detection thresholds based on their specific environment.
data_source:
- Windows Event Log Security 4672
search: |-
`wineventlog_security` EventCode=4672 AND NOT(Caller_User_Name IN ("DWM-1","DWM-2","DWM-3","LOCAL SERVICE","NETWORK SERVICE","SYSTEM","*$"))
| bucket span=5m _time
| stats dc(Computer) AS unique_targets values(Computer) as dest values(PrivilegeList) as privileges
BY _time, Caller_User_Name
| rename Caller_User_Name as user
| where unique_targets > 30
| `windows_special_privileged_logon_on_multiple_hosts_filter`
how_to_implement: To successfully implement this search, you need to be ingesting special logon events. The Advanced Security Audit policy setting `Audit Special Logon` within `Logon/Logoff` need to be enabled.
known_false_positives: Vulnerability scanners or system administration tools may also trigger this detection. Filter as needed.
references:
- https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4672
- https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn319113(v=ws.11)
- https://thedfirreport.com/2023/01/23/sharefinder-how-threat-actors-discover-file-shares/
- https://attack.mitre.org/tactics/TA0008/
finding:
title: 'A user $user$ obtained special privileges on a large number of endpoints (Count: $unique_targets$) within 5 minutes.'
entity:
field: user
type: user
score: 50
analytic_story:
- Active Directory Privilege Escalation
- Active Directory Lateral Movement
- Compromised Windows Host
asset_type: Endpoint
mitre_attack_id:
- T1087
- T1021.002
- T1135
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
category: endpoint
security_domain: endpoint
Stages and Predicates
Stage 1: search
`wineventlog_security` EventCode=4672 AND NOT(Caller_User_Name IN ("DWM-1","DWM-2","DWM-3","LOCAL SERVICE","NETWORK SERVICE","SYSTEM","*$"))
Stage 2: bucket
| bucket span=5m _time
Stage 3: stats
| stats dc(Computer) AS unique_targets values(Computer) as dest values(PrivilegeList) as privileges
BY _time, Caller_User_Name
Stage 4: rename
| rename Caller_User_Name as user
Stage 5: where
| where unique_targets > 30
Stage 6: search
| `windows_special_privileged_logon_on_multiple_hosts_filter`
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Caller_User_Name | in | "*$", "DWM-1", "DWM-2", "DWM-3", "LOCAL SERVICE", "NETWORK SERVICE", "SYSTEM" | excludes:Caller_User_Name |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventCode | eq |
| field:"EventID" kind:eq value:"4672" |
unique_targets | gt |
| field:"unique_targets" kind:gt value:"30" |