Skip to content

Commit e6cb8bc

Browse files
authored
Merge branch 'develop' into ctl_515
2 parents 8695fc5 + dcc0850 commit e6cb8bc

8 files changed

Lines changed: 163 additions & 127 deletions

detections/endpoint/cisco_nvm___curl_execution_with_insecure_flags.yml

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Cisco NVM - Curl Execution With Insecure Flags
22
id: cc695238-3117-4e60-aa83-4beac2a42c69
3-
version: 2
4-
date: '2025-09-09'
3+
version: 3
4+
date: '2025-09-10'
55
author: Nasreddine Bencherchali, Splunk
66
status: production
77
type: Anomaly
@@ -13,7 +13,7 @@ description: |
1313
This behavior may indicate an attempt to bypass certificate validation to connect to potentially untrusted or malicious endpoints,
1414
a common tactic in red team operations, malware staging, or data exfiltration over HTTPS.
1515
data_source:
16-
- Cisco Network Visibility Module Flow Data
16+
- Cisco Network Visibility Module Flow Data
1717
search: |
1818
`cisco_network_visibility_module_flowdata`
1919
process_name = "curl.exe"
@@ -56,39 +56,41 @@ known_false_positives: |
5656
Usage of these flags to reach public IPs or uncommon destinations should be reviewed.
5757
Tuning may be required for domains with known certificate issues.
5858
references:
59-
- https://thedfirreport.com/2025/05/19/another-confluence-bites-the-dust-falling-to-elpaco-team-ransomware/
59+
- https://thedfirreport.com/2025/05/19/another-confluence-bites-the-dust-falling-to-elpaco-team-ransomware/
6060
drilldown_searches:
61-
- name: View the detection results for - "$src$"
62-
search: '%original_detection_search% | search src = "$src$"'
63-
earliest_offset: $info_min_time$
64-
latest_offset: $info_max_time$
65-
- name: View risk events for the last 7 days for - "$src$"
66-
search:
67-
'| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$src$") starthoursago=168 | stats count min(_time)
68-
as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message)
69-
as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
70-
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
71-
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
72-
earliest_offset: $info_min_time$
73-
latest_offset: $info_max_time$
61+
- name: View the detection results for - "$src$"
62+
search: '%original_detection_search% | search src = "$src$"'
63+
earliest_offset: $info_min_time$
64+
latest_offset: $info_max_time$
65+
- name: View risk events for the last 7 days for - "$src$"
66+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$src$")
67+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
68+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
69+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
70+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
71+
| `security_content_ctime(lastTime)`'
72+
earliest_offset: $info_min_time$
73+
latest_offset: $info_max_time$
7474
rba:
75-
message: The host $src$ executed curl with insecure flags and communicated with $dest$ / $dest_hostname$ over port $dest_port$
75+
message: The host $src$ executed curl with insecure flags and communicated
76+
with $dest$ / $dest_hostname$ over port $dest_port$
7677
risk_objects:
77-
- field: src
78-
type: system
79-
score: 30
78+
- field: src
79+
type: system
80+
score: 30
8081
threat_objects:
81-
- field: process_name
82-
type: process_name
82+
- field: process_name
83+
type: process_name
8384
tags:
8485
analytic_story:
85-
- Cisco Network Visibility Module Analytics
86+
- Cisco Network Visibility Module Analytics
87+
- PromptLock
8688
asset_type: Endpoint
8789
mitre_attack_id:
88-
- T1197
90+
- T1197
8991
product:
90-
- Splunk Enterprise
91-
- Splunk Enterprise Security
92+
- Splunk Enterprise
93+
- Splunk Enterprise Security
9294
security_domain: endpoint
9395
tests:
9496
- name: True Positive Test - Cisco NVM

detections/endpoint/executables_or_script_creation_in_suspicious_path.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ tags:
114114
- Interlock Ransomware
115115
- Interlock Rat
116116
- NailaoLocker Ransomware
117+
- PromptLock
117118
- GhostRedirector IIS Module and Rungan Backdoor
118119
asset_type: Endpoint
119120
mitre_attack_id:

