
petit article sur le bug EnterpriseModernAppManager::ProvisionApplication
Ceci n'est qu'une petite note avec la théorie, car ce bug a été découvert en parallèle et je n'ai jamais pris le temps de le tester correctement.
EnterpriseAppMgmtSvc est un service intéressant qui implémente des objets COM. Il semble dater de Windows Phone et, en effet, la plupart des interfaces COM implémentées par cette fonction sont du code mort qui ne fonctionne que sous Windows Phone — merci OneCore !
La seule coclasse qui semble fonctionner par défaut sur les systèmes non-WCOS est EnterpriseModernAppManager. MS avait initialement une vérification de permission (admin requis) sur EnterpriseModernAppManager::InstallApplication(), mais a oublié d'ajouter des vérifications de permission sur les autres méthodes de cette coclasse.
(Bien entendu, le correctif de CVE-2022-35841 ajoute les vérifications de permission pour les autres méthodes de EnterpriseModernAppManager.)
La méthode intéressante ici est EnterpriseAppMgmtSvc::ProvisionApplication, qui prépare (installe partiellement ?) les paquets APPX à partir d'une configuration passée sous forme de chaîne XML.
Un paquet APPX arbitraire, via quelques capacités restreintes, peut être configuré pour installer un service NT s'exécutant en tant que SYSTEM, via l'extension desktop6:Service, et les capacités restreintes packagedServices et localSystemServices.
C'est tout ce que j'ai trouvé. Je ne m'attendais évidemment pas à une collision ni à un correctif aujourd'hui, donc je n'ai jamais testé cela en pratique et je ne sais donc pas quel type de signature le paquet APPX exigerait.