Pull to refresh

Социальная инженерия с помощью программ Universal Windows Platform (APPX)

Reading time4 min
Views7.9K
На картинке изображены различные устройства (ПК, смартфоны, IoT, Xbox, Surface Hub, Hololens), поддерживающие приложения Universal Windows Platform

TL;DR: В APPX-файл Universal Windows Platform можно упаковать обычный exe-файл, который будет запускаться в Windows 10 (сборка 1607 и новее) примерно так же, как обычные exe-файлы. Это можно использовать для атак социальной инженерии, с помощью рассылки через email — почтовые провайдеры не блокируют файлы APPX. Файл должен быть подписан действующей цифровой подписью.

Universal Windows Platform

Universal Windows Platform — (сравнительно) новый стандарт для создания универсальных приложений под Windows 10, Windows 10 Mobile, Xbox One и Hololens. Стандарт появился с выходом Windows 10, и предоставляет API с ограничением привилегий и изоляцией, формат контейнера и метаданных внутри него.
UWP-приложения широко представлены в Microsoft Store. Они самодостаточны, безопасны, не требуют прав администратора для установки, хранят настройки в строго отведённых местах, и могут быть удалены начисто, прямо из «пуска».

UWP — попытка Microsoft избавиться от старых архитектурных подходов к разработке программ: внедрить разделение привилегий так, как это сделано на мобильных платформах, уйти от WinAPI GUI с пиксельной сеткой (для полноценной поддержки экранов любой плотности пикселей).
Программы UWP можно писать на C#, C++, VB и JS, а в качестве GUI-фреймфорка предлагается к использованию XAML, DirectX и HTML.

До недавнего времени, 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>

Самый простой вариант упаковки существующего Win32 exe-файла в appx с помощью Desktop Bridge — написать файл манифеста вручную, и создать appx-контейнер с помощью утилиты makeappx.exe, входящей в состав Windows SDK.
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 для социальной инженерии

APPX-файлы можно использовать в почтовых рассылках, в качестве замены exe-файлам, в случах, когда почтовый сервер фильтрует письма с exe-вложениями.
Установка APPX происходит в один клик, не требует прав администратора. В установщике галочка запуска программы после установки отмечена по умолчанию, и программа сразу запустится, если пользователь её не уберет.



Все популярные почтовые сервисы не блокируют APPX-файлы в приложениях к письму.
У Gmail есть странная особенность: файл должен быть размером больше 4 мегабайт.

Доставка APPX-файлов через почту Яндекс, Mail.ru и GMail

Резюме

Преимущества APPX Desktop Bridge для вирусных рассылок:
  • Можно использовать «как exe-файл»
  • Не накладывает изоляции и ограничений привилегий
  • Устанавливается и запускается в один клик
  • Не фильтруется почтовыми серверами

Недостатки:
  • Требует сертификата для подписи кода
  • Работает только в Windows 10 1609 и новее


Ссылки

Пример файла APPX Desktop Bridge (с самоподписным сертификатом)
Инструкция по упаковке APPX
Инструкция по созданию файла манифеста вручную
Информация о Desktop Bridge
Tags:
Hubs:
+22
Comments7

Articles

Change theme settings