Skip to content

Commit a26bfc0

Browse files
authored
Merge pull request #3377 from splunk/small-tuning
Analytic Updates & Tunings
2 parents 700667b + a7f0e38 commit a26bfc0

15 files changed

Lines changed: 282 additions & 76 deletions

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
name: CertUtil Download With URLCache and Split Arguments
22
id: 415b4306-8bfb-11eb-85c4-acde48001122
3-
version: 12
4-
date: '2025-04-16'
3+
version: 13
4+
date: '2025-04-24'
55
author: Michael Haag, Splunk
6-
status: production
6+
status: deprecated
77
type: TTP
8-
description: The following analytic detects the use of certutil.exe to download files
8+
description: This analytic has been deprecated in favor of "Windows CertUtil Download".
9+
The following analytic detects the use of certutil.exe to download files
910
using the `-urlcache` and `-f` arguments. It leverages Endpoint Detection and Response
1011
(EDR) data, focusing on command-line executions that include these specific arguments.
1112
This activity is significant because certutil.exe is typically used for certificate

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
name: CertUtil Download With VerifyCtl and Split Arguments
22
id: 801ad9e4-8bfb-11eb-8b31-acde48001122
3-
version: 12
4-
date: '2025-04-16'
3+
version: 13
4+
date: '2025-04-24'
55
author: Michael Haag, Splunk
6-
status: production
6+
status: deprecated
77
type: TTP
8-
description: The following analytic detects the use of `certutil.exe` to download
8+
description: This analytic has been deprecated in favor of "Windows CertUtil Download".
9+
The following analytic detects the use of `certutil.exe` to download
910
files using the `-VerifyCtl` and `-f` arguments. This behavior is identified by
1011
monitoring command-line executions for these specific arguments via Endpoint Detection
1112
and Response (EDR) telemetry. This activity is significant because `certutil.exe`

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
name: Windows CertUtil Download With URL Argument
22
id: 4fc5ca00-4c7c-46b3-8772-c98a4b8bd944
3-
version: 5
4-
date: '2025-04-16'
3+
version: 6
4+
date: '2025-04-24'
55
author: Nasreddine Bencherchali, Splunk
6-
status: production
6+
status: deprecated
77
type: TTP
8-
description: The following analytic detects the use of `certutil.exe` to download
8+
description: This analytic has been deprecated in favor of "Windows CertUtil Download".
9+
The following analytic detects the use of `certutil.exe` to download
910
files using the `-URL` arguments. This behavior is identified by monitoring command-line
1011
executions for these specific arguments via Endpoint Detection and Response (EDR)
1112
telemetry. This activity is significant because `certutil.exe` is a legitimate tool

detections/endpoint/chcp_command_execution.yml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
name: CHCP Command Execution
22
id: 21d236ec-eec1-11eb-b23e-acde48001122
3-
version: 6
4-
date: '2025-02-19'
3+
version: 7
4+
date: '2025-04-24'
55
author: Teoderick Contreras, Splunk
66
status: production
7-
type: TTP
8-
description: The following analytic detects the execution of the chcp.exe application,
7+
type: Anomaly
8+
description: The following analytic detects the execution of the chcp.com utility,
99
which is used to change the active code page of the console. This detection leverages
1010
data from Endpoint Detection and Response (EDR) agents, focusing on process creation
11-
events where chcp.exe is executed by cmd.exe with specific command-line arguments.
12-
This activity is significant because it can indicate the presence of malware, such
11+
events. This activity is significant because it can indicate the presence of malware, such
1312
as IcedID, which uses this technique to determine the locale region, language, or
1413
country of the compromised host. If confirmed malicious, this could lead to further
1514
system compromise and data exfiltration.
@@ -18,7 +17,6 @@ data_source:
1817
- CrowdStrike ProcessRollup2
1918
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
2019
as lastTime from datamodel=Endpoint.Processes where Processes.process_name=chcp.com
21-
Processes.parent_process_name = cmd.exe (Processes.parent_process=*/c* OR Processes.parent_process=*/k*)
2220
by Processes.action Processes.dest Processes.original_file_name Processes.parent_process
2321
Processes.parent_process_exec Processes.parent_process_guid Processes.parent_process_id
2422
Processes.parent_process_name Processes.parent_process_path Processes.process Processes.process_exec
@@ -35,8 +33,7 @@ how_to_implement: The detection is based on data that originates from Endpoint D
3533
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
3634
data model. Use the Splunk Common Information Model (CIM) to normalize the field
3735
names and speed up the data modeling process.
38-
known_false_positives: other tools or script may used this to change code page to
39-
UTF-* or others
36+
known_false_positives: other tools or script may used this to change code page to UTF-* or others
4037
references:
4138
- https://ss64.com/nt/chcp.html
4239
- https://twitter.com/tccontre18/status/1419941156633329665?s=20

