
Kurze Beschreibung des Bugs in EnterpriseModernAppManager::ProvisionApplication
Dies ist nur eine kleine Zusammenfassung mit der Theorie, da dieser Bug kollidiert wurde und ich nie dazu kam, ihn ordentlich zu testen.
EnterpriseAppMgmtSvc ist ein interessanter Dienst, der COM-Objekte implementiert. Scheint aus der Windows-Phone-Ära zu stammen, und tatsächlich sind die meisten der von dieser Funktion implementierten COM-Schnittstellen toter Code, der nur unter Windows Phone funktioniert – danke OneCore!
Die einzige Coclass, die standardmäßig auf Nicht-WCOS-Systemen zu funktionieren scheint, ist EnterpriseModernAppManager. Microsoft hatte ursprünglich eine Berechtigungsprüfung (muss Administrator sein) bei EnterpriseModernAppManager::InstallApplication(), vergaß jedoch, Berechtigungsprüfungen für die anderen Methoden in dieser Coclass hinzuzufügen.
(Natürlich fügt der Patch für CVE-2022-35841 die Berechtigungsprüfungen für die anderen Methoden in EnterpriseModernAppManager hinzu.)
Die interessante Methode hier ist EnterpriseAppMgmtSvc::ProvisionApplication, die APPX-Pakete aus einer übergebenen XML-String-Konfiguration bereitstellt (teilweise installiert?).
Ein beliebiges APPX-Paket kann über einige eingeschränkte Fähigkeiten so konfiguriert werden, dass es einen NT-Dienst installiert, der als SYSTEM läuft, über die desktop6:Service-Erweiterung und die eingeschränkten Fähigkeiten packagedServices und localSystemServices.
Weiter bin ich nicht gekommen. Ich habe natürlich nicht mit einer Kollision und einem Patch heute gerechnet, daher habe ich dies nie in der Praxis getestet und weiß nicht, welche Signatur das APPX benötigen würde.