Skip to content

Commit 6e6a5d3

Browse files
authored
Merge pull request #3513 from splunk/xworm
xworm
2 parents 7a214c4 + 655b836 commit 6e6a5d3

File tree

39 files changed

+535
-426
lines changed

39 files changed

+535
-426
lines changed

detections/endpoint/add_or_set_windows_defender_exclusion.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Add or Set Windows Defender Exclusion
22
id: 773b66fe-4dd9-11ec-8289-acde48001122
3-
version: 9
4-
date: '2025-05-02'
3+
version: '10'
4+
date: '2025-05-06'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: TTP
@@ -68,14 +68,15 @@ rba:
6868
threat_objects: []
6969
tags:
7070
analytic_story:
71-
- CISA AA22-320A
71+
- Compromised Windows Host
7272
- AgentTesla
73-
- Remcos
7473
- Data Destruction
75-
- Compromised Windows Host
74+
- Remcos
75+
- CISA AA22-320A
7676
- ValleyRAT
77-
- Windows Defense Evasion Tactics
77+
- XWorm
7878
- WhisperGate
79+
- Windows Defense Evasion Tactics
7980
- Crypto Stealer
8081
asset_type: Endpoint
8182
mitre_attack_id:

detections/endpoint/any_powershell_downloadfile.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Any Powershell DownloadFile
22
id: 1a93b7ea-7af7-11eb-adb5-acde48001122
3-
version: 14
4-
date: '2025-05-02'
3+
version: '15'
4+
date: '2025-05-06'
55
author: Michael Haag, Splunk
66
status: production
77
type: TTP
@@ -74,19 +74,20 @@ rba:
7474
type: process_name
7575
tags:
7676
analytic_story:
77-
- Data Destruction
77+
- Log4Shell CVE-2021-44228
78+
- Phemedrone Stealer
7879
- Malicious PowerShell
80+
- PXA Stealer
7981
- China-Nexus Threat Activity
82+
- Data Destruction
83+
- Braodo Stealer
84+
- PHP-CGI RCE Attack on Japanese Organizations
8085
- Hermetic Wiper
81-
- DarkCrystal RAT
82-
- Phemedrone Stealer
83-
- PXA Stealer
84-
- Log4Shell CVE-2021-44228
86+
- Ingress Tool Transfer
8587
- Salt Typhoon
86-
- Braodo Stealer
88+
- XWorm
89+
- DarkCrystal RAT
8790
- Crypto Stealer
88-
- Ingress Tool Transfer
89-
- PHP-CGI RCE Attack on Japanese Organizations
9091
asset_type: Endpoint
9192
cve:
9293
- CVE-2021-44228

detections/endpoint/any_powershell_downloadstring.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Any Powershell DownloadString
22
id: 4d015ef2-7adf-11eb-95da-acde48001122
3-
version: 11
4-
date: '2025-05-02'
3+
version: '12'
4+
date: '2025-05-06'
55
author: Michael Haag, Splunk
66
status: production
77
type: TTP
@@ -76,15 +76,16 @@ rba:
7676
tags:
7777
analytic_story:
7878
- Winter Vivern
79-
- Ingress Tool Transfer
80-
- Hermetic Wiper
79+
- Phemedrone Stealer
8180
- Malicious PowerShell
82-
- HAFNIUM Group
8381
- Data Destruction
84-
- IcedID
8582
- SysAid On-Prem Software CVE-2023-47246 Vulnerability
86-
- Phemedrone Stealer
8783
- PHP-CGI RCE Attack on Japanese Organizations
84+
- Hermetic Wiper
85+
- IcedID
86+
- Ingress Tool Transfer
87+
- HAFNIUM Group
88+
- XWorm
8889
asset_type: Endpoint
8990
mitre_attack_id:
9091
- T1059.001

detections/endpoint/cmd_carry_out_string_command_parameter.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: CMD Carry Out String Command Parameter
22
id: 54a6ed00-3256-11ec-b031-acde48001122
3-
version: 10
4-
date: '2025-05-02'
3+
version: 11
4+
date: '2025-05-06'
55
author: Teoderick Contreras, Bhavin Patel, Splunk
66
status: production
77
type: Hunting
@@ -17,8 +17,8 @@ data_source:
1717
- Windows Event Log Security 4688
1818
- CrowdStrike ProcessRollup2
1919
search: '| tstats `security_content_summariesonly` min(_time) as firstTime max(_time)
20-
as lastTime from datamodel=Endpoint.Processes where `process_cmd` AND Processes.process="*
21-
/c*" by Processes.action Processes.dest Processes.original_file_name Processes.parent_process
20+
as lastTime from datamodel=Endpoint.Processes where `process_cmd` AND Processes.process IN ("*/c*", "*/k*")
21+
by Processes.action Processes.dest Processes.original_file_name Processes.parent_process
2222
Processes.parent_process_exec Processes.parent_process_guid Processes.parent_process_id
2323
Processes.parent_process_name Processes.parent_process_path Processes.process Processes.process_exec
2424
Processes.process_guid Processes.process_hash Processes.process_id Processes.process_integrity_level

