通用Windows平台(APPX)软件进行的社会工程

该图显示了支持通用Windows平台应用程序的各种设备(PC,智能手机,IoT,Xbox,Surface Hub和Hololens)

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兆字节。

通过Yandex,Mail.ru和GMail邮件传递APPX文件

总结

APPX Desktop Bridge用于病毒分发的好处
  • 您可以使用“作为exe文件”
  • 不强加隔离或特权限制
  • 一键安装并运行
  • 没有被邮件服务器过滤

缺点
  • 需要证书才能签名
  • 仅适用于Windows 10 1609和更高版本。


参考文献

示例APPX Desktop Bridge文件 (带有自签名证书)
APPX包装说明
手动创建清单文件的说明
桌面桥信息

Source: https://habr.com/ru/post/zh-CN430692/


All Articles