TL; DR :您可以将常规.exe文件打包到Universal Windows Platform .appx文件中,该文件将在Windows 10(内部版本1607及更高版本)上运行,其方式与常规.exe文件几乎相同。 可以通过电子邮件分发将其用于社会工程攻击-电子邮件提供商不会阻止APPX文件。 该文件必须使用有效的数字签名进行签名。
通用Windows平台
通用Windows平台-(相对)用于为Windows 10,Windows 10移动版,Xbox One和Hololens创建通用应用程序的新标准。 该标准随Windows 10发行版一起出现,并提供具有特权限制和隔离,容器格式和其中的元数据的API。
UWP应用程序在Microsoft Store中广泛存在。 它们是自给自足的,安全的,不需要管理员权限即可安装,将设置存储在严格指定的位置,并且可以从“开始”完全删除。
UWP是Microsoft尝试摆脱旧的体系结构方法进行程序开发的一种尝试:实现在移动平台上完成的特权分离,通过像素网格摆脱WinAPI GUI(完全支持任何像素密度的屏幕)。
UWP程序可以用C#,C ++,VB和JS编写,建议将XAML,DirectX和HTML作为GUI框架。
直到最近,UWP程序只能被隔离,但是在Windows 10 1607的组装中,Microsoft实现了Desktop Bridge-能够将任何Win32程序打包为UWP,而无需使用UWP API,特权限制和隔离。
此功能为社会工程攻击打开了范围。
APPX格式
UWP标准化了APPX文件格式-具有特定结构的常规ZIP存档。 APPX文件必须包含AppxManifest.xml-一个包含程序包内容描述的文件,您可以自行创建或创建。
AppxManifest.xml包含程序名称,描述,图标,必需的特权,要运行的文件的名称以及其中的入口点。
为了安装APPX文件,必须使用有效的数字签名对其进行签名,并且可以对通知中心信任的代码进行签名。
禁用隔离的示例AppxManifest.xml文件<?xml version="1.0" encoding="utf-8"?> <Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"> <Identity Name="MyCompany.MySuite.MyApp" Version="1.0.0.0" Publisher="CN=Contoso Software, O=Contoso Corporation, C=US" ProcessorArchitecture="x64" /> <Properties> <DisplayName>test</DisplayName> <PublisherDisplayName>test</PublisherDisplayName> <Description>test</Description> <Logo>logo.png</Logo> </Properties> <Resources> <Resource Language="en-us" /> </Resources> <Dependencies> <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" /> </Dependencies> <Capabilities> <rescap:Capability Name="runFullTrust"/> </Capabilities> <Applications> <Application Id="MyApp" Executable="MyApp.exe" EntryPoint="Windows.FullTrustApplication"> <uap:VisualElements DisplayName="MyApp" Description="MyApp" Square150x150Logo="logo.png" Square44x44Logo="logo.png" BackgroundColor="#666666" /> </Application> </Applications> </Package>
使用桌面桥在appx中打包现有Win32 exe文件的最简单方法是手动编写清单文件,并使用Windows SDK中包含的makeappx.exe实用工具创建appx容器。
makeappx.exe pack /d input_directory /p output.appx
然后使用signtool.exe签名:
signtool.exe sign /f "mycert.pfx" /p "123456" /fd sha256 /tr http://timestamp.comodoca.com/?td=sha256 /td sha256 output.appx
APPX对社会工程学的好处
如果邮件服务器使用exe附件过滤邮件,则可以在邮件列表中使用APPX文件代替exe文件。
一键安装APPX,不需要管理员权限。 在安装程序中,默认情况下会选中用于在安装后启动程序的复选标记,如果用户不删除该程序,该程序将立即启动。
所有流行的电子邮件服务都不会阻止电子邮件附件中的APPX文件。
Gmail具有一个奇怪的功能:文件必须大于4兆字节。

总结
APPX Desktop Bridge用于病毒分发的
好处 :
- 您可以使用“作为exe文件”
- 不强加隔离或特权限制
- 一键安装并运行
- 没有被邮件服务器过滤
缺点 :
- 需要证书才能签名
- 仅适用于Windows 10 1609和更高版本。
参考文献
示例APPX Desktop Bridge文件 (带有自签名证书)
APPX包装说明手动创建清单文件的说明桌面桥信息