detections/endpoint/executables_or_script_creation_in_temp_path.yml

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,37 @@
11
name: Executables Or Script Creation In Temp Path
22
id: e0422b71-2c05-4f32-8754-01fb415f49c9
3-
version: 15
4-
date: '2025-08-07'
3+
version: 16
4+
date: '2025-09-10'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: Anomaly
8-
description: The following analytic identifies the creation of executables or scripts
9-
in suspicious file paths on Windows systems. It leverages the Endpoint.Filesystem
10-
data model to detect files with specific extensions (e.g., .exe, .dll, .ps1) created
11-
in uncommon directories (e.g., \windows\fonts\, \users\public\). This activity is
12-
significant as adversaries often use these paths to evade detection and maintain
13-
persistence. If confirmed malicious, this behavior could allow attackers to execute
14-
unauthorized code, escalate privileges, or persist within the environment, posing
15-
a significant security threat.
8+
description: The following analytic identifies the creation of executables or
9+
scripts in suspicious file paths on Windows systems. It leverages the
10+
Endpoint.Filesystem data model to detect files with specific extensions (e.g.,
11+
.exe, .dll, .ps1) created in uncommon directories (e.g., \windows\fonts\,
12+
\users\public\). This activity is significant as adversaries often use these
13+
paths to evade detection and maintain persistence. If confirmed malicious,
14+
this behavior could allow attackers to execute unauthorized code, escalate
15+
privileges, or persist within the environment, posing a significant security
16+
threat.
1617
data_source:
1718
- Sysmon EventID 11
1819
search: '| tstats `security_content_summariesonly` values(Filesystem.file_path) as
1920
file_path count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Filesystem
2021
where Filesystem.file_name IN ("*.exe", "*.dll", "*.sys", "*.com", "*.vbs", "*.vbe",
21-
"*.js", "*.ps1", "*.bat", "*.cmd", "*.pif", "*.msc") AND Filesystem.file_path IN ("*\\AppData\\Local\\Temp\\*",
22-
"*:\\Windows\\Temp\\*", "*:\\Temp*") by Filesystem.action Filesystem.dest Filesystem.file_access_time
23-
Filesystem.file_create_time Filesystem.file_hash Filesystem.file_modify_time Filesystem.file_name
24-
Filesystem.file_path Filesystem.file_acl Filesystem.file_size Filesystem.process_guid
25-
Filesystem.process_id Filesystem.user Filesystem.vendor_product | `drop_dm_object_name(Filesystem)`
26-
| `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `executables_or_script_creation_in_temp_path_filter`'
27-
how_to_implement: To successfully implement this search you need to be ingesting information
28-
on process that include the name of the Filesystem responsible for the changes from
29-
your endpoints into the `Endpoint` datamodel in the `Filesystem` node.
30-
known_false_positives: Administrators may allow creation of script or exe in the paths
31-
specified. Filter as needed.
22+
"*.js", "*.ps1", "*.bat", "*.cmd", "*.pif", "*.msc") AND Filesystem.file_path IN
23+
("*\\AppData\\Local\\Temp\\*", "*:\\Windows\\Temp\\*", "*:\\Temp*") by Filesystem.action
24+
Filesystem.dest Filesystem.file_access_time Filesystem.file_create_time Filesystem.file_hash
25+
Filesystem.file_modify_time Filesystem.file_name Filesystem.file_path Filesystem.file_acl
26+
Filesystem.file_size Filesystem.process_guid Filesystem.process_id Filesystem.user
27+
Filesystem.vendor_product | `drop_dm_object_name(Filesystem)` | `security_content_ctime(firstTime)`
28+
| `security_content_ctime(lastTime)` | `executables_or_script_creation_in_temp_path_filter`'
29+
how_to_implement: To successfully implement this search you need to be ingesting
30+
information on process that include the name of the Filesystem responsible for
31+
the changes from your endpoints into the `Endpoint` datamodel in the
32+
`Filesystem` node.
33+
known_false_positives: Administrators may allow creation of script or exe in the
34+
paths specified. Filter as needed.
3235
references:
3336
- https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/
3437
- https://www.microsoft.com/security/blog/2022/01/15/destructive-malware-targeting-ukrainian-organizations/
@@ -49,8 +52,9 @@ drilldown_searches:
4952
earliest_offset: $info_min_time$
5053
latest_offset: $info_max_time$
5154
rba:
52-
message: Potentially suspicious executable or script with file name $file_name$,
53-
$file_path$ and process_id $process_id$ was created in temporary folder by $user$
55+
message: Potentially suspicious executable or script with file name
56+
$file_name$, $file_path$ and process_id $process_id$ was created in
57+
temporary folder by $user$
5458
risk_objects:
5559
- field: user
5660
type: user
@@ -102,6 +106,7 @@ tags:
102106
- Amadey
103107
- IcedID
104108
- Interlock Rat
109+
- PromptLock
105110
asset_type: Endpoint
106111
mitre_attack_id:
107112
- T1036
@@ -113,6 +118,7 @@ tags:
113118
tests:
114119
- name: True Positive Test
115120
attack_data:
116-
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/xmrig_miner/windows-sysmon.log
121+
- data:
122+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/malware/xmrig_miner/windows-sysmon.log
117123
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
118124
sourcetype: XmlWinEventLog

detections/endpoint/windows_curl_upload_to_remote_destination.yml

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
name: Windows Curl Upload to Remote Destination
22
id: 42f8f1a2-4228-11ec-aade-acde48001122
3-
version: 10
4-
date: '2025-06-20'
3+
version: 11
4+
date: '2025-09-10'
55
author: Michael Haag, Splunk
66
status: production
77
type: TTP
8-
description:
9-
The following analytic detects the use of Windows Curl.exe to upload
10-
a file to a remote destination. It identifies command-line arguments such as `-T`,
11-
`--upload-file`, `-d`, `--data`, and `-F` in process execution logs. This activity
12-
is significant because adversaries may use Curl to exfiltrate data or upload malicious
13-
payloads. If confirmed malicious, this could lead to data breaches or further compromise
14-
of the system. Analysts should review parallel processes and network logs to determine
15-
if the upload was successful and isolate the endpoint if necessary.
8+
description: The following analytic detects the use of Windows Curl.exe to
9+
upload a file to a remote destination. It identifies command-line arguments
10+
such as `-T`, `--upload-file`, `-d`, `--data`, and `-F` in process execution
11+
logs. This activity is significant because adversaries may use Curl to
12+
exfiltrate data or upload malicious payloads. If confirmed malicious, this
13+
could lead to data breaches or further compromise of the system. Analysts
14+
should review parallel processes and network logs to determine if the upload
15+
was successful and isolate the endpoint if necessary.
1616
data_source:
1717
- Sysmon EventID 1
1818
- Windows Event Log Security 4688
@@ -29,19 +29,18 @@ search:
2929
Processes.process_path Processes.user Processes.user_id Processes.vendor_product
3030
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
3131
| `windows_curl_upload_to_remote_destination_filter`'
32-
how_to_implement:
33-
The detection is based on data that originates from Endpoint Detection
34-
and Response (EDR) agents. These agents are designed to provide security-related
35-
telemetry from the endpoints where the agent is installed. To implement this search,
36-
you must ingest logs that contain the process GUID, process name, and parent process.
37-
Additionally, you must ingest complete command-line executions. These logs must
38-
be processed using the appropriate Splunk Technology Add-ons that are specific to
39-
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
40-
data model. Use the Splunk Common Information Model (CIM) to normalize the field
41-
names and speed up the data modeling process.
42-
known_false_positives:
43-
False positives may be limited to source control applications
44-
and may be required to be filtered out.
32+
how_to_implement: The detection is based on data that originates from Endpoint
33+
Detection and Response (EDR) agents. These agents are designed to provide
34+
security-related telemetry from the endpoints where the agent is installed. To
35+
implement this search, you must ingest logs that contain the process GUID,
36+
process name, and parent process. Additionally, you must ingest complete
37+
command-line executions. These logs must be processed using the appropriate
38+
Splunk Technology Add-ons that are specific to the EDR product. The logs must
39+
also be mapped to the `Processes` node of the `Endpoint` data model. Use the
40+
Splunk Common Information Model (CIM) to normalize the field names and speed
41+
up the data modeling process.
42+
known_false_positives: False positives may be limited to source control
43+
applications and may be required to be filtered out.
4544
references:
4645
- https://everything.curl.dev/usingcurl/uploads
4746
- https://techcommunity.microsoft.com/t5/containers/tar-and-curl-come-to-windows/ba-p/382409
@@ -62,9 +61,9 @@ drilldown_searches:
6261
earliest_offset: $info_min_time$
6362
latest_offset: $info_max_time$
6463
rba:
65-
message:
66-
An instance of $parent_process_name$ spawning $process_name$ was identified
67-
on endpoint $dest$ by user $user$ uploading a file to a remote destination.
64+
message: An instance of $parent_process_name$ spawning $process_name$ was
65+
identified on endpoint $dest$ by user $user$ uploading a file to a remote
66+
destination.
6867
risk_objects:
6968
- field: user
7069
type: user
@@ -79,9 +78,10 @@ rba:
7978
type: process_name
8079
tags:
8180
analytic_story:
82-
- Compromised Windows Host
83-
- Ingress Tool Transfer
84-
- Cisco Network Visibility Module Analytics
81+
- Compromised Windows Host
82+
- Ingress Tool Transfer
83+
- Cisco Network Visibility Module Analytics
84+
- PromptLock
8585
asset_type: Endpoint
8686
mitre_attack_id:
8787
- T1105
Lines changed: 51 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Windows Driver Load Non-Standard Path
22
id: 9216ef3d-066a-4958-8f27-c84589465e62
3-
version: 7
4-
date: '2025-05-02'
3+
version: 8
4+
date: '2025-09-23'
55
author: Michael Haag, Splunk
66
status: production
77
type: TTP
@@ -14,36 +14,42 @@ description: The following analytic detects the loading of new Kernel Mode Drive
1414
escalate privileges, or maintain persistence within the environment, posing a severe
1515
threat to system integrity and security.
1616
data_source:
17-
- Windows Event Log System 7045
17+
- Windows Event Log System 7045
1818
search: >-
19-
`wineventlog_system` EventCode=7045 ServiceType="kernel mode driver"
20-
| regex ImagePath!="(?i)^(\w:\\\\Windows\\\\|\w:\\\\Program\sFile|\\\\systemroot\\\\|%SystemRoot%|system32\\\\|\\\\ProgramData\\\\Microsoft\\\\Windows\sDefender\\\\Definition\sUpdates\\\\)"
21-
| stats count min(_time) as firstTime max(_time) as lastTime by Computer EventCode
22-
ImagePath ServiceName ServiceType | rename Computer as dest | `security_content_ctime(firstTime)` |
23-
`security_content_ctime(lastTime)` | `windows_driver_load_non_standard_path_filter`
24-
how_to_implement: To implement this analytic, the Windows EventCode 7045 will need
25-
to be logged. The Windows TA for Splunk is also recommended.
26-
known_false_positives: False positives may be present based on legitimate third party
27-
applications needing to install drivers. Filter, or allow list known good drivers
28-
consistently being installed in these paths.
19+
`wineventlog_system`
20+
EventCode = 7045
21+
ServiceType = "kernel mode driver"
22+
| regex ImagePath != "(?i)^(\w:\\\\Program Files\\\\|\w:\\\\Program Files \(x86\)\\\\|\w:\\\\Windows\\\\System32\\\\|\w:\\\\Windows\\\\SysWOW64\\\\|\w:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Definition Updates\\\\|\w:\\\\ProgramData\\\\Microsoft\\\\Windows Defender\\\\Platform\\\\|%SystemRoot%|\\\\SystemRoot\\\\|SystemRoot\\\\)"
23+
| stats count min(_time) as firstTime max(_time) as lastTime by
24+
Computer EventCode ImagePath ServiceName ServiceType
25+
| rename Computer as dest
26+
| `security_content_ctime(firstTime)`
27+
| `security_content_ctime(lastTime)`
28+
| `windows_driver_load_non_standard_path_filter`
29+
how_to_implement: |
30+
To implement this analytic, the Windows EventCode 7045 will need to be logged.
31+
The Windows TA for Splunk is also recommended.
32+
known_false_positives: |
33+
False positives may be present based on legitimate third party applications needing to install drivers.
34+
Filter, or allow list known good drivers consistently being installed in these paths.
2935
references:
30-
- https://redcanary.com/blog/tracking-driver-inventory-to-expose-rootkits/
31-
- https://attack.mitre.org/techniques/T1014/
32-
- https://www.fuzzysecurity.com/tutorials/28.html
36+
- https://redcanary.com/blog/tracking-driver-inventory-to-expose-rootkits/
37+
- https://attack.mitre.org/techniques/T1014/
38+
- https://www.fuzzysecurity.com/tutorials/28.html
3339
drilldown_searches:
34-
- name: View the detection results for - "$dest$"
35-
search: '%original_detection_search% | search dest = "$dest$"'
36-
earliest_offset: $info_min_time$
37-
latest_offset: $info_max_time$
38-
- name: View risk events for the last 7 days for - "$dest$"
39-
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
40-
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
41-
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
42-
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
43-
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
44-
| `security_content_ctime(lastTime)`'
45-
earliest_offset: $info_min_time$
46-
latest_offset: $info_max_time$
40+
- name: View the detection results for - "$dest$"
41+
search: '%original_detection_search% | search dest = "$dest$"'
42+
earliest_offset: $info_min_time$
43+
latest_offset: $info_max_time$
44+
- name: View risk events for the last 7 days for - "$dest$"
45+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
46+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
47+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
48+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
49+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
50+
| `security_content_ctime(lastTime)`'
51+
earliest_offset: $info_min_time$
52+
latest_offset: $info_max_time$
4753
rba:
4854
message: A kernel mode driver was loaded from a non-standard path on $dest$.
4955
risk_objects:
@@ -53,24 +59,24 @@ rba:
5359
threat_objects: []
5460
tags:
5561
analytic_story:
56-
- Windows Drivers
57-
- CISA AA22-320A
58-
- AgentTesla
59-
- BlackByte Ransomware
60-
- BlackSuit Ransomware
62+
- Windows Drivers
63+
- CISA AA22-320A
64+
- AgentTesla
65+
- BlackByte Ransomware
66+
- BlackSuit Ransomware
6167
asset_type: Endpoint
6268
mitre_attack_id:
63-
- T1014
64-
- T1068
69+
- T1014
70+
- T1068
6571
product:
66-
- Splunk Enterprise
67-
- Splunk Enterprise Security
68-
- Splunk Cloud
72+
- Splunk Enterprise
73+
- Splunk Enterprise Security
74+
- Splunk Cloud
6975
security_domain: endpoint
7076
tests:
71-
- name: True Positive Test
72-
attack_data:
73-
- data:
74-
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1068/drivers/xml7045_windows-system.log
75-
source: XmlWinEventLog:System
76-
sourcetype: XmlWinEventLog
77+
- name: True Positive Test
78+
attack_data:
79+
- data:
80+
https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1068/drivers/xml7045_windows-system.log
81+
source: XmlWinEventLog:System
82+
sourcetype: XmlWinEventLog

0 commit comments

Comments
 (0)