detections/endpoint/check_elevated_cmd_using_whoami.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
name: Check Elevated CMD using whoami
22
id: a9079b18-1633-11ec-859c-acde48001122
3-
version: 6
4-
date: '2024-11-13'
3+
version: 7
4+
date: '2025-04-24'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: TTP
8-
description: The following analytic identifies the execution of the 'whoami' command
9-
with specific parameters to check for elevated privileges. It leverages data from
8+
description: The following analytic identifies the execution of the "whoami" command
9+
with the "/group" flag, where the results are passed to the "find" command in order
10+
to look for a the string "12288". This string represents the SID of the group
11+
"Mandatory Label\High Mandatory Level" effectively checking if the current process
12+
is running as a "High" integrity process or with Administrator privileges. It leverages data from
1013
Endpoint Detection and Response (EDR) agents, focusing on process and command-line
1114
telemetry. This activity is significant because it is commonly used by attackers,
1215
such as FIN7, to perform reconnaissance on a compromised host. If confirmed malicious,
@@ -35,7 +38,7 @@ how_to_implement: The detection is based on data that originates from Endpoint D
3538
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
3639
data model. Use the Splunk Common Information Model (CIM) to normalize the field
3740
names and speed up the data modeling process.
38-
known_false_positives: unknown
41+
known_false_positives: The combination of these commands is unlikely to occur in a production environment. Any matches should be investigated.
3942
references: []
4043
drilldown_searches:
4144
- name: View the detection results for - "$dest$" and "$user$"

detections/endpoint/detection_of_tools_built_by_nirsoft.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: Detection of tools built by NirSoft
22
id: 3d8d201c-aa03-422d-b0ee-2e5ecf9718c0
3-
version: 7
4-
date: '2024-11-13'
3+
version: 8
4+
date: '2025-04-24'
55
author: Bhavin Patel, Splunk
66
status: experimental
7-
type: TTP
7+
type: Anomaly
88
description: The following analytic identifies the execution of tools built by NirSoft
99
by detecting specific command-line arguments such as "/stext" and "/scomma". It
1010
leverages data from Endpoint Detection and Response (EDR) agents, focusing on process
@@ -37,10 +37,10 @@ how_to_implement: The detection is based on data that originates from Endpoint D
3737
data model. Use the Splunk Common Information Model (CIM) to normalize the field
3838
names and speed up the data modeling process.
3939
known_false_positives: While legitimate, these NirSoft tools are prone to abuse. You
40-
should verfiy that the tool was used for a legitimate purpose.
40+
should verify that the tool was used for a legitimate purpose.
4141
references: []
4242
rba:
43-
message: NirSoft tools detected on $dest$
43+
message: NirSoft tool detected on $dest$
4444
risk_objects:
4545
- field: user
4646
type: user

