Skip to content

Commit 5546177

Browse files
authored
Merge branch 'develop' into small-tuning
2 parents 1dc4f1c + 700667b commit 5546177

7 files changed

Lines changed: 191 additions & 95 deletions
Lines changed: 45 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
name: Excessive number of taskhost processes
22
id: f443dac2-c7cf-11eb-ab51-acde48001122
3-
version: 7
4-
date: '2024-11-13'
3+
version: 8
4+
date: '2025-04-25'
55
author: Michael Hart
66
status: production
77
type: Anomaly
8-
description: The following analytic identifies an excessive number of taskhost.exe
8+
description:
9+
The following analytic identifies an excessive number of taskhost.exe
910
and taskhostex.exe processes running within a short time frame. It leverages data
1011
from Endpoint Detection and Response (EDR) agents, focusing on process names and
1112
their counts. This behavior is significant as it is commonly associated with post-exploitation
@@ -14,10 +15,11 @@ description: The following analytic identifies an excessive number of taskhost.e
1415
activity could indicate an ongoing attack, allowing attackers to execute code, escalate
1516
privileges, or move laterally within the network.
1617
data_source:
17-
- Sysmon EventID 1
18-
- Windows Event Log Security 4688
19-
- CrowdStrike ProcessRollup2
20-
search: '| tstats `security_content_summariesonly` values(Processes.action) as action
18+
- Sysmon EventID 1
19+
- Windows Event Log Security 4688
20+
- CrowdStrike ProcessRollup2
21+
search:
22+
'| tstats `security_content_summariesonly` values(Processes.action) as action
2123
values(Processes.original_file_name) as original_file_name values(Processes.parent_process)
2224
as parent_process values(Processes.parent_process_exec) as parent_process_exec values(Processes.parent_process_guid)
2325
as parent_process_guid values(Processes.parent_process_id) as parent_process_id
@@ -41,9 +43,11 @@ search: '| tstats `security_content_summariesonly` values(Processes.action) as a
4143
values(process_hash) as process_hash values(process_id) as process_id values(process_integrity_level)
4244
as process_integrity_level values(user) as user values(process_path) as process_path
4345
values(user_id) as user_id values(vendor_product) as vendor_product values(process_name)
44-
as process_name by _time, dest, firstTime, lastTime | `security_content_ctime(firstTime)`
46+
as process_name by _time, dest, firstTime, lastTime | where taskhost_count >
47+
10 or taskhostex_count > 10 | `security_content_ctime(firstTime)`
4548
| `security_content_ctime(lastTime)` | `excessive_number_of_taskhost_processes_filter`'
46-
how_to_implement: The detection is based on data that originates from Endpoint Detection
49+
how_to_implement:
50+
The detection is based on data that originates from Endpoint Detection
4751
and Response (EDR) agents. These agents are designed to provide security-related
4852
telemetry from the endpoints where the agent is installed. To implement this search,
4953
you must ingest logs that contain the process GUID, process name, and parent process.
@@ -52,46 +56,49 @@ how_to_implement: The detection is based on data that originates from Endpoint D
5256
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
5357
data model. Use the Splunk Common Information Model (CIM) to normalize the field
5458
names and speed up the data modeling process.
55-
known_false_positives: Administrators, administrative actions or certain applications
59+
known_false_positives:
60+
Administrators, administrative actions or certain applications
5661
may run many instances of taskhost and taskhostex concurrently. Filter as needed.
5762
references:
58-
- https://attack.mitre.org/software/S0250/
63+
- https://attack.mitre.org/software/S0250/
5964
drilldown_searches:
60-
- name: View the detection results for - "$dest$"
61-
search: '%original_detection_search% | search dest = "$dest$"'
62-
earliest_offset: $info_min_time$
63-
latest_offset: $info_max_time$
64-
- name: View risk events for the last 7 days for - "$dest$"
65-
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
66-
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
67-
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
68-
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
69-
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
70-
| `security_content_ctime(lastTime)`'
71-
earliest_offset: $info_min_time$
72-
latest_offset: $info_max_time$
65+
- name: View the detection results for - "$dest$"
66+
search: '%original_detection_search% | search dest = "$dest$"'
67+
earliest_offset: $info_min_time$
68+
latest_offset: $info_max_time$
69+
- name: View risk events for the last 7 days for - "$dest$"
70+
search:
71+
'| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
72+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
73+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
74+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
75+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
76+
| `security_content_ctime(lastTime)`'
77+
earliest_offset: $info_min_time$
78+
latest_offset: $info_max_time$
7379
rba:
74-
message: An excessive amount of taskhost.exe and taskhostex.exe was executed on
80+
message:
81+
An excessive amount of taskhost.exe and taskhostex.exe was executed on
7582
$dest$ indicative of suspicious behavior.
7683
risk_objects:
77-
- field: dest
78-
type: system
79-
score: 56
84+
- field: dest
85+
type: system
86+
score: 56
8087
threat_objects: []
8188
tags:
8289
analytic_story:
83-
- Meterpreter
90+
- Meterpreter
8491
asset_type: Endpoint
8592
mitre_attack_id:
86-
- T1059
93+
- T1059
8794
product:
88-
- Splunk Enterprise
89-
- Splunk Enterprise Security
90-
- Splunk Cloud
95+
- Splunk Enterprise
96+
- Splunk Enterprise Security
97+
- Splunk Cloud
9198
security_domain: endpoint
9299
tests:
93-
- name: True Positive Test
94-
attack_data:
95-
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1059/excessive_distinct_processes_from_windows_temp/windows-xml.log
96-
source: XmlWinEventLog:Security
97-
sourcetype: XmlWinEventLog
100+
- name: True Positive Test
101+
attack_data:
102+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1059/excessive_distinct_processes_from_windows_temp/windows-xml.log
103+
source: XmlWinEventLog:Security
104+
sourcetype: XmlWinEventLog

