
EnterpriseModernAppManager::ProvisionApplication 버그에 대한 간단한 글
이것은 이론에 대한 간단한 기록일 뿐입니다. 이 버그는 충돌이 있었고 실제로 제대로 테스트하지 못했기 때문입니다.
EnterpriseAppMgmtSvc는 COM 개체를 구현하는 흥미로운 서비스입니다. Windows Phone에서 비롯된 것으로 보이며, 실제로 이 함수가 구현하는 대부분의 COM 인터페이스는 Windows Phone에서만 작동하는 데드 코드입니다. OneCore 덕분입니다!
비 WCOS 시스템에서 기본적으로 작동하는 유일한 coclass는 EnterpriseModernAppManager입니다. MS는 원래 EnterpriseModernAppManager::InstallApplication()에 권한 검사(관리자여야 함)를 추가했지만, 이 coclass의 다른 메서드에는 권한 검사를 추가하는 것을 잊었습니다.
(당연히 CVE-2022-35841에 대한 패치는 EnterpriseModernAppManager의 다른 메서드에 권한 검사를 추가합니다.)
여기서 흥미로운 메서드는 EnterpriseAppMgmtSvc::ProvisionApplication으로, 전달된 XML 문자열 구성에서 APPX 패키지를 스테이징(부분 설치?)합니다.
제한된 기능 몇 가지를 통해 임의의 APPX 패키지는 desktop6:Service 확장 및 packagedServices 및 localSystemServices 제한 기능을 사용하여 SYSTEM으로 실행되는 NT 서비스를 설치하도록 구성할 수 있습니다.
여기까지가 제가 파악한 내용입니다. 당연히 충돌과 오늘의 패치를 예상하지 못했기 때문에 실제로 테스트해보지 않았으며, 따라서 APPX에 어떤 서명이 필요한지 알지 못합니다.