detections/endpoint/system_processes_run_from_unexpected_locations.yml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
name: System Processes Run From Unexpected Locations
22
id: a34aae96-ccf8-4aef-952c-3ea21444444d
3-
version: 11
4-
date: '2025-02-10'
5-
author: David Dorsey, Michael Haag, Splunk
3+
version: 12
4+
date: '2025-04-24'
5+
author: David Dorsey, Michael Haag, Nasreddine Bencherchali, Splunk
66
status: production
77
type: Anomaly
88
description: The following analytic identifies system processes running from unexpected
9-
locations outside `C:\Windows\System32\` or `C:\Windows\SysWOW64`. It leverages
9+
locations outside of paths such as `C:\Windows\System32\` or `C:\Windows\SysWOW64`. It leverages
1010
data from Endpoint Detection and Response (EDR) agents, focusing on process paths,
1111
names, and hashes. This activity is significant as it may indicate a malicious process
1212
attempting to masquerade as a legitimate system process. If confirmed malicious,
@@ -17,15 +17,17 @@ data_source:
1717
- Windows Event Log Security 4688
1818
- CrowdStrike ProcessRollup2
1919
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
20-
as lastTime FROM datamodel=Endpoint.Processes where Processes.process_path !="C:\\Windows\\System32*"
21-
Processes.process_path !="C:\\Windows\\SysWOW64*" by Processes.action Processes.dest
20+
as lastTime FROM datamodel=Endpoint.Processes where NOT Processes.process_path IN ("C:\\$WINDOWS.~BT\\*", "C:\\$WinREAgent\\*", "C:\\Windows\\SoftwareDistribution\\*", "C:\\Windows\\System32\\*", "C:\\Windows\\SystemTemp\\*", "C:\\Windows\\SysWOW64\\*", "C:\\Windows\\uus\\*", "C:\\Windows\\WinSxS\\*") by Processes.action Processes.dest
2221
Processes.original_file_name Processes.parent_process Processes.parent_process_exec
2322
Processes.parent_process_guid Processes.parent_process_id Processes.parent_process_name
2423
Processes.parent_process_path Processes.process Processes.process_exec Processes.process_guid
2524
Processes.process_hash Processes.process_id Processes.process_integrity_level Processes.process_name
2625
Processes.process_path Processes.user Processes.user_id Processes.vendor_product
27-
| `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`|
28-
`is_windows_system_file_macro` | `system_processes_run_from_unexpected_locations_filter`'
26+
| `drop_dm_object_name("Processes")`
27+
| `security_content_ctime(firstTime)`
28+
| `security_content_ctime(lastTime)`
29+
| `is_windows_system_file_macro`
30+
| `system_processes_run_from_unexpected_locations_filter`'
2931
how_to_implement: The detection is based on data that originates from Endpoint Detection
3032
and Response (EDR) agents. These agents are designed to provide security-related
3133
telemetry from the endpoints where the agent is installed. To implement this search,
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Windows File Download Via CertUtil
2+
id: 7fac8d40-e370-45ea-a4a3-031bbcc18b02
3+
version: 1
4+
date: '2025-04-24'
5+
author: Nasreddine Bencherchali, Michael Haag, Splunk
6+
status: production
7+
type: TTP
8+
description: The following analytic detects the use of `certutil.exe` to download files using the `-URL`, `-urlcache` or '-verifyctl' arguments. This behavior is identified by monitoring command-line executions for these specific arguments via Endpoint Detection and Response (EDR) telemetry. This activity is significant because `certutil.exe` is a legitimate tool often abused by attackers to download and execute malicious payloads. If confirmed malicious, this could allow an attacker to download and execute arbitrary files, potentially leading to code execution, data exfiltration, or further compromise of the system.
9+
data_source:
10+
- Sysmon EventID 1
11+
- Windows Event Log Security 4688
12+
- CrowdStrike ProcessRollup2
13+
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
14+
as lastTime from datamodel=Endpoint.Processes where `process_certutil` AND ((Processes.process IN ("*-URL *", "*/URL *")) OR (Processes.process IN ("*urlcache*", "*verifyctl*") AND Processes.process IN ("*/f *", "*-f *")))
15+
by Processes.action Processes.dest
16+
Processes.original_file_name Processes.parent_process Processes.parent_process_exec
17+
Processes.parent_process_guid Processes.parent_process_id Processes.parent_process_name
18+
Processes.parent_process_path Processes.process Processes.process_exec Processes.process_guid
19+
Processes.process_hash Processes.process_id Processes.process_integrity_level Processes.process_name
20+
Processes.process_path Processes.user Processes.user_id Processes.vendor_product
21+
| `drop_dm_object_name(Processes)`
22+
| `security_content_ctime(firstTime)`
23+
| `security_content_ctime(lastTime)`
24+
| `windows_file_download_via_certutil_filter`'
25+
how_to_implement: The detection is based on data that originates from Endpoint Detection
26+
and Response (EDR) agents. These agents are designed to provide security-related
27+
telemetry from the endpoints where the agent is installed. To implement this search,
28+
you must ingest logs that contain the process GUID, process name, and parent process.
29+
Additionally, you must ingest complete command-line executions. These logs must
30+
be processed using the appropriate Splunk Technology Add-ons that are specific to
31+
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
32+
data model. Use the Splunk Common Information Model (CIM) to normalize the field
33+
names and speed up the data modeling process.
34+
known_false_positives: Limited false positives in most environments, however tune
35+
as needed based on parent-child relationship or network connection.
36+
references:
37+
- https://attack.mitre.org/techniques/T1105/
38+
- https://www.hexacorn.com/blog/2020/08/23/certutil-one-more-gui-lolbin/
39+
- https://www.avira.com/en/blog/certutil-abused-by-attackers-to-spread-threats
40+
- https://web.archive.org/web/20210921110637/https://www.fireeye.com/blog/threat-research/2019/10/certutil-qualms-they-came-to-drop-fombs.html
41+
- https://lolbas-project.github.io/lolbas/Binaries/Certutil/
42+
- https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc732443(v=ws.11)#-verifyctl
43+
drilldown_searches:
44+
- name: View the detection results for - "$user$" and "$dest$"
45+
search: '%original_detection_search% | search user = "$user$" dest = "$dest$"'
46+
earliest_offset: $info_min_time$
47+
latest_offset: $info_max_time$
48+
- name: View risk events for the last 7 days for - "$user$" and "$dest$"
49+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$",
50+
"$dest$") starthoursago=168 | stats count min(_time) as firstTime max(_time)
51+
as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk
52+
Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
53+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
54+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
55+
earliest_offset: $info_min_time$
56+
latest_offset: $info_max_time$
57+
rba:
58+
message: An instance of $parent_process_name$ spawning $process_name$ was identified
59+
on endpoint $dest$ by user $user$ attempting to download a file.
60+
risk_objects:
61+
- field: user
62+
type: user
63+
score: 90
64+
- field: dest
65+
type: system
66+
score: 90
67+
threat_objects:
68+
- field: parent_process_name
69+
type: parent_process_name
70+
- field: process_name
71+
type: process_name
72+
tags:
73+
analytic_story:
74+
- Living Off The Land
75+
- Ingress Tool Transfer
76+
- ProxyNotShell
77+
- DarkSide Ransomware
78+
- Forest Blizzard
79+
- Flax Typhoon
80+
- Compromised Windows Host
81+
- CISA AA22-277A
82+
asset_type: Endpoint
83+
mitre_attack_id:
84+
- T1105
85+
product:
86+
- Splunk Enterprise
87+
- Splunk Enterprise Security
88+
- Splunk Cloud
89+
security_domain: endpoint
90+
tests:
91+
- name: True Positive Test
92+
attack_data:
93+
- data:
94+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1105/atomic_red_team/windows-sysmon.log
95+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
96+
sourcetype: XmlWinEventLog

detections/endpoint/windows_process_with_namedpipe_commandline.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Windows Process With NamedPipe CommandLine
22
id: e64399d4-94a8-11ec-a9da-acde48001122
3-
version: 5
4-
date: '2024-11-13'
3+
version: 6
4+
date: '2025-04-24'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: Anomaly
@@ -19,14 +19,13 @@ data_source:
1919
- CrowdStrike ProcessRollup2
2020
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
2121
as lastTime from datamodel=Endpoint.Processes where Processes.process = "*\\\\.\\pipe\\*"
22-
NOT (Processes.process_path IN ("*\\program files*")) by Processes.action Processes.dest
22+
NOT Processes.process_path IN ("C:\\Program Files\\*", "C:\\Program Files (x86)\\*") by Processes.action Processes.dest
2323
Processes.original_file_name Processes.parent_process Processes.parent_process_exec
2424
Processes.parent_process_guid Processes.parent_process_id Processes.parent_process_name
2525
Processes.parent_process_path Processes.process Processes.process_exec Processes.process_guid
2626
Processes.process_hash Processes.process_id Processes.process_integrity_level Processes.process_name
27-
Processes.process_path Processes.user Processes.user_id Processes.vendor_product
28-
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
29-
| `windows_process_with_namedpipe_commandline_filter`'
27+
Processes.process_path Processes.user Processes.user_id Processes.vendor_product | `drop_dm_object_name(Processes)`
28+
| `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `windows_process_with_namedpipe_commandline_filter`'
3029
how_to_implement: The detection is based on data that originates from Endpoint Detection
3130
and Response (EDR) agents. These agents are designed to provide security-related
3231
telemetry from the endpoints where the agent is installed. To implement this search,

