
Chaîne d'exploitation de preuve de concept (CVE-2026-47301) pour Microsoft Configuration Manager (SCCM), combinant un contrôle d'accès défaillant, une traversée de chemin par écriture arbitraire CAB, un contournement de la vérification de certificat et un détournement de DLL pour obtenir une exécution de code au niveau SYSTEM.
Chaîne d'exploitation proof-of-concept que j'ai découverte, assignée sous CVE-2026-47301 pour Microsoft Configuration Manager (SCCM), combinant un contrôle d'accès défaillant, une écriture arbitraire de fichier par traversée de chemin lors de l'extraction CAB, un contournement de vérification de certificat et un détournement de DLL pour obtenir une exécution de code au niveau SYSTEM.
Cet exploit utilise un cab malveillant conçu spécifiquement pour abuser de cette CVE ; un cab a été fourni pour le POC par mes soins.
L'exploit détournera l'exécution en plaçant deux DLL à l'emplacement : ..\..\..\..\ depuis le chemin prévu vers le répertoire d'installation \bin\X64 de Configuration Manager. Installer Microsoft Configuration Manager sur un autre chemin n'aura pas d'importance puisque l'exploit est générique et fonctionne sur n'importe quel chemin sans rien connaître.
Les noms des DLL sont : adsource_original.dll et adsource.dll.
La DLL « original » est utilisée pour réaliser une attaque DLL Proxy et faire fonctionner l'exploit SANS faire planter le service SMS_EXECUTIVE.
tout ce dont vous avez besoin est l'adresse IP/nom DNS du serveur de site principal, bien que cette information ne soit jamais publiée dans Active Directory, nous pouvons raisonnablement la déduire en inspectant le SDDL sur le conteneur CN=System Management,CN=System. Les comptes machine disposant d'un contrôle total sur ce conteneur sont généralement les serveurs de site.
$root = [ADSI]"LDAP://RootDSE"
$configDN = "CN=System Management,CN=System," + $root.defaultNamingContext
$container = [ADSI]"LDAP://$configDN"
$container.ObjectSecurity.Access |
Where-Object { $_.ActiveDirectoryRights -match "GenericAll|FullControl" } |
Select-Object IdentityReference, ActiveDirectoryRights, AccessControlType |
Format-Table -AutoSize
Le résultat vous montrera les entités disposant de GenericAll sur ce conteneur ; prenez les entités se terminant par $ , ce sont les serveurs de site principaux.
.\C1_AFW.exe write SCCM-CM01.basoss.local 'pwn.cab' .\evil.cab --verbose
L'exploit active le compte Administrateur RID 500 s'il est désactivé, le renomme en omrispy avec le mot de passe Xm#Poc-2026!Adm1n$Ok. Il journalise également les modifications effectuées par l'exploit ainsi que le nom précédent du compte Administrateur RID 500 afin que vous puissiez tout rétablir dans son état d'origine. Les journaux sont enregistrés au chemin C:\POC.txt sur le serveur de site principal victime.
Le chargement de la DLL se produit toutes les 5 minutes, attendez-vous donc à un certain délai entre le lancement de l'exploit et l'apparition effective des résultats ; ce comportement a été observé à l'aide de Procmon64.exe.
Après une exploitation réussie, vous devez :
adsource.dll (qui est malveillante), et renommer adsource_original.dll en adsource.dllPour plus d'informations détaillées sur l'exploit, vous pouvez lire mon article complet à ce sujet.
Ce proof-of-concept (« PoC ») est fourni uniquement à des fins de recherche légitime en sécurité, d'éducation et de tests de sécurité autorisés.
Utilisez ce logiciel uniquement sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite d'effectuer les tests spécifiques réalisés. L'accès non autorisé à des systèmes informatiques est strictement interdit.
En utilisant ce logiciel, vous acceptez que :
Vous assumez l'entière responsabilité de vos actions et de toutes les conséquences résultant de l'utilisation de ce PoC, je ne suis pas responsable de vos actions