detections/endpoint/detect_mshta_inline_hta_execution.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Detect mshta inline hta execution
22
id: a0873b32-5b68-11eb-ae93-0242ac130002
3-
version: 16
4-
date: '2025-05-02'
3+
version: '17'
4+
date: '2025-05-06'
55
author: Bhavin Patel, Michael Haag, Splunk
66
status: production
77
type: TTP
@@ -75,10 +75,11 @@ rba:
7575
type: process_name
7676
tags:
7777
analytic_story:
78+
- Compromised Windows Host
7879
- Gozi Malware
79-
- Suspicious MSHTA Activity
8080
- Living Off The Land
81-
- Compromised Windows Host
81+
- Suspicious MSHTA Activity
82+
- XWorm
8283
asset_type: Endpoint
8384
mitre_attack_id:
8485
- T1218.005

detections/endpoint/detect_mshta_url_in_command_line.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Detect MSHTA Url in Command Line
22
id: 9b3af1e6-5b68-11eb-ae93-0242ac130002
3-
version: 12
4-
date: '2025-05-02'
3+
version: '13'
4+
date: '2025-05-06'
55
author: Michael Haag, Splunk
66
status: production
77
type: TTP
@@ -75,10 +75,11 @@ rba:
7575
type: process_name
7676
tags:
7777
analytic_story:
78-
- Suspicious MSHTA Activity
78+
- Compromised Windows Host
7979
- Lumma Stealer
8080
- Living Off The Land
81-
- Compromised Windows Host
81+
- Suspicious MSHTA Activity
82+
- XWorm
8283
asset_type: Endpoint
8384
mitre_attack_id:
8485
- T1218.005

detections/endpoint/executables_or_script_creation_in_suspicious_path.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Executables Or Script Creation In Suspicious Path
22
id: a7e3f0f0-ae42-11eb-b245-acde48001122
3-
version: 15
4-
date: '2025-05-02'
3+
version: 16
4+
date: '2025-05-06'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: Anomaly
@@ -18,10 +18,10 @@ data_source:
1818
search: '| tstats `security_content_summariesonly` values(Filesystem.file_path) as
1919
file_path count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Filesystem
2020
where Filesystem.file_name IN ("*.exe", "*.dll", "*.sys", "*.com", "*.vbs", "*.vbe",
21-
"*.js", "*.ps1", "*.bat", "*.cmd", "*.pif") AND Filesystem.file_path IN ("*\\windows\\fonts\\*",
21+
"*.js", "*.ps1", "*.bat", "*.cmd", "*.pif", "*.msc") AND Filesystem.file_path IN ("*\\windows\\fonts\\*",
2222
"*\\windows\\temp\\*", "*\\users\\public\\*", "*\\windows\\debug\\*", "*\\Users\\Administrator\\Music\\*",
2323
"*\\Windows\\servicing\\*", "*\\Users\\Default\\*", "*Recycle.bin*", "*\\Windows\\Media\\*",
24-
"*\\Windows\\repair\\*", "*\\AppData\\Local\\Temp*", "*\\PerfLogs\\*", "*:\\temp\\*")
24+
"*\\Windows\\repair\\*", "*\\PerfLogs\\*")
2525
by Filesystem.action Filesystem.dest Filesystem.file_access_time Filesystem.file_create_time
2626
Filesystem.file_hash Filesystem.file_modify_time Filesystem.file_name Filesystem.file_path
2727
Filesystem.file_acl Filesystem.file_size Filesystem.process_guid Filesystem.process_id

