Skip to content

Commit 6f1d3e6

Browse files
committed
Create windows_audit_policy_disabled_via_legacy_auditpol.yml
1 parent ae708a0 commit 6f1d3e6

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
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 Legacy Auditpol
2+
id: d2cef287-c2b7-4496-a609-7a548c1e27f9
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 the legacy `auditpol.exe` included with the Windows 2000 Resource Kit Tools, with the "/disable" command-line argument or one of the allowed category flags and the "none" option, in order to disable a specific logging 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="*/disable") OR Processes.process IN ("*/system:none*", "*/logon:none*", "*/object:none*", "*/privilege:none*", "*/process:none*", "*/policy:none*", "*/sam:none*") 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_legacy_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)