Skip to content

Commit 8488f80

Browse files
authored
Merge branch 'develop' into lamehug
2 parents afa518b + cff359d commit 8488f80

File tree

3 files changed

+160
-0
lines changed

3 files changed

+160
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Windows Certutil Root Certificate Addition
2+
id: e9926391-ec0c-4bad-8a95-e450dbf6aae4
3+
version: 1
4+
date: '2025-08-06'
5+
author: Teoderick Contreras, Splunk
6+
status: production
7+
type: Anomaly
8+
description: The following analytic detects the use of certutil.exe to add a certificate to the Root certificate store using the -addstore root command. In this case, the certificate is loaded from a temporary file path (e.g., %TEMP%), which is highly suspicious and uncommon in legitimate administrative activity. This behavior may indicate an adversary is installing a malicious root certificate to intercept HTTPS traffic, impersonate trusted entities, or bypass security controls. The use of flags such as -f (force) and -Enterprise, combined with loading .tmp files from user-writable locations, is consistent with post-exploitation activity seen in credential theft and adversary-in-the-middle (AiTM) attacks. This should be investigated immediately, especially if correlated with unauthorized privilege use or prior certificate modifications.You should monitor when new certificates are added to the root store because this store is what your system uses to decide which websites, apps, and software can be trusted. If an attacker manages to add their own certificate there, they can silently intercept encrypted traffic, impersonate trusted websites, or make malicious programs look safe. This means they could steal sensitive data, bypass security tools, and keep access to your system even after other malware is removed. In simple terms, adding a rogue root certificate gives attackers a master key to your trust system — and if it goes unnoticed, the impact could be a complete compromise of your security.
9+
data_source:
10+
- Sysmon EventID 1
11+
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime values(Processes.process)
12+
as process max(_time) as lastTime from datamodel=Endpoint.Processes
13+
where `process_certutil` Processes.process=*-addstore* Processes.process=*root*
14+
by Processes.action Processes.dest Processes.original_file_name
15+
Processes.parent_process Processes.parent_process_exec Processes.parent_process_guid
16+
Processes.parent_process_id Processes.parent_process_name Processes.parent_process_path
17+
Processes.process Processes.process_exec Processes.process_guid Processes.process_hash
18+
Processes.process_id Processes.process_integrity_level Processes.process_name Processes.process_path
19+
Processes.user Processes.user_id Processes.vendor_product
20+
| `drop_dm_object_name("Processes")`
21+
| `security_content_ctime(firstTime)`
22+
|`security_content_ctime(lastTime)`
23+
| `windows_certutil_root_certificate_addition_filter`'
24+
how_to_implement: The detection is based on data that originates from Endpoint Detection
25+
and Response (EDR) agents. These agents are designed to provide security-related
26+
telemetry from the endpoints where the agent is installed. To implement this search,
27+
you must ingest logs that contain the process GUID, process name, and parent process.
28+
Additionally, you must ingest complete command-line executions. These logs must
29+
be processed using the appropriate Splunk Technology Add-ons that are specific to
30+
the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint`
31+
data model. Use the Splunk Common Information Model (CIM) to normalize the field
32+
names and speed up the data modeling process.
33+
known_false_positives: administrator may use certutil to add a root certificate to the store.
34+
Filter as needed or restrict to critical assets on the perimeter.
35+
references:
36+
- https://www.microsoft.com/en-us/security/blog/2025/07/31/frozen-in-transit-secret-blizzards-aitm-campaign-against-diplomats/
37+
drilldown_searches:
38+
- name: View the detection results for - "$dest$"
39+
search: '%original_detection_search% | search dest = "$dest$"'
40+
earliest_offset: $info_min_time$
41+
latest_offset: $info_max_time$
42+
- name: View risk events for the last 7 days for - "$dest$"
43+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
44+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
45+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
46+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
47+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
48+
| `security_content_ctime(lastTime)`'
49+
earliest_offset: $info_min_time$
50+
latest_offset: $info_max_time$
51+
rba:
52+
message: A certificate was added to the Root certificate store by a suspicious process named $process_name$ with the process path $process_path$ on dest $dest$.
53+
risk_objects:
54+
- field: dest
55+
type: system
56+
score: 40
57+
threat_objects:
58+
- field: parent_process_name
59+
type: parent_process_name
60+
tags:
61+
analytic_story:
62+
- Secret Blizzard
63+
asset_type: Endpoint
64+
mitre_attack_id:
65+
- T1587.003
66+
product:
67+
- Splunk Enterprise
68+
- Splunk Enterprise Security
69+
- Splunk Cloud
70+
security_domain: endpoint
71+
tests:
72+
- name: True Positive Test
73+
attack_data:
74+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1587.003/add_store_cert/addstore_cert.log
75+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
76+
sourcetype: XmlWinEventLog
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Windows Set Private Network Profile via Registry
2+
id: a277acde-9bfd-4edb-b201-7cfc504003e2
3+
version: 1
4+
date: '2025-08-06'
5+
author: Teoderick Contreras, Splunk
6+
status: production
7+
type: Anomaly
8+
description: The following analytic detects attempts to modify the Windows Registry to change a network profile's category to "Private", which may indicate an adversary is preparing the environment for lateral movement or reducing firewall restrictions. Specifically, this activity involves changes to the Category value within the HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID} registry path. A value of 1 corresponds to a private network profile, which typically enables less restrictive firewall policies. While this action can occur during legitimate network configuration, it may also be a sign of malicious behavior when combined with other indicators such as suspicious account activity, unexpected administrative privilege usage, or execution of unsigned binaries. Monitoring for this registry modification—especially outside standard IT processes or correlated with persistence mechanisms—can help identify stealthy post-exploitation activity.
9+
data_source:
10+
- Sysmon EventID 13
11+
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry
12+
WHERE (Registry.registry_value_name= "Category" Registry.registry_path = "*\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkList\\Profiles*") Registry.registry_value_data = 0x00000000
13+
by Registry.action Registry.dest Registry.process_guid Registry.process_id Registry.registry_hive Registry.registry_path Registry.registry_key_name Registry.registry_value_data Registry.registry_value_name Registry.registry_value_type Registry.status Registry.user Registry.vendor_product
14+
| `drop_dm_object_name(Registry)`
15+
| `security_content_ctime(firstTime)`
16+
| `security_content_ctime(lastTime)`
17+
| `windows_set_private_network_profile_via_registry_filter`'
18+
how_to_implement:
19+
To successfully implement this search you need to be ingesting information
20+
on process that include the name of the process responsible for the changes from
21+
your endpoints into the `Endpoint` datamodel in the `Registry` node. Also make sure
22+
that this registry was included in your config files ex. sysmon config to be monitored.
23+
known_false_positives:
24+
Administrators may enable or disable this feature that may
25+
cause some false positive, however is not common. Filter as needed.
26+
references:
27+
- https://www.microsoft.com/en-us/security/blog/2025/07/31/frozen-in-transit-secret-blizzards-aitm-campaign-against-diplomats/
28+
drilldown_searches:
29+
- name: View the detection results for - "$user$" and "$dest$"
30+
search: '%original_detection_search% | search user = "$user$" dest = "$dest$"'
31+
earliest_offset: $info_min_time$
32+
latest_offset: $info_max_time$
33+
- name: View risk events for the last 7 days for - "$user$" and "$dest$"
34+
search:
35+
'| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$user$",
36+
"$dest$") starthoursago=168 | stats count min(_time) as firstTime max(_time)
37+
as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk
38+
Message" values(analyticstories) as "Analytic Stories" values(annotations._all)
39+
as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics"
40+
by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
41+
earliest_offset: $info_min_time$
42+
latest_offset: $info_max_time$
43+
rba:
44+
message: A registry modification that set network profile to private on [$dest$]
45+
risk_objects:
46+
- field: dest
47+
type: system
48+
score: 40
49+
threat_objects: []
50+
tags:
51+
analytic_story:
52+
- Secret Blizzard
53+
asset_type: Endpoint
54+
mitre_attack_id:
55+
- T1112
56+
product:
57+
- Splunk Enterprise
58+
- Splunk Enterprise Security
59+
- Splunk Cloud
60+
security_domain: endpoint
61+
tests:
62+
- name: True Positive Test
63+
attack_data:
64+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1112/reg_profiles_private/reg_profiles_private.log
65+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
66+
sourcetype: XmlWinEventLog

stories/secret_blizzard.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Secret Blizzard
2+
id: 4027c5cc-e9df-49df-b824-be51c1e1e13a
3+
version: 1
4+
status: production
5+
date: '2025-08-05'
6+
author: Teoderick Contreras, Splunk
7+
description: Detects suspicious use of captive portal redirection chains abusing msftconnecttest.com/redirect, particularly during network sign-in events. Look for anomalous HTTP GET requests to domains mimicking certificate authorities (e.g., fake Digicert or Kaspersky-related hosts). Flag user execution of CertificateDB.exe, which may request elevated privileges and install unauthorized custom root certificates. Monitor for persistence tactics such as creation of hidden local admin accounts, modification of firewall or network profile settings, and DLL sideloading involving oci.dll or duser.dll. Additional indicators include encoded metadata in DNS queries, exfiltration over DNS, or encrypted communications to suspicious or newly registered domains, suggesting command-and-control activity. These behaviors may indicate adversary-in-the-middle (AiTM) interception by a capable, nation-state actor.
8+
narrative: In early February 2025, Microsoft Threat Intelligence uncovered a sophisticated adversary-in-the-middle (AiTM) campaign by the Russian state-linked APT group Secret Blizzard (also known as Turla or Venomous Bear), targeting diplomatic entities operating in Moscow. The attackers hijacked Windows network connectivity checks to msftconnecttest.com/redirect by exploiting captive portal redirection techniques—likely through compromised or manipulated local ISP infrastructure. Victims were redirected to a fake network sign-in page prompting the download of CertificateDB.exe, disguised as a legitimate security application. Upon execution, the malware installed a rogue root certificate, adjusted firewall rules, created hidden local administrator accounts, and enabled TLS interception. Exfiltration occurred via DNS queries and encrypted traffic to attacker-controlled domains. This campaign marks a significant escalation in domestic ISP-level surveillance, enabling credential theft and encrypted traffic inspection against foreign diplomats—highlighting the evolving scope of nation-state cyber-espionage inside Russian borders.
9+
references:
10+
- https://www.microsoft.com/en-us/security/blog/2025/07/31/frozen-in-transit-secret-blizzards-aitm-campaign-against-diplomats/
11+
tags:
12+
category:
13+
- Adversary Tactics
14+
product:
15+
- Splunk Enterprise
16+
- Splunk Enterprise Security
17+
- Splunk Cloud
18+
usecase: Advanced Threat Detection

0 commit comments

Comments
 (0)