detections/endpoint/executables_or_script_creation_in_temp_path.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Executables Or Script Creation In Temp Path
22
id: e0422b71-2c05-4f32-8754-01fb415f49c9
3-
version: 13
4-
date: '2025-05-02'
3+
version: 14
4+
date: '2025-05-06'
55
author: Teoderick Contreras, Splunk
66
status: production
77
type: Anomaly
@@ -18,7 +18,7 @@ data_source:
1818
search: '| tstats `security_content_summariesonly` values(Filesystem.file_path) as
1919
file_path count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Filesystem
2020
where Filesystem.file_name IN ("*.exe", "*.dll", "*.sys", "*.com", "*.vbs", "*.vbe",
21-
"*.js", "*.ps1", "*.bat", "*.cmd", "*.pif") AND Filesystem.file_path IN ("*\\AppData\\Local\\Temp\\*",
21+
"*.js", "*.ps1", "*.bat", "*.cmd", "*.pif", "*.msc") AND Filesystem.file_path IN ("*\\AppData\\Local\\Temp\\*",
2222
"*:\\Windows\\Temp\\*", "*:\\Temp*") by Filesystem.action Filesystem.dest Filesystem.file_access_time
2323
Filesystem.file_create_time Filesystem.file_hash Filesystem.file_modify_time Filesystem.file_name
2424
Filesystem.file_path Filesystem.file_acl Filesystem.file_size Filesystem.process_guid

