Skip to content

Commit 93aafa6

Browse files
authored
Merge pull request #3646 from splunk/MSIX-Resurrection
The Lost Payload: MSIX Resurrection
2 parents 9837cae + dc9bd32 commit 93aafa6

15 files changed

+781
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Windows Event Log AppXDeployment-Server 400
2+
id: 3e5f9d2a-b8c7-4d1e-a6f3-7b9c8d5e4f2a
3+
version: 1
4+
date: '2025-08-05'
5+
author: Michael Haag, Splunk
6+
description: |
7+
This data source captures Windows Event Logs from the Microsoft-Windows-AppXDeploymentServer/Operational channel, specifically focusing on EventCode 400. These events are generated when a package deployment operation begins, providing details about the package being deployed.
8+
9+
Event ID 400 is particularly significant for security monitoring as it includes information about whether the package has full trust privileges. Full trust packages run with elevated privileges outside the normal AppX container restrictions, allowing them to access system resources that regular AppX packages cannot.
10+
11+
Adversaries have been observed leveraging full trust MSIX packages to deliver malware, as documented in recent threat intelligence reports. Monitoring these events can help identify potentially malicious package installations that request elevated privileges.
12+
source: XmlWinEventLog:Microsoft-Windows-AppXDeploymentServer/Operational
13+
sourcetype: XmlWinEventLog
14+
separator: EventCode
15+
supported_TA:
16+
- name: Splunk Add-on for Microsoft Windows
17+
url: https://splunkbase.splunk.com/app/742
18+
version: 9.0.1
19+
fields:
20+
- CategoryString
21+
- Channel
22+
- Computer
23+
- EventCode
24+
- EventData_Xml
25+
- EventID
26+
- EventRecordID
27+
- HasFullTrust
28+
- IsCentennial
29+
- Keywords
30+
- Level
31+
- Opcode
32+
- PackageDisplayName
33+
- PackageFullName
34+
- PackageSourceUri
35+
- Path
36+
- CallingProcess
37+
- ProcessID
38+
- RecordNumber
39+
- SourceName
40+
- SystemTime
41+
- System_Props_Xml
42+
- Task
43+
- TaskCategory
44+
- ThreadID
45+
- Version
46+
- _time
47+
- dest
48+
- host
49+
- user_id
50+
output_fields:
51+
- _time
52+
- dest
53+
- dvc
54+
- EventCode
55+
- Path
56+
- ProcessID
57+
- user_id
58+
references:
59+
- https://learn.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes
60+
- https://learn.microsoft.com/en-us/windows/msix/package/package-identity
61+
- https://redcanary.com/blog/threat-intelligence/msix-installers/
62+
example_log: <Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-AppXDeployment-Server' Guid='{3f471139-acb7-4a01-b7a7-ff5da4ba2d43}'/><EventID>400</EventID><Version>0</Version><Level>4</Level><Task>3</Task><Opcode>2</Opcode><Keywords>0x4000000000000001</Keywords><TimeCreated SystemTime='2025-08-06T16:21:23.2487289Z'/><EventRecordID>16489</EventRecordID><Correlation ActivityID='{df6fb197-9b7b-0003-0230-a39ded06dc01}'/><Execution ProcessID='5820' ThreadID='5960'/><Channel>Microsoft-Windows-AppXDeploymentServer/Operational</Channel><Computer>HaagMSIX</Computer><Security UserID='S-1-5-21-2568234075-4274264167-1034506908-500'/></System><EventData><Data Name='DeploymentOperation'>6</Data><Data Name='PackageFullName'>Microsoft.DesktopAppInstaller_2025.717.1857.0_neutral_~_8wekyb3d8bbwe</Data><Data Name='Path'> (AppxBundleManifest.xml) </Data><Data Name='MountPoint'>C:</Data><Data Name='TargetPlatform'>0x0</Data><Data Name='SystemVolume'>true</Data><Data Name='StorageId'>\\?\Volume{de26f417-916d-40a6-aaa9-9675b36f2d21}</Data><Data Name='IsCentennial'>false</Data><Data Name='PackageType'>0x8</Data><Data Name='IsPackageEncrypted'>false</Data><Data Name='DeploymentOptions'>0x40040040</Data><Data Name='IsStreamingPackage'>false</Data><Data Name='IsInRelatedSet'>false</Data><Data Name='IsPackageUsingBDC'>false</Data><Data Name='MainPackageFamilyName'>NULL</Data><Data Name='CallingProcess'>sihost.exe</Data><Data Name='IsOptional'>false</Data><Data Name='PackageFlags'>0x400</Data><Data Name='PackageFlags2'>0x800</Data><Data Name='HasWin32alacarte'>false</Data><Data Name='HasFullTrust'>false</Data><Data Name='ExternalLocation'></Data><Data Name='PackageSourceUri'>x-windowsupdate://05C4B27B-6E00-4A05-9B94-15C77E54E690/F855810C-9F77-45FF-A0F5-CD0FEAA945C6/508bfda4dcfb262c40e6f5d8e8811b3f47ee98a2</Data><Data Name='PackageDisplayName'> </Data></EventData></Event>
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Windows Event Log AppXDeployment-Server 854
2+
id: 4d2e6f8a-c9b7-5a3e-8d1f-2e9c7b5a4f3d
3+
version: 1
4+
date: '2025-08-05'
5+
author: Michael Haag, Splunk
6+
description: |
7+
This data source captures Windows Event Logs from the Microsoft-Windows-AppXDeploymentServer/Operational channel, specifically focusing on EventCode 854. These events are generated when an MSIX/AppX package has been successfully installed on a system.
8+
9+
Event ID 854 provides information about successful package installations, including the path to the installed package and the user who performed the installation. This data is valuable for security monitoring as it can help identify unauthorized or suspicious package installations.
10+
11+
While most package installations are legitimate, monitoring these events can help identify potentially malicious activity, especially when correlated with other events such as unsigned package installations (EventID 603 with Flags=8388608) or full trust package installations (EventID 400 with HasFullTrust=true).
12+
source: XmlWinEventLog:Microsoft-Windows-AppXDeploymentServer/Operational
13+
sourcetype: XmlWinEventLog
14+
separator: EventCode
15+
supported_TA:
16+
- name: Splunk Add-on for Microsoft Windows
17+
url: https://splunkbase.splunk.com/app/742
18+
version: 9.0.1
19+
fields:
20+
- CategoryString
21+
- Channel
22+
- Computer
23+
- EventCode
24+
- EventData_Xml
25+
- EventID
26+
- EventRecordID
27+
- Keywords
28+
- Level
29+
- Opcode
30+
- Path
31+
- ProcessID
32+
- RecordNumber
33+
- SourceName
34+
- SystemTime
35+
- System_Props_Xml
36+
- Task
37+
- TaskCategory
38+
- ThreadID
39+
- Version
40+
- _time
41+
- dest
42+
- host
43+
- user_id
44+
output_fields:
45+
- _time
46+
- dest
47+
- dvc
48+
- EventCode
49+
- Path
50+
- user_id
51+
references:
52+
- https://learn.microsoft.com/en-us/windows/win32/appxpkg/troubleshooting
53+
- https://www.appdeploynews.com/packaging-types/msix/troubleshooting-an-msix-package/
54+
- https://www.advancedinstaller.com/msix-installation-or-launching-errors-and-fixes.html
55+
example_log: <Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-AppXDeploymentServer' Guid='{8127f6d4-59f9-4abf-8952-3e3a02073d5f}'/><EventID>854</EventID><Version>0</Version><Level>4</Level><Task>0</Task><Opcode>0</Opcode><Keywords>0x4000000000000000</Keywords><TimeCreated SystemTime='2025-08-05T12:34:56.7890123Z'/><EventRecordID>123456</EventRecordID><Correlation/><Execution ProcessID='1234' ThreadID='5678'/><Channel>Microsoft-Windows-AppXDeploymentServer/Operational</Channel><Computer>DESKTOP-EXAMPLE</Computer><Security UserID='S-1-5-21-1234567890-1234567890-1234567890-1001'/></System><EventData><Data Name='Path'>C:\Users\User\Downloads\App.msix</Data></EventData></Event>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Windows Event Log AppXDeployment-Server 855
2+
id: 4491537c-521c-46f7-9209-f56f852aa231
3+
version: 1
4+
date: '2025-08-05'
5+
author: Michael Haag, Splunk
6+
description: |
7+
This data source captures Windows Event Logs from the Microsoft-Windows-AppXDeploymentServer/Operational channel, specifically focusing on EventCode 855. These events are generated when a package deployment operation completes successfully, providing details about the packages that were installed or updated.
8+
9+
Event ID 855 is particularly valuable for security monitoring as it confirms the successful installation of MSIX packages, including information about the package identifiers. This can help identify potentially malicious package installations in an environment.
10+
11+
Monitoring these events can help track MSIX package installations across an environment, which is important given that MSIX packages have been leveraged by threat actors such as FIN7, Zloader (Storm-0569), and FakeBat (Storm-1113) for malware delivery.
12+
source: XmlWinEventLog:Microsoft-Windows-AppXDeploymentServer/Operational
13+
sourcetype: XmlWinEventLog
14+
separator: EventCode
15+
supported_TA:
16+
- name: Splunk Add-on for Microsoft Windows
17+
url: https://splunkbase.splunk.com/app/742
18+
version: 9.0.1
19+
fields:
20+
- CategoryString
21+
- Channel
22+
- Computer
23+
- Correlation
24+
- EventCode
25+
- EventData_Xml
26+
- EventID
27+
- EventRecordID
28+
- Keywords
29+
- Level
30+
- Opcode
31+
- PackageMoniker
32+
- ProcessID
33+
- Provider
34+
- ProviderGuid
35+
- Task
36+
- ThreadID
37+
- TimeCreated
38+
- Version
39+
- _time
40+
- dest
41+
- host
42+
- user_id
43+
output_fields:
44+
- _time
45+
- dest
46+
- dvc
47+
- EventCode
48+
- user_id
49+
references:
50+
- https://learn.microsoft.com/en-us/windows/win32/appxpkg/troubleshooting
51+
- https://www.advancedinstaller.com/msix-installation-or-launching-errors-and-fixes.html
52+
- https://redcanary.com/blog/msix-installers/
53+
example_log: "<Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-AppXDeployment-Server' Guid='{3f471139-acb7-4a01-b7a7-ff5da4ba2d43}'/><EventID>855</EventID><Version>0</Version><Level>4</Level><Task>4</Task><Opcode>0</Opcode><Keywords>0x4000000000000001</Keywords><TimeCreated SystemTime='2025-08-06T16:20:58.5814488Z'/><EventRecordID>16417</EventRecordID><Correlation ActivityID='{df6fb197-9b7b-0002-d0dd-a29ded06dc01}'/><Execution ProcessID='5820' ThreadID='5960'/><Channel>Microsoft-Windows-AppXDeploymentServer/Operational</Channel><Computer>HaagMSIX</Computer><Security UserID='S-1-5-21-2568234075-4274264167-1034506908-500'/></System><EventData><Data Name='PackageMoniker'> addPackageList: Microsoft.DesktopAppInstaller_1.26.430.0_neutral_split.scale-100_8wekyb3d8bbwe Microsoft.DesktopAppInstaller_2025.717.1857.0_neutral_~_8wekyb3d8bbwe updateList: Microsoft.DesktopAppInstaller_1.26.429.0_x64__8wekyb3d8bbwe is updating to Microsoft.DesktopAppInstaller_1.26.430.0_x64__8wekyb3d8bbwe</Data></EventData></Event>"
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Windows Event Log AppXPackaging 171
2+
id: 2d0f8e3c-a2d7-4b9e-8f1c-6a5d7e3e9f2b
3+
version: 1
4+
date: '2025-08-05'
5+
author: Michael Haag, Splunk
6+
description: |
7+
This data source captures Windows Event Logs from the Microsoft-Windows-AppXPackaging/Operational channel, specifically focusing on EventCode 171. These events are generated when a user clicks on or attempts to interact with an MSIX package, even if the package is not fully installed.
8+
9+
Event ID 171 provides information about user interactions with MSIX packages, including the package full name and the user who initiated the interaction. This data is valuable for security monitoring as it can help identify what MSIX packages users are attempting to open in an environment, which may help detect malicious MSIX packages before they're fully installed.
10+
11+
MSIX package abuse has been observed in various threat campaigns, including those from FIN7, Zloader (Storm-0569), and FakeBat (Storm-1113). Monitoring these interactions can provide early warning of potential MSIX package abuse.
12+
source: XmlWinEventLog:Microsoft-Windows-AppxPackaging/Operational
13+
sourcetype: XmlWinEventLog
14+
separator: EventCode
15+
supported_TA:
16+
- name: Splunk Add-on for Microsoft Windows
17+
url: https://splunkbase.splunk.com/app/742
18+
version: 9.0.1
19+
fields:
20+
- CategoryString
21+
- Channel
22+
- Computer
23+
- EventCode
24+
- EventData_Xml
25+
- EventID
26+
- EventRecordID
27+
- Keywords
28+
- Level
29+
- Opcode
30+
- ProcessID
31+
- RecordNumber
32+
- SourceName
33+
- SystemTime
34+
- System_Props_Xml
35+
- Task
36+
- TaskCategory
37+
- ThreadID
38+
- Version
39+
- _time
40+
- dest
41+
- host
42+
- packageFullName
43+
- user_id
44+
references:
45+
- https://learn.microsoft.com/en-us/windows/win32/appxpkg/troubleshooting
46+
- https://www.appdeploynews.com/packaging-types/msix/troubleshooting-an-msix-package/
47+
- https://redcanary.com/blog/msix-installers/
48+
example_log: <Event xmlns='http://schemas.microsoft.com/win/2004/08/events/event'><System><Provider Name='Microsoft-Windows-AppXPackaging' Guid='{4bfe0fde-99d6-5630-8a47-da7bfaefd876}'/><EventID>171</EventID><Version>0</Version><Level>4</Level><Task>0</Task><Opcode>0</Opcode><Keywords>0x4000000000000000</Keywords><TimeCreated SystemTime='2025-08-05T12:34:56.7890123Z'/><EventRecordID>123456</EventRecordID><Correlation/><Execution ProcessID='1234' ThreadID='5678'/><Channel>Microsoft-Windows-AppXPackaging/Operational</Channel><Computer>DESKTOP-EXAMPLE</Computer><Security UserID='S-1-5-21-1234567890-1234567890-1234567890-1001'/></System><EventData><Data Name='packageFullName'>MaliciousApp_1.0.0.0_x64__abcd1234</Data></EventData></Event>
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Windows Advanced Installer MSIX with AI_STUBS Execution
2+
id: 56b2e58c-5909-49a3-998e-1f4815186ec2
3+
version: 1
4+
date: '2025-08-05'
5+
author: Michael Haag, Splunk
6+
status: production
7+
type: TTP
8+
description: The following analytic identifies the execution of Advanced Installer MSIX Package Support Framework (PSF) components, specifically the AI_STUBS executables with the original filename 'popupwrapper.exe'. This detection leverages data from Endpoint Detection and Response (EDR) agents, focusing on process paths and original filenames. This activity is significant as adversaries have been observed packaging malicious content within MSIX files built with Advanced Installer to bypass security controls. These AI_STUBS executables (with original filename 'popupwrapper.exe') are hallmark artifacts of potentially malicious MSIX packages. If confirmed malicious, this could allow attackers to execute arbitrary code, establish persistence, or deliver malware while evading traditional detection mechanisms.
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 Processes.process_path IN ("*\\AI_STUBS\\AiStubX64Elevated.exe",
15+
"*\\AI_STUBS\\AiStubX86Elevated.exe", "*\\AI_STUBS\\AiStubX64.exe", "*\\AI_STUBS\\AiStubX86.exe") AND
16+
Processes.original_file_name="popupwrapper.exe" by Processes.action Processes.dest
17+
Processes.original_file_name Processes.parent_process Processes.parent_process_exec
18+
Processes.parent_process_guid Processes.parent_process_id Processes.parent_process_name
19+
Processes.parent_process_path Processes.process Processes.process_exec Processes.process_guid
20+
Processes.process_hash Processes.process_id Processes.process_integrity_level Processes.process_name
21+
Processes.process_path Processes.user Processes.user_id Processes.vendor_product
22+
| `drop_dm_object_name("Processes")`
23+
| `security_content_ctime(firstTime)`
24+
| `security_content_ctime(lastTime)`
25+
| `windows_advanced_installer_msix_with_ai_stubs_execution_filter`'
26+
how_to_implement: The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain process execution information, including process paths. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process.
27+
known_false_positives: Legitimate applications packaged with Advanced Installer using the Package Support Framework may trigger this detection. Verify if the MSIX package is from a trusted source and signed by a trusted publisher before taking action. Organizations that use Advanced Installer for legitimate software packaging may see false positives.
28+
references:
29+
- https://redcanary.com/blog/threat-intelligence/msix-installers/
30+
- https://redcanary.com/threat-detection-report/techniques/installer-packages/
31+
- https://learn.microsoft.com/en-us/windows/msix/package/package-support-framework
32+
- https://learn.microsoft.com/en-us/windows/msix/desktop/desktop-to-uwp-behind-the-scenes
33+
- https://attack.mitre.org/techniques/T1218/
34+
drilldown_searches:
35+
- name: View the detection results for - "$dest$"
36+
search: '%original_detection_search% | search dest = "$dest$"'
37+
earliest_offset: $info_min_time$
38+
latest_offset: $info_max_time$
39+
- name: View risk events for the last 7 days for - "$dest$"
40+
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$")
41+
starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime
42+
values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories)
43+
as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic)
44+
as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)`
45+
| `security_content_ctime(lastTime)`'
46+
earliest_offset: $info_min_time$
47+
latest_offset: $info_max_time$
48+
rba:
49+
message: Advanced Installer MSIX package with AI_STUBS execution detected on $dest$ by user $user$
50+
risk_objects:
51+
- field: dest
52+
type: system
53+
score: 60
54+
threat_objects:
55+
- field: process_path
56+
type: file_path
57+
tags:
58+
analytic_story:
59+
- MSIX Package Abuse
60+
asset_type: Endpoint
61+
mitre_attack_id:
62+
- T1218
63+
- T1553.005
64+
- T1204.002
65+
product:
66+
- Splunk Enterprise
67+
- Splunk Enterprise Security
68+
- Splunk Cloud
69+
security_domain: endpoint
70+
cve: []
71+
tests:
72+
- name: True Positive Test
73+
attack_data:
74+
- data: https://media.githubusercontent.com/media/splunk/attack_data/refs/heads/master/datasets/attack_techniques/T1218/msix_ai_stubs/windows_sysmon.log
75+
sourcetype: XmlWinEventLog
76+
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational

0 commit comments

Comments
 (0)