
небольшая статья об ошибке EnterpriseModernAppManager::ProvisionApplication
Это лишь небольшая заметка с теорией, так как этот баг был обнаружен, и я так и не дошел до его полноценного тестирования.
EnterpriseAppMgmtSvc — это интересный сервис, реализующий COM-объекты. Похоже, он ведет свое начало с Windows Phone, и действительно, большинство COM-интерфейсов, реализованных этой функцией, являются мертвым кодом, работающим только на Windows Phone — спасибо OneCore!
Единственный класс (coclass), который по умолчанию работает в системах, отличных от WCOS, — это EnterpriseModernAppManager. Изначально Microsoft добавила проверку разрешений (требуются права администратора) для метода EnterpriseModernAppManager::InstallApplication(), но забыла добавить проверки для других методов этого класса.
(Естественно, патч для CVE-2022-35841 добавляет проверки разрешений для остальных методов в EnterpriseModernAppManager.)
Интересный метод здесь — EnterpriseAppMgmtSvc::ProvisionApplication, который подготавливает (частично устанавливает?) пакеты APPX из переданной XML-строки конфигурации.
Произвольный пакет APPX, используя пару ограниченных возможностей, можно настроить на установку NT-службы, работающей как SYSTEM, через расширение desktop6:Service и ограниченные возможности packagedServices и localSystemServices.
На этом я остановился. Я, естественно, не ожидал коллизии и патча сегодня, поэтому так и не проверил это на практике и, следовательно, не знаю, какую подпись потребовал бы APPX.