detections/endpoint/malicious_powershell_process___execution_policy_bypass.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Malicious PowerShell Process - Execution Policy Bypass
22
id: 9be56c82-b1cc-4318-87eb-d138afaaca39
3-
version: 13
4-
date: '2025-05-02'
3+
version: '14'
4+
date: '2025-05-06'
55
author: Rico Valdez, Mauricio Velazco, Splunk
66
status: production
77
type: Anomaly
@@ -21,14 +21,13 @@ search: '| tstats `security_content_summariesonly` values(Processes.process_id)
2121
process_id, values(Processes.parent_process_id) as parent_process_id values(Processes.process)
2222
as process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
2323
where `process_powershell` (Processes.process="* -ex*" AND Processes.process="*
24-
bypass *")
25-
by Processes.action Processes.dest Processes.original_file_name Processes.parent_process Processes.parent_process_exec
26-
Processes.parent_process_guid Processes.parent_process_id Processes.parent_process_name
27-
Processes.parent_process_path Processes.process Processes.process_exec Processes.process_guid Processes.process_hash
28-
Processes.process_id Processes.process_integrity_level Processes.process_name Processes.process_path
29-
Processes.user Processes.user_id Processes.vendor_product
30-
| `drop_dm_object_name(Processes)`
31-
| `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `malicious_powershell_process___execution_policy_bypass_filter`'
24+
bypass *") by Processes.action Processes.dest Processes.original_file_name Processes.parent_process
25+
Processes.parent_process_exec Processes.parent_process_guid Processes.parent_process_id
26+
Processes.parent_process_name Processes.parent_process_path Processes.process Processes.process_exec
27+
Processes.process_guid Processes.process_hash Processes.process_id Processes.process_integrity_level
28+
Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product
29+
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
30+
| `malicious_powershell_process___execution_policy_bypass_filter`'
3231
how_to_implement: The detection is based on data that originates from Endpoint Detection
3332
and Response (EDR) agents. These agents are designed to provide security-related
3433
telemetry from the endpoints where the agent is installed. To implement this search,
@@ -66,13 +65,14 @@ rba:
6665
threat_objects: []
6766
tags:
6867
analytic_story:
68+
- DHS Report TA18-074A
69+
- Volt Typhoon
6970
- China-Nexus Threat Activity
7071
- AsyncRAT
71-
- DarkCrystal RAT
72-
- Volt Typhoon
73-
- Salt Typhoon
7472
- HAFNIUM Group
75-
- DHS Report TA18-074A
73+
- Salt Typhoon
74+
- XWorm
75+
- DarkCrystal RAT
7676
asset_type: Endpoint
7777
mitre_attack_id:
7878
- T1059.001
Lines changed: 43 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
name: PowerShell 4104 Hunting
22
id: d6f2b006-0041-11ec-8885-acde48001122
3-
version: 16
4-
date: '2025-05-02'
3+
version: '17'
4+
date: '2025-05-06'
55
author: Michael Haag, Splunk
66
status: production
77
type: Hunting
8-
description:
9-
The following analytic identifies suspicious PowerShell execution using
8+
description: The following analytic identifies suspicious PowerShell execution using
109
Script Block Logging (EventCode 4104). It leverages specific patterns and keywords
1110
within the ScriptBlockText field to detect potentially malicious activities. This
1211
detection is significant for SOC analysts as PowerShell is commonly used by attackers
@@ -15,9 +14,8 @@ description:
1514
execute arbitrary commands, exfiltrate data, or maintain long-term access to the
1615
compromised system, posing a severe threat to the organization's security.
1716
data_source:
18-
- Powershell Script Block Logging 4104
19-
search:
20-
'`powershell` EventCode=4104 | eval DoIt = if(match(ScriptBlockText,"(?i)(\$doit)"),
17+
- Powershell Script Block Logging 4104
18+
search: '`powershell` EventCode=4104 | eval DoIt = if(match(ScriptBlockText,"(?i)(\$doit)"),
2119
"4", 0) | eval enccom=if(match(ScriptBlockText,"[A-Za-z0-9+\/]{44,}([A-Za-z0-9+\/]{4}|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)")
2220
OR match(ScriptBlockText, "(?i)[-]e(nc*o*d*e*d*c*o*m*m*a*n*d*)*\s+[^-]"),4,0) |
2321
eval suspcmdlet=if(match(ScriptBlockText, "(?i)Add-Exfiltration|Add-Persistence|Add-RegBackdoor|Add-ScrnSaveBackdoor|Check-VM|Do-Exfiltration|Enabled-DuplicateToken|Exploit-Jboss|Find-Fruit|Find-GPOLocation|Find-TrustedDocuments|Get-ApplicationHost|Get-ChromeDump|Get-ClipboardContents|Get-FoxDump|Get-GPPPassword|Get-IndexedItem|Get-Keystrokes|LSASecret|Get-PassHash|Get-RegAlwaysInstallElevated|Get-RegAutoLogon|Get-RickAstley|Get-Screenshot|Get-SecurityPackages|Get-ServiceFilePermission|Get-ServicePermission|Get-ServiceUnquoted|Get-SiteListPassword|Get-System|Get-TimedScreenshot|Get-UnattendedInstallFile|Get-Unconstrained|Get-VaultCredential|Get-VulnAutoRun|Get-VulnSchTask|Gupt-Backdoor|HTTP-Login|Install-SSP|Install-ServiceBinary|Invoke-ACLScanner|Invoke-ADSBackdoor|Invoke-ARPScan|Invoke-AllChecks|Invoke-BackdoorLNK|Invoke-BypassUAC|Invoke-CredentialInjection|Invoke-DCSync|Invoke-DllInjection|Invoke-DowngradeAccount|Invoke-EgressCheck|Invoke-Inveigh|Invoke-InveighRelay|Invoke-Mimikittenz|Invoke-NetRipper|Invoke-NinjaCopy|Invoke-PSInject|Invoke-Paranoia|Invoke-PortScan|Invoke-PoshRat|Invoke-PostExfil|Invoke-PowerDump|Invoke-PowerShellTCP|Invoke-PsExec|Invoke-PsUaCme|Invoke-ReflectivePEInjection|Invoke-ReverseDNSLookup|Invoke-RunAs|Invoke-SMBScanner|Invoke-SSHCommand|Invoke-Service|Invoke-Shellcode|Invoke-Tater|Invoke-ThunderStruck|Invoke-Token|Invoke-UserHunter|Invoke-VoiceTroll|Invoke-WScriptBypassUAC|Invoke-WinEnum|MailRaider|New-HoneyHash|Out-Minidump|Port-Scan|PowerBreach|PowerUp|PowerView|Remove-Update|Set-MacAttribute|Set-Wallpaper|Show-TargetScreen|Start-CaptureServer|VolumeShadowCopyTools|NEEEEWWW|(Computer|User)Property|CachedRDPConnection|get-net\S+|invoke-\S+hunter|Install-Service|get-\S+(credent|password)|remoteps|Kerberos.*(policy|ticket)|netfirewall|Uninstall-Windows|Verb\s+Runas|AmsiBypass|nishang|Invoke-Interceptor|EXEonRemote|NetworkRelay|PowerShelludp|PowerShellIcmp|CreateShortcut|copy-vss|invoke-dll|invoke-mass|out-shortcut|Invoke-ShellCommand"),1,0)
@@ -45,52 +43,52 @@ search:
4543
compressed, downgrade, iex, mimikatz, rundll32, empire, webclient, syswow64, httplocal,
4644
reflection, invokewmi, invokecmd, base64, get, suspcmdlet, suspkeywrd | rename Computer
4745
as dest, UserID as user | `powershell_4104_hunting_filter`'
48-
how_to_implement:
49-
The following Hunting analytic requires PowerShell operational logs
46+
how_to_implement: The following Hunting analytic requires PowerShell operational logs
5047
to be imported. Modify the powershell macro as needed to match the sourcetype or
5148
add index. This analytic is specific to 4104, or PowerShell Script Block Logging.
5249
known_false_positives: Limited false positives. May filter as needed.
5350
references:
54-
- https://github.com/inodee/threathunting-spl/blob/master/hunt-queries/powershell_qualifiers.md
55-
- https://docs.splunk.com/Documentation/UBA/5.0.4.1/GetDataIn/AddPowerShell
56-
- https://github.com/marcurdy/dfir-toolset/blob/master/Powershell%20Blueteam.txt
57-
- https://devblogs.microsoft.com/powershell/powershell-the-blue-team/
58-
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging?view=powershell-5.1
59-
- https://www.mandiant.com/resources/greater-visibilityt
60-
- https://hurricanelabs.com/splunk-tutorials/how-to-use-powershell-transcription-logs-in-splunk/
61-
- https://www.splunk.com/en_us/blog/security/hunting-for-malicious-powershell-using-script-block-logging.html
62-
- https://adlumin.com/post/powerdrop-a-new-insidious-powershell-script-for-command-and-control-attacks-targets-u-s-aerospace-defense-industry/
51+
- https://github.com/inodee/threathunting-spl/blob/master/hunt-queries/powershell_qualifiers.md
52+
- https://docs.splunk.com/Documentation/UBA/5.0.4.1/GetDataIn/AddPowerShell
53+
- https://github.com/marcurdy/dfir-toolset/blob/master/Powershell%20Blueteam.txt
54+
- https://devblogs.microsoft.com/powershell/powershell-the-blue-team/
55+
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging?view=powershell-5.1
56+
- https://www.mandiant.com/resources/greater-visibilityt
57+
- https://hurricanelabs.com/splunk-tutorials/how-to-use-powershell-transcription-logs-in-splunk/
58+
- https://www.splunk.com/en_us/blog/security/hunting-for-malicious-powershell-using-script-block-logging.html
59+
- https://adlumin.com/post/powerdrop-a-new-insidious-powershell-script-for-command-and-control-attacks-targets-u-s-aerospace-defense-industry/
6360
tags:
6461
analytic_story:
65-
- Braodo Stealer
66-
- Cactus Ransomware
67-
- China-Nexus Threat Activity
68-
- CISA AA23-347A
69-
- CISA AA24-241A
70-
- Cleo File Transfer Software
71-
- DarkGate Malware
72-
- Data Destruction
73-
- Flax Typhoon
74-
- Hermetic Wiper
75-
- Lumma Stealer
76-
- Malicious PowerShell
77-
- Medusa Ransomware
78-
- Rhysida Ransomware
79-
- Salt Typhoon
80-
- SystemBC
81-
- PHP-CGI RCE Attack on Japanese Organizations
82-
- Water Gamayun
62+
- CISA AA23-347A
63+
- China-Nexus Threat Activity
64+
- Data Destruction
65+
- PHP-CGI RCE Attack on Japanese Organizations
66+
- Hermetic Wiper
67+
- Medusa Ransomware
68+
- Braodo Stealer
69+
- Cleo File Transfer Software
70+
- Lumma Stealer
71+
- Salt Typhoon
72+
- Cactus Ransomware
73+
- Malicious PowerShell
74+
- Water Gamayun
75+
- XWorm
76+
- Flax Typhoon
77+
- CISA AA24-241A
78+
- Rhysida Ransomware
79+
- SystemBC
80+
- DarkGate Malware
8381
asset_type: Endpoint
8482
mitre_attack_id:
85-
- T1059.001
83+
- T1059.001
8684
product:
87-
- Splunk Enterprise
88-
- Splunk Enterprise Security
89-
- Splunk Cloud
85+
- Splunk Enterprise
86+
- Splunk Enterprise Security
87+
- Splunk Cloud
9088
security_domain: endpoint
9189
tests:
92-
- name: True Positive Test
93-
attack_data:
94-
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1059.001/powershell_script_block_logging/sbl_xml.log
95-
source: XmlWinEventLog:Microsoft-Windows-PowerShell/Operational
96-
sourcetype: XmlWinEventLog
90+
- name: True Positive Test
91+
attack_data:
92+
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1059.001/powershell_script_block_logging/sbl_xml.log
93+
source: XmlWinEventLog:Microsoft-Windows-PowerShell/Operational
94+
sourcetype: XmlWinEventLog

0 commit comments

Comments
 (0)