Социальная инженерия с помощью программ Universal Windows Platform (APPX)
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-файл можно было установить, он должен быть подписан действующей цифровой подписью с возможностью подписи кода, доверенного удостовещяющего центра.
test
test
test
logo.png
Самый простой вариант упаковки существующего 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 происходит в один клик, не требует прав администратора. В установщике галочка запуска программы после установки отмечена по умолчанию, и программа сразу запустится, если пользователь её не уберет.
Your browser does not support HTML5 video.
Все популярные почтовые сервисы не блокируют APPX-файлы в приложениях к письму.
У Gmail есть странная особенность: файл должен быть размером больше 4 мегабайт.
Резюме
Преимущества APPX Dekstop Bridge для вирусных рассылок:
- Можно использовать «как exe-файл»
- Не накладывает изоляции и ограничений привилегий
- Устанавливается и запускается в один клик
- Не фильтруется почтовыми серверами
Недостатки:
- Требует сертификата для подписи кода
- Работает только в Windows 10 1609 и новее
Ссылки
Пример файла APPX Desktop Bridge
Инструкция по упаковке APPX
Инструкция по созданию файла манифеста вручную
Информация о Desktop Bridge