detections/endpoint/java_writing_jsp_file.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Java Writing JSP File
22
id: eb65619c-4f8d-4383-a975-d352765d344b
3-
version: 8
4-
date: '2025-04-22'
3+
version: 9
4+
date: '2025-04-28'
55
author: Michael Haag, Splunk
66
status: production
77
type: TTP
@@ -72,6 +72,7 @@ tags:
7272
- Spring4Shell CVE-2022-22965
7373
- Atlassian Confluence Server and Data Center CVE-2022-26134
7474
- SysAid On-Prem Software CVE-2023-47246 Vulnerability
75+
- SAP NetWeaver Exploitation
7576
asset_type: Endpoint
7677
cve:
7778
- CVE-2022-22965
Lines changed: 57 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
name: Windows AdFind Exe
22
id: bd3b0187-189b-46c0-be45-f52da2bae67f
3-
version: 8
4-
date: '2024-11-13'
3+
version: 9
4+
date: '2025-04-24'
55
author: Jose Hernandez, Bhavin Patel, Splunk
66
status: production
77
type: TTP
8-
description: The following analytic identifies the execution of `adfind.exe` with
8+
description:
9+
The following analytic identifies the execution of `adfind.exe` with
910
specific command-line arguments related to Active Directory queries. It leverages
1011
data from Endpoint Detection and Response (EDR) agents, focusing on process names,
1112
command-line arguments, and parent processes. This activity is significant because
@@ -14,10 +15,11 @@ description: The following analytic identifies the execution of `adfind.exe` wit
1415
allow attackers to map the AD environment, facilitating further attacks such as
1516
privilege escalation or lateral movement.
1617
data_source:
17-
- Sysmon EventID 1
18-
- Windows Event Log Security 4688
19-
- CrowdStrike ProcessRollup2
20-
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
18+
- Sysmon EventID 1
19+
- Windows Event Log Security 4688
20+
- CrowdStrike ProcessRollup2
21+
search:
22+
'| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
2123
as lastTime from datamodel=Endpoint.Processes where ((Processes.process="* -f *"
2224
OR Processes.process="* -b *") AND (Processes.process=*objectcategory* OR Processes.process="*-gcb
2325
*" OR Processes.process="* -sc *" )) OR ((Processes.process="*trustdmp*" OR Processes.process="*dclist*"))
@@ -27,8 +29,9 @@ search: '| tstats `security_content_summariesonly` count min(_time) as firstTime
2729
Processes.process_guid Processes.process_hash Processes.process_id Processes.process_integrity_level
2830
Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product
2931
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
30-
| `windows_adfind_exe_filter`| `windows_adfind_exe_filter`'
31-
how_to_implement: The detection is based on data that originates from Endpoint Detection
32+
| `windows_adfind_exe_filter`'
33+
how_to_implement:
34+
The detection is based on data that originates from Endpoint Detection
3235
and Response (EDR) agents. These agents are designed to provide security-related
3336
telemetry from the endpoints where the agent is installed. To implement this search,
3437
you must ingest logs that contain the process GUID, process name, and parent process.
@@ -37,61 +40,64 @@ how_to_implement: The detection is based on data that originates from Endpoint D
3740
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
3841
data model. Use the Splunk Common Information Model (CIM) to normalize the field
3942
names and speed up the data modeling process.
40-
known_false_positives: ADfind is a command-line tool for AD administration and management
43+
known_false_positives:
44+
ADfind is a command-line tool for AD administration and management
4145
that is seen to be leveraged by various adversaries. Filter out legitimate administrator
4246
usage using the filter macro.
4347
references:
44-
- https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/
45-
- https://www.mandiant.com/resources/a-nasty-trick-from-credential-theft-malware-to-business-disruption
46-
- https://www.joeware.net/freetools/tools/adfind/index.htm
47-
- https://thedfirreport.com/2023/05/22/icedid-macro-ends-in-nokoyawa-ransomware/
48+
- https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/
49+
- https://www.mandiant.com/resources/a-nasty-trick-from-credential-theft-malware-to-business-disruption
50+
- https://www.joeware.net/freetools/tools/adfind/index.htm
51+
- https://thedfirreport.com/2023/05/22/icedid-macro-ends-in-nokoyawa-ransomware/
4852
drilldown_searches:
49-
- name: View the detection results for - "$user$"
50-
search: '%original_detection_search% | search user = "$user$"'
51-
earliest_offset: $info_min_time$
52-
latest_offset: $info_max_time$
53-
- name: View risk events for the last 7 days for - "$user$"
54-
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$")
55-
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
56-
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
57-
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
58-
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
59-
| `security_content_ctime(lastTime)`'
60-
earliest_offset: $info_min_time$
61-
latest_offset: $info_max_time$
53+
- name: View the detection results for - "$user$"
54+
search: '%original_detection_search% | search user = "$user$"'
55+
earliest_offset: $info_min_time$
56+
latest_offset: $info_max_time$
57+
- name: View risk events for the last 7 days for - "$user$"
58+
search:
59+
'| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$")
60+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
61+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
62+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
63+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
64+
| `security_content_ctime(lastTime)`'
65+
earliest_offset: $info_min_time$
66+
latest_offset: $info_max_time$
6267
rba:
63-
message: Windows AdFind Exe detected with command-line arguments associated with
68+
message:
69+
Windows AdFind Exe detected with command-line arguments associated with
6470
Active Directory queries on machine - [dest]
6571
risk_objects:
66-
- field: user
67-
type: user
68-
score: 25
72+
- field: user
73+
type: user
74+
score: 25
6975
threat_objects: []
7076
tags:
7177
analytic_story:
72-
- Domain Trust Discovery
73-
- IcedID
74-
- NOBELIUM Group
75-
- Graceful Wipe Out Attack
76-
- BlackSuit Ransomware
78+
- Domain Trust Discovery
79+
- IcedID
80+
- NOBELIUM Group
81+
- Graceful Wipe Out Attack
82+
- BlackSuit Ransomware
7783
asset_type: Endpoint
7884
atomic_guid:
79-
- 736b4f53-f400-4c22-855d-1a6b5a551600
80-
- b95fd967-4e62-4109-b48d-265edfd28c3a
81-
- e1ec8d20-509a-4b9a-b820-06c9b2da8eb7
82-
- 5e2938fb-f919-47b6-8b29-2f6a1f718e99
83-
- abf00f6c-9983-4d9a-afbc-6b1c6c6448e1
84-
- 51a98f96-0269-4e09-a10f-e307779a8b05
85+
- 736b4f53-f400-4c22-855d-1a6b5a551600
86+
- b95fd967-4e62-4109-b48d-265edfd28c3a
87+
- e1ec8d20-509a-4b9a-b820-06c9b2da8eb7
88+
- 5e2938fb-f919-47b6-8b29-2f6a1f718e99
89+
- abf00f6c-9983-4d9a-afbc-6b1c6c6448e1
90+
- 51a98f96-0269-4e09-a10f-e307779a8b05
8591
mitre_attack_id:
86-
- T1018
92+
- T1018
8793
product:
88-
- Splunk Enterprise
89-
- Splunk Enterprise Security
90-
- Splunk Cloud
94+
- Splunk Enterprise
95+
- Splunk Enterprise Security
96+
- Splunk Cloud
9197
security_domain: endpoint
9298
tests:
93-
- name: True Positive Test
94-
attack_data:
95-
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1018/atomic_red_team/windows-sysmon.log
96-
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
97-
sourcetype: XmlWinEventLog
99+
- name: True Positive Test
100+
attack_data:
101+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1018/atomic_red_team/windows-sysmon.log
102+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
103+
sourcetype: XmlWinEventLog

detections/endpoint/windows_java_spawning_shells.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Windows Java Spawning Shells
22
id: 28c81306-5c47-11ec-bfea-acde48001122
3-
version: 9
4-
date: '2024-12-16'
3+
version: 10
4+
date: '2025-04-28'
55
author: Michael Haag, Splunk
66
status: experimental
77
type: TTP
@@ -61,6 +61,7 @@ tags:
6161
- Log4Shell CVE-2021-44228
6262
- SysAid On-Prem Software CVE-2023-47246 Vulnerability
6363
- Cleo File Transfer Software
64+
- SAP NetWeaver Exploitation
6465
asset_type: Endpoint
6566
cve:
6667
- CVE-2021-44228

detections/endpoint/windows_process_injection_into_commonly_abused_processes.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Windows Process Injection into Commonly Abused Processes
22
id: 1e1dedc6-f6f3-41a0-9dd7-a1245904fe75
3-
version: 2
4-
date: '2025-04-16'
3+
version: 3
4+
date: '2025-04-28'
55
author: 0xC0FFEEEE, Github Community
66
type: Anomaly
77
status: production
@@ -70,6 +70,7 @@ tags:
7070
analytic_story:
7171
- BishopFox Sliver Adversary Emulation Framework
7272
- Earth Alux
73+
- SAP NetWeaver Exploitation
7374
asset_type: Endpoint
7475
mitre_attack_id:
7576
- T1055.002
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: SAP NetWeaver Visual Composer Exploitation Attempt
2+
id: a583b9f1-9c3a-4402-9441-b981654dea6c
3+
version: 1
4+
date: '2025-04-28'
5+
author: Michael Haag, Splunk
6+
status: production
7+
type: Hunting
8+
description: |
9+
Detects potential exploitation attempts targeting CVE-2025-31324, a critical unauthenticated file upload vulnerability in SAP NetWeaver Visual Composer. This flaw allows remote attackers to send specially crafted POST requests to the /developmentserver/metadatauploader endpoint, enabling arbitrary file uploads—commonly webshells—resulting in full system compromise. The detection looks for HTTP HEAD or POST requests with a 200 OK status to sensitive Visual Composer endpoints, which may indicate reconnaissance or active exploitation. Successful exploitation can lead to attackers gaining privileged access, deploying malware, and impacting business-critical SAP resources. Immediate patching and investigation of suspicious activity are strongly recommended, as this vulnerability is being actively exploited in the wild.
10+
data_source:
11+
- Suricata
12+
search: '| tstats count min(_time) as firstTime max(_time) as lastTime
13+
from datamodel=Web.Web
14+
where (Web.url IN ("/CTCWebService/CTCWebServiceBean", "/VisualComposer/services/DesignTimeService", "/ctc/CTCWebService/CTCWebServiceBean"))
15+
AND Web.http_method IN ("HEAD", "POST")
16+
AND Web.status=200
17+
by Web.src, Web.dest, Web.http_method, Web.url, Web.http_user_agent, Web.url_length, sourcetype
18+
| `drop_dm_object_name("Web")`
19+
| eval action=case(http_method="HEAD", "Recon/Probe", http_method="POST", "Possible Exploitation")
20+
| `security_content_ctime(firstTime)`
21+
| `security_content_ctime(lastTime)`
22+
| table firstTime, lastTime, src, dest, http_method, action, url, user_agent, url_length, sourcetype
23+
| `sap_netweaver_visual_composer_exploitation_attempt_filter`'
24+
how_to_implement: |
25+
Ensure that the Web data model is accelerated and populated with web server or web proxy logs capturing HTTP request and response data.
26+
This search relies on HTTP method, status code, and URL path fields to identify suspicious access patterns against SAP NetWeaver endpoints.
27+
known_false_positives: |
28+
Some legitimate administrative activity may access SAP NetWeaver services. However, HEAD or POST requests directly resulting in a 200 OK
29+
to Visual Composer endpoints are uncommon and should be investigated carefully.
30+
references:
31+
- https://onapsis.com/blog/active-exploitation-of-sap-vulnerability-cve-2025-31324/
32+
- https://reliaquest.com/blog/threat-spotlight-reliaquest-uncovers-vulnerability-behind-sap-netweaver-compromise/
33+
- https://www.rapid7.com/blog/post/2025/04/28/etr-active-exploitation-of-sap-netweaver-visual-composer-cve-2025-31324/
34+
tags:
35+
analytic_story:
36+
- SAP NetWeaver Exploitation
37+
asset_type: Web Server
38+
mitre_attack_id:
39+
- T1190
40+
product:
41+
- Splunk Enterprise
42+
- Splunk Enterprise Security
43+
- Splunk Cloud
44+
security_domain: network
45+
cve:
46+
- CVE-2025-31324
47+
tests:
48+
- name: True Positive Test
49+
attack_data:
50+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1190/sap/suricata_sapnetweaver.log
51+
sourcetype: suricata
52+
source: suricata

0 commit comments

Comments
 (0)