detections/endpoint/windows_query_registry_browser_list_application.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Windows Query Registry Browser List Application
22
id: 45ebd21c-f4bf-4ced-bd49-d25b6526cebb
3-
version: '6'
4-
date: '2025-03-19'
3+
version: 7
4+
date: '2025-04-24'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: Anomaly
@@ -16,8 +16,8 @@ description: The following analytic detects a suspicious process accessing the r
1616
confirmed malicious, this behavior could enable attackers to exfiltrate sensitive
1717
information and compromise user accounts.
1818
search: '`wineventlog_security` EventCode=4663 object_file_path IN ("*\\SOFTWARE\\Clients\\StartMenuInternet\\*",
19-
"*\\SOFTWARE\\Clients\\StartMenuInternet\\*") AND NOT (process_path IN ("*:\\Windows\\System32\\*",
20-
"*:\\Windows\\SysWow64\\*", "*:\\Program Files*", "*:\\Windows\\*")) | stats count
19+
"*\\SOFTWARE\\Clients\\StartMenuInternet\\*") AND NOT process_path IN ("*:\\Windows\\System32\\*",
20+
"*:\\Windows\\SysWow64\\*", *:\\Windows\\WinSxS\\*, "*:\\Program Files\\*", "*:\\Program Files (x86)\\*") | stats count
2121
min(_time) as firstTime max(_time) as lastTime by object_file_name object_file_path
2222
process_name process_path process_id EventCode dest | `security_content_ctime(firstTime)`
2323
| `security_content_ctime(lastTime)` | `windows_query_registry_browser_list_application_filter`'

0 commit comments

Comments
 (0)