Skip to content

Commit 554d02d

Browse files
authored
Merge branch 'develop' into new-research-detection-endpoint
2 parents 3e93fb9 + dbede3b commit 554d02d

16 files changed

+713
-5
lines changed

detections/endpoint/suspicious_event_log_service_behavior.yml renamed to detections/deprecated/suspicious_event_log_service_behavior.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ id: 2b85aa3d-f5f6-4c2e-a081-a09f6e1c2e40
33
version: 6
44
date: '2025-02-10'
55
author: Mauricio Velazco, Splunk
6-
status: production
6+
status: deprecated
77
type: Hunting
8-
description: The following analytic detects the shutdown of the Windows Event Log
8+
description: This search has been deprecated in favour of Windows Event Logging Service Has Shutdown . The following analytic detects the shutdown of the Windows Event Log
99
service using Windows Event ID 1100. This event is logged every time the service
1010
stops, including during normal system shutdowns. Monitoring this activity is crucial
1111
as it can indicate attempts to cover tracks or disable logging. If confirmed malicious,

detections/endpoint/windows_ad_domain_controller_audit_policy_disabled.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Windows AD Domain Controller Audit Policy Disabled
22
id: fc3ccef1-60a4-4239-bd66-b279511b4d14
3-
version: 4
4-
date: '2024-11-13'
3+
version: 5
4+
date: '2025-01-28'
55
author: Dean Luxton
66
type: TTP
77
status: production
@@ -53,7 +53,7 @@ rba:
5353
threat_objects: []
5454
tags:
5555
analytic_story:
56-
- Sneaky Active Directory Persistence Tricks
56+
- Windows Audit Policy Tampering
5757
asset_type: Endpoint
5858
mitre_attack_id:
5959
- T1562.001
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Windows Audit Policy Auditing Option Disabled via Auditpol
2+
id: 663a7a50-b752-4c84-975b-8325ca3f6f9e
3+
version: 1
4+
date: '2025-01-27'
5+
author: Nasreddine Bencherchali, Splunk
6+
status: production
7+
type: TTP
8+
description: The following analytic identifies the execution of `auditpol.exe` with the "/set", "/option" and "/value:disable" command-line arguments used to disable specific auditing options of the audit policy. It leverages data from Endpoint Detection and Response (EDR) agents, focusing on process names and command-line executions. This activity can be significant as it indicates potential defense evasion by adversaries or Red Teams, aiming to limit data that can be leveraged for detections and audits. If confirmed malicious, this behavior could allow attackers to bypass defenses, and plan further attacks, potentially leading to full machine compromise or lateral movement.
9+
data_source:
10+
- Sysmon EventID 1
11+
- Windows Event Log Security 4688
12+
- CrowdStrike ProcessRollup2
13+
search: '| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where `process_auditpol` Processes.process="*/set*" Processes.process="*/option:*" Processes.process="*/value:disable*" Processes.process IN ("*FullPrivilegeAuditing*", "*AuditBaseObjects*", "*AuditBaseDirectories*") by Processes.dest Processes.user Processes.parent_process Processes.parent_process_name Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_audit_policy_auditing_option_disabled_via_auditpol_filter`'
14+
how_to_implement: The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the process name, and process original file name. Additionally, you must ingest complete command-line executions. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process.
15+
known_false_positives: None identified. Attempts to disable logging should be identified and understood.
16+
references:
17+
- https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gpac/262a2bed-93d4-4c04-abec-cf06e9ec72fd
18+
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/auditpol-set
19+
drilldown_searches:
20+
- name: View the detection results for - "$user$" and "$dest$"
21+
search: '%original_detection_search% | search user = "$user$" dest = "$dest$"'
22+
earliest_offset: $info_min_time$
23+
latest_offset: $info_max_time$
24+
- name: View risk events for the last 7 days for - "$user$" and "$dest$"
25+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$",
26+
"$dest$") starthoursago=168 | stats count min(_time) as firstTime max(_time)
27+
as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk
28+
Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
29+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
30+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
31+
earliest_offset: $info_min_time$
32+
latest_offset: $info_max_time$
33+
rba:
34+
message: An instance of $parent_process_name$ spawning $process_name$ was identified attempting to disable an audit policy auditing option on endpoint $dest$ by user $user$.
35+
risk_objects:
36+
- field: user
37+
type: user
38+
score: 60
39+
- field: dest
40+
type: system
41+
score: 60
42+
threat_objects:
43+
- field: process_name
44+
type: process_name
45+
tags:
46+
analytic_story:
47+
- Windows Audit Policy Tampering
48+
asset_type: Endpoint
49+
mitre_attack_id:
50+
- T1562.002
51+
product:
52+
- Splunk Enterprise
53+
- Splunk Enterprise Security
54+
- Splunk Cloud
55+
security_domain: endpoint
56+
tests:
57+
- name: True Positive Test - Sysmon
58+
attack_data:
59+
- data:
60+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.002/auditpol_tampering/auditpol_tampering_sysmon.log
61+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
62+
sourcetype: XmlWinEventLog
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Windows Audit Policy Auditing Option Modified - Registry
2+
id: 27914692-9c62-44ea-9129-ceb429b61bd0
3+
version: 1
4+
date: '2025-01-27'
5+
author: Nasreddine Bencherchali, Splunk
6+
status: production
7+
type: Anomaly
8+
description: The following analytic detects potentially suspicious modifications to the Audit Policy auditing options registry values. It leverages data from the Endpoint.Registry data model, focusing on changes to one of the following auditing option values "CrashOnAuditFail", "FullPrivilegeAuditing", "AuditBaseObjects" and "AuditBaseDirectories" within the "HKLM\\System\\CurrentControlSet\\Control\\Lsa\\" registry key. This activity is significant as it could be a sign of a threat actor trying to tamper with the audit policy configuration, and disabling SACLs configuration. If confirmed malicious, this behavior could allow attackers to bypass defenses, and plan further attacks, potentially leading to full machine compromise or lateral movement.
9+
data_source:
10+
- Sysmon EventID 13
11+
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry WHERE Registry.registry_key_name="*\\Control\\Lsa" Registry.registry_value_name IN ("CrashOnAuditFail", "FullPrivilegeAuditing", "AuditBaseObjects", "AuditBaseDirectories") BY Registry.registry_path Registry.registry_key_name Registry.registry_value_name Registry.registry_value_data Registry.process_guid Registry.dest Registry.user | `drop_dm_object_name(Registry)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_audit_policy_auditing_option_modified___registry_filter`'
12+
how_to_implement: To successfully implement this search, you need to be ingesting logs with the registry value name, registry path, and registry value data from your endpoints. If you are using Sysmon, you must have at least version 2.0 of the official Sysmon TA. https://splunkbase.splunk.com/app/5709
13+
known_false_positives: Active setup installer may add or modify this registry.
14+
references:
15+
- https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-gpac/262a2bed-93d4-4c04-abec-cf06e9ec72fd
16+
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/auditpol-set
17+
drilldown_searches:
18+
- name: View the detection results for - "$dest$" and "$user$"
19+
search: '%original_detection_search% | search dest = "$dest$" user = "$user$"'
20+
earliest_offset: $info_min_time$
21+
latest_offset: $info_max_time$
22+
- name: View risk events for the last 7 days for - "$dest$" and "$user$"
23+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$",
24+
"$user$") starthoursago=168 | stats count min(_time) as firstTime max(_time)
25+
as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk
26+
Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
27+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
28+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
29+
earliest_offset: $info_min_time$
30+
latest_offset: $info_max_time$
31+
rba:
32+
message: The auditing option $registry_value_name$ from the configured Audit Policy was modified on $dest$.
33+
risk_objects:
34+
- field: dest
35+
type: system
36+
score: 64
37+
- field: user
38+
type: user
39+
score: 64
40+
threat_objects: []
41+
tags:
42+
analytic_story:
43+
- Windows Audit Policy Tampering
44+
asset_type: Endpoint
45+
mitre_attack_id:
46+
- T1547.014
47+
product:
48+
- Splunk Enterprise
49+
- Splunk Enterprise Security
50+
- Splunk Cloud
51+
security_domain: endpoint
52+
tests:
53+
- name: True Positive Test - Sysmon
54+
attack_data:
55+
- data:
56+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.002/auditpol_tampering/auditpol_tampering_sysmon.log
57+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
58+
sourcetype: XmlWinEventLog
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Windows Audit Policy Cleared via Auditpol
2+
id: f067f7cf-f41b-4a60-985e-c23e268a13cb
3+
version: 1
4+
date: '2025-01-27'
5+
author: Nasreddine Bencherchali, Splunk
6+
status: production
7+
type: TTP
8+
description: The following analytic identifies the execution of `auditpol.exe` with the "/clear" command-line argument used to clears the audit policy. It leverages data from Endpoint Detection and Response (EDR) agents, focusing on process names and command-line executions. This activity can be significant as it indicates potential defense evasion by adversaries or Red Teams, aiming to limit data that can be leveraged for detections and audits. If confirmed malicious, this behavior could allow attackers to bypass defenses, and plan further attacks, potentially leading to full machine compromise or lateral movement.
9+
data_source:
10+
- Sysmon EventID 1
11+
- Windows Event Log Security 4688
12+
- CrowdStrike ProcessRollup2
13+
search: '| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where `process_auditpol` Processes.process IN ("*/clear*", "*/remove*") AND NOT Processes.process IN ("*/resourceSACL*", "*/?*") by Processes.dest Processes.user Processes.parent_process Processes.parent_process_name Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_audit_policy_cleared_via_auditpol_filter`'
14+
how_to_implement: The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the process name, and process original file name. Additionally, you must ingest complete command-line executions. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process.
15+
known_false_positives: None identified. Attempts to disable logging should be identified and understood.
16+
references:
17+
- https://www.microsoft.com/en-us/security/blog/2021/01/20/deep-dive-into-the-solorigate-second-stage-activation-from-sunburst-to-teardrop-and-raindrop/
18+
- https://www.cybereason.com/blog/research/prometei-botnet-exploiting-microsoft-exchange-vulnerabilities
19+
- https://attack.mitre.org/techniques/T1562/002/
20+
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/auditpol-clear
21+
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/auditpol-remove
22+
drilldown_searches:
23+
- name: View the detection results for - "$user$" and "$dest$"
24+
search: '%original_detection_search% | search user = "$user$" dest = "$dest$"'
25+
earliest_offset: $info_min_time$
26+
latest_offset: $info_max_time$
27+
- name: View risk events for the last 7 days for - "$user$" and "$dest$"
28+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$",
29+
"$dest$") starthoursago=168 | stats count min(_time) as firstTime max(_time)
30+
as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk
31+
Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
32+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
33+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
34+
earliest_offset: $info_min_time$
35+
latest_offset: $info_max_time$
36+
rba:
37+
message: An instance of $parent_process_name$ spawning $process_name$ was identified attempting to clear logging on endpoint $dest$ by user $user$.
38+
risk_objects:
39+
- field: user
40+
type: user
41+
score: 16
42+
- field: dest
43+
type: system
44+
score: 16
45+
threat_objects:
46+
- field: process_name
47+
type: process_name
48+
tags:
49+
analytic_story:
50+
- Windows Audit Policy Tampering
51+
asset_type: Endpoint
52+
mitre_attack_id:
53+
- T1562.002
54+
product:
55+
- Splunk Enterprise
56+
- Splunk Enterprise Security
57+
- Splunk Cloud
58+
security_domain: endpoint
59+
tests:
60+
- name: True Positive Test - Sysmon
61+
attack_data:
62+
- data:
63+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.002/auditpol_tampering/auditpol_tampering_sysmon.log
64+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
65+
sourcetype: XmlWinEventLog
66+
- name: True Positive Test - Security
67+
attack_data:
68+
- data:
69+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.002/auditpol_tampering/auditpol_tampering_security.log
70+
source: XmlWinEventLog:Security
71+
sourcetype: XmlWinEventLog
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Windows Audit Policy Disabled via Auditpol
2+
id: 14e008e5-6723-4298-b0d4-e95b24e10c18
3+
version: 1
4+
date: '2025-01-27'
5+
author: Nasreddine Bencherchali, Splunk
6+
status: production
7+
type: Anomaly
8+
description: The following analytic identifies the execution of `auditpol.exe` with the "/set" command-line argument in order to disable a specific category or sub-category from the audit policy. It leverages data from Endpoint Detection and Response (EDR) agents, focusing on process names and command-line executions. This activity can be significant as it indicates potential defense evasion by adversaries or Red Teams, aiming to limit data that can be leveraged for detections and audits. If confirmed malicious, this behavior could allow attackers to bypass defenses, and plan further attacks, potentially leading to full machine compromise or lateral movement.
9+
data_source:
10+
- Sysmon EventID 1
11+
- Windows Event Log Security 4688
12+
- CrowdStrike ProcessRollup2
13+
search: '| tstats `security_content_summariesonly` values(Processes.process) as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where `process_auditpol` Processes.process="*/set*" Processes.process IN ("*/success:*", "*/failure:*") Processes.process="*disable*" AND NOT Processes.process IN ("*/?*", "*/exclude*") by Processes.dest Processes.user Processes.parent_process Processes.parent_process_name Processes.process_name Processes.original_file_name Processes.process Processes.process_id Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_audit_policy_disabled_via_auditpol_filter`'
14+
how_to_implement: The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the process name, and process original file name. Additionally, you must ingest complete command-line executions. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process.
15+
known_false_positives: False positives should be rare, investigate the activity, and apply additional filters when necessary.
16+
references:
17+
- https://www.microsoft.com/en-us/security/blog/2021/01/20/deep-dive-into-the-solorigate-second-stage-activation-from-sunburst-to-teardrop-and-raindrop/
18+
- https://www.cybereason.com/blog/research/prometei-botnet-exploiting-microsoft-exchange-vulnerabilities
19+
- https://attack.mitre.org/techniques/T1562/002/
20+
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/auditpol-set
21+
drilldown_searches:
22+
- name: View the detection results for - "$user$" and "$dest$"
23+
search: '%original_detection_search% | search user = "$user$" dest = "$dest$"'
24+
earliest_offset: $info_min_time$
25+
latest_offset: $info_max_time$
26+
- name: View risk events for the last 7 days for - "$user$" and "$dest$"
27+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$",
28+
"$dest$") starthoursago=168 | stats count min(_time) as firstTime max(_time)
29+
as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk
30+
Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
31+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
32+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
33+
earliest_offset: $info_min_time$
34+
latest_offset: $info_max_time$
35+
rba:
36+
message: An instance of $parent_process_name$ spawning $process_name$ with CommandLine $process$ was identified attempting to disable and audit policy category/sub-category on $dest$ by user $user$.
37+
risk_objects:
38+
- field: user
39+
type: user
40+
score: 25
41+
- field: dest
42+
type: system
43+
score: 25
44+
threat_objects:
45+
- field: process_name
46+
type: process_name
47+
tags:
48+
analytic_story:
49+
- Windows Audit Policy Tampering
50+
asset_type: Endpoint
51+
mitre_attack_id:
52+
- T1562.002
53+
product:
54+
- Splunk Enterprise
55+
- Splunk Enterprise Security
56+
- Splunk Cloud
57+
security_domain: endpoint
58+
tests:
59+
- name: True Positive Test - Sysmon
60+
attack_data:
61+
- data:
62+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1562.002/auditpol_tampering/auditpol_tampering_sysmon.log
63+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
64+
sourcetype: XmlWinEventLog

0 commit comments

Comments
 (0)