Skip to content

Commit 9c8742b

Browse files
authored
Merge branch 'develop' into objectivity_stealer
2 parents 3a00645 + 0cff5fb commit 9c8742b

9 files changed

+273
-116
lines changed

detections/endpoint/windows_access_token_manipulation_sedebugprivilege.yml

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
name: Windows Access Token Manipulation SeDebugPrivilege
22
id: 6ece9ed0-5f92-4315-889d-48560472b188
3-
version: 14
4-
date: '2025-05-02'
3+
version: 15
4+
date: '2025-08-20'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: Anomaly
8-
description: The following analytic detects a process enabling the "SeDebugPrivilege"
9-
privilege token. It leverages Windows Security Event Logs with EventCode 4703, filtering
10-
out common legitimate processes. This activity is significant because SeDebugPrivilege
11-
allows a process to inspect and modify the memory of other processes, potentially
12-
leading to credential dumping or code injection. If confirmed malicious, an attacker
13-
could gain extensive control over system processes, enabling them to escalate privileges,
14-
persist in the environment, or access sensitive information.
8+
description: The following analytic detects a process enabling the
9+
"SeDebugPrivilege" privilege token. It leverages Windows Security Event Logs
10+
with EventCode 4703, filtering out common legitimate processes. This activity
11+
is significant because SeDebugPrivilege allows a process to inspect and modify
12+
the memory of other processes, potentially leading to credential dumping or
13+
code injection. If confirmed malicious, an attacker could gain extensive
14+
control over system processes, enabling them to escalate privileges, persist
15+
in the environment, or access sensitive information.
1516
data_source:
1617
- Windows Event Log Security 4703
1718
search: '`wineventlog_security` EventCode=4703 EnabledPrivilegeList = "*SeDebugPrivilege*"
@@ -21,11 +22,11 @@ search: '`wineventlog_security` EventCode=4703 EnabledPrivilegeList = "*SeDebugP
2122
SubjectUserName SubjectUserSid TargetUserName TargetLogonId TargetDomainName EnabledPrivilegeList
2223
action dest | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
2324
| `windows_access_token_manipulation_sedebugprivilege_filter`'
24-
how_to_implement: To successfully implement this search, you need to be ingesting
25-
Windows Security Event Logs with 4703 EventCode enabled. The Windows TA is also
26-
required.
27-
known_false_positives: Some native binaries and browser applications may request SeDebugPrivilege.
28-
Filter as needed.
25+
how_to_implement: To successfully implement this search, you need to be
26+
ingesting Windows Security Event Logs with 4703 EventCode enabled. The Windows
27+
TA is also required.
28+
known_false_positives: Some native binaries and browser applications may request
29+
SeDebugPrivilege. Filter as needed.
2930
references:
3031
- https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4703
3132
- https://devblogs.microsoft.com/oldnewthing/20080314-00/?p=23113
@@ -47,8 +48,8 @@ drilldown_searches:
4748
earliest_offset: $info_min_time$
4849
latest_offset: $info_max_time$
4950
rba:
50-
message: A process $ProcessName$ adjust its privileges with SeDebugPrivilege on
51-
$Computer$.
51+
message: A process $ProcessName$ adjust its privileges with SeDebugPrivilege
52+
on $Computer$.
5253
risk_objects:
5354
- field: Computer
5455
type: system
@@ -68,6 +69,7 @@ tags:
6869
- DarkGate Malware
6970
- ValleyRAT
7071
- Brute Ratel C4
72+
- PathWiper
7173
asset_type: Endpoint
7274
mitre_attack_id:
7375
- T1134.002
@@ -79,6 +81,7 @@ tags:
7981
tests:
8082
- name: True Positive Test
8183
attack_data:
82-
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/brute_ratel/sedebugprivilege_token/security-xml.log
84+
- data:
85+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/brute_ratel/sedebugprivilege_token/security-xml.log
8386
source: XmlWinEventLog:Security
8487
sourcetype: XmlWinEventLog

detections/endpoint/windows_access_token_winlogon_duplicate_handle_in_uncommon_path.yml

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
name: Windows Access Token Winlogon Duplicate Handle In Uncommon Path
22
id: b8f7ed6b-0556-4c84-bffd-839c262b0278
3-
version: 8
4-
date: '2025-05-02'
3+
version: 9
4+
date: '2025-08-20'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: Anomaly
8-
description: The following analytic detects a process attempting to duplicate the
9-
handle of winlogon.exe from an uncommon or public source path. This is identified
10-
using Sysmon EventCode 10, focusing on processes targeting winlogon.exe with specific
11-
access rights and excluding common system paths. This activity is significant because
12-
it may indicate an adversary trying to escalate privileges by leveraging the high-privilege
13-
tokens associated with winlogon.exe. If confirmed malicious, this could allow the
14-
attacker to gain elevated access, potentially leading to full system compromise
15-
and persistent control over the affected host.
8+
description: The following analytic detects a process attempting to duplicate
9+
the handle of winlogon.exe from an uncommon or public source path. This is
10+
identified using Sysmon EventCode 10, focusing on processes targeting
11+
winlogon.exe with specific access rights and excluding common system paths.
12+
This activity is significant because it may indicate an adversary trying to
13+
escalate privileges by leveraging the high-privilege tokens associated with
14+
winlogon.exe. If confirmed malicious, this could allow the attacker to gain
15+
elevated access, potentially leading to full system compromise and persistent
16+
control over the affected host.
1617
data_source:
1718
- Sysmon EventID 10
1819
search: '`sysmon` EventCode=10 TargetImage IN("*\\system32\\winlogon.exe*", "*\\SysWOW64\\winlogon.exe*")
@@ -24,12 +25,12 @@ search: '`sysmon` EventCode=10 TargetImage IN("*\\system32\\winlogon.exe*", "*\
2425
parent_process_name parent_process_path process_exec process_guid process_id process_name
2526
process_path signature signature_id user_id vendor_product | `security_content_ctime(firstTime)`
2627
| `security_content_ctime(lastTime)` | `windows_access_token_winlogon_duplicate_handle_in_uncommon_path_filter`'
27-
how_to_implement: To successfully implement this search, you must be ingesting data
28-
that records process activity from your hosts to populate the endpoint data model
29-
in the processes node. If you are using Sysmon, you must have at least version 6.0.4
30-
of the Sysmon TA.
31-
known_false_positives: It is possible legitimate applications will request access
32-
to winlogon, filter as needed.
28+
how_to_implement: To successfully implement this search, you must be ingesting
29+
data that records process activity from your hosts to populate the endpoint
30+
data model in the processes node. If you are using Sysmon, you must have at
31+
least version 6.0.4 of the Sysmon TA.
32+
known_false_positives: It is possible legitimate applications will request
33+
access to winlogon, filter as needed.
3334
references:
3435
- https://docs.microsoft.com/en-us/windows/win32/api/handleapi/nf-handleapi-duplicatehandle
3536
- https://attack.mitre.org/techniques/T1134/001/
@@ -48,8 +49,8 @@ drilldown_searches:
4849
earliest_offset: $info_min_time$
4950
latest_offset: $info_max_time$
5051
rba:
51-
message: A process $SourceImage$ is duplicating the handle token of winlogon.exe
52-
on $dest$
52+
message: A process $SourceImage$ is duplicating the handle token of
53+
winlogon.exe on $dest$
5354
risk_objects:
5455
- field: dest
5556
type: system
@@ -60,6 +61,7 @@ rba:
6061
tags:
6162
analytic_story:
6263
- Brute Ratel C4
64+
- PathWiper
6365
asset_type: Endpoint
6466
mitre_attack_id:
6567
- T1134.001
@@ -71,6 +73,7 @@ tags:
7173
tests:
7274
- name: True Positive Test
7375
attack_data:
74-
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/brute_ratel/brute_duplicate_token/sysmon.log
76+
- data:
77+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/brute_ratel/brute_duplicate_token/sysmon.log
7578
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
7679
sourcetype: XmlWinEventLog
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Windows DLL Module Loaded in Temp Dir
2+
id: c2998141-235a-4e31-83cf-46afb5208a87
3+
version: 1
4+
date: '2025-08-20'
5+
author: Teoderick Contreras, Splunk
6+
status: production
7+
type: Hunting
8+
description: The following analytic detects instances where a Dynamic Link Library (DLL) is loaded from a temporary directory on a Windows system. Loading DLLs from non-standard paths such as %TEMP% is uncommon for legitimate applications and is often associated with adversary tradecraft, including DLL search order hijacking, side-loading, or execution of malicious payloads staged in temporary folders. Adversaries frequently leverage these directories because they are writable by standard users and often overlooked by security controls, making them convenient locations to drop and execute malicious files. This behavior may indicate attempts to evade detection, execute unauthorized code, or maintain persistence through hijacked execution flows. Detection of DLL loads from %TEMP% can help surface early signs of compromise and should be investigated in the context of the originating process, user account, and potential file creation or modification activity within the same directory.
9+
data_source:
10+
- Sysmon EventID 7
11+
search: '`sysmon` EventCode=7 NOT (ImageLoaded IN("C:\\Program Files*")) AND ImageLoaded="*\\temp\\*" AND ImageLoaded="*.dll"
12+
| fillnull
13+
| stats count min(_time) as firstTime max(_time) as lastTime
14+
by Image ImageLoaded dest loaded_file loaded_file_path original_file_name
15+
process_exec process_guid process_hash process_id process_name process_path service_dll_signature_exists
16+
service_dll_signature_verified signature signature_id user_id vendor_product
17+
| `security_content_ctime(firstTime)`
18+
| `security_content_ctime(lastTime)`
19+
| `windows_dll_module_loaded_in_temp_dir_filter`'
20+
how_to_implement: To successfully implement this search, you need to be ingesting
21+
logs with the process name and imageloaded executions from your endpoints. If you
22+
are using Sysmon, you must have at least version 6.0.4 of the Sysmon TA.
23+
known_false_positives: unknown
24+
references:
25+
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa25-203a
26+
- https://blog.sekoia.io/interlock-ransomware-evolving-under-the-radar/
27+
tags:
28+
analytic_story:
29+
- Interlock Rat
30+
asset_type: Endpoint
31+
mitre_attack_id:
32+
- T1105
33+
product:
34+
- Splunk Enterprise
35+
- Splunk Enterprise Security
36+
- Splunk Cloud
37+
security_domain: endpoint
38+
tests:
39+
- name: True Positive Test
40+
attack_data:
41+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1105/dll_loaded_in_temp/module_loaded_in_temp.log
42+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
43+
sourcetype: XmlWinEventLog
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Windows Excel ActiveMicrosoftApp Child Process
2+
id: 4dfd6a58-93b2-4012-bb33-038bb63652b3
3+
version: 1
4+
date: '2025-08-20'
5+
author: Teoderick Contreras, Splunk
6+
status: production
7+
type: Anomaly
8+
description: The following analytic identifies the execution of the ActiveMicrosoftApp process as a child of Microsoft Excel. Under normal conditions, Excel primarily spawns internal Office-related processes, and the creation of ActiveMicrosoftApp is uncommon in day-to-day business workflows. Adversaries may abuse this behavior to blend malicious activity within trusted applications, execute unauthorized code, or bypass application control mechanisms. This technique aligns with common tradecraft where Office applications are leveraged as initial access or execution vectors due to their prevalence in enterprise environments. Detecting this relationship helps defenders spot suspicious child processes that may indicate malware execution, persistence mechanisms, or attempts to establish command-and-control. Security teams should investigate the parent Excel process, the context of the ActiveMicrosoftApp execution, and any subsequent network or file activity. While certain legitimate Office features could trigger this process in specific environments, its occurrence generally warrants further scrutiny to validate intent and rule out compromise.
9+
data_source:
10+
- Sysmon EventID 1
11+
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
12+
where Processes.parent_process_name = "EXCEL.EXE" Processes.process_name IN ("WINPROJ.EXE", "FOXPROW.exe","SCHDPLUS.exe")
13+
by Processes.action Processes.dest Processes.original_file_name Processes.parent_process
14+
Processes.parent_process_exec Processes.parent_process_guid Processes.parent_process_id
15+
Processes.parent_process_name Processes.parent_process_path Processes.process Processes.process_exec
16+
Processes.process_guid Processes.process_hash Processes.process_id Processes.process_integrity_level
17+
Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product
18+
| `drop_dm_object_name(Processes)`
19+
| `security_content_ctime(firstTime)`
20+
| `security_content_ctime(lastTime)`
21+
| `windows_excel_activemicrosoftapp_child_process_filter`'
22+
how_to_implement: The detection is based on data that originates from Endpoint Detection
23+
and Response (EDR) agents. These agents are designed to provide security-related
24+
telemetry from the endpoints where the agent is installed. To implement this search,
25+
you must ingest logs that contain the process GUID, process name, and parent process.
26+
Additionally, you must ingest complete command-line executions. These logs must
27+
be processed using the appropriate Splunk Technology Add-ons that are specific to
28+
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
29+
data model. Use the Splunk Common Information Model (CIM) to normalize the field
30+
names and speed up the data modeling process.
31+
known_false_positives: Microsoft Project has been discontinued since January 2010, so its presence is unlikely in modern environments. If a related child process is observed, verify its legitimacy to rule out potential misuse.
32+
references:
33+
- https://specterops.io/blog/2023/10/30/lateral-movement-abuse-the-power-of-dcom-excel-application/
34+
- https://blog.talosintelligence.com/pathwiper-targets-ukraine/
35+
- https://www.trellix.com/blogs/research/dcom-abuse-and-network-erasure-with-trellix-ndr/
36+
drilldown_searches:
37+
- name: View the detection results for - "$dest$" and "$user$"
38+
search: '%original_detection_search% | search dest = "$dest$" user = "$user$"'
39+
earliest_offset: $info_min_time$
40+
latest_offset: $info_max_time$
41+
- name: View risk events for the last 7 days for - "$dest$" and "$user$"
42+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$",
43+
"$user$") starthoursago=168 | stats count min(_time) as firstTime max(_time)
44+
as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk
45+
Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
46+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
47+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
48+
earliest_offset: $info_min_time$
49+
latest_offset: $info_max_time$
50+
rba:
51+
message: Risk Message goes here
52+
risk_objects:
53+
- field: dest
54+
type: system
55+
score: 10
56+
threat_objects:
57+
- field: parent_process_name
58+
type: parent_process_name
59+
tags:
60+
analytic_story:
61+
- PathWiper
62+
asset_type: Endpoint
63+
mitre_attack_id:
64+
- T1021.003
65+
product:
66+
- Splunk Enterprise
67+
- Splunk Enterprise Security
68+
- Splunk Cloud
69+
security_domain: endpoint
70+
tests:
71+
- name: True Positive Test
72+
attack_data:
73+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1021.003/excel_activemicrosoftapp/sysmon_winprojexe.log
74+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
75+
sourcetype: XmlWinEventLog

0 commit comments

Comments
 (0)