
Code de Preuve de Concept pour CVE-2023-32353 : Élévation de privilèges locale via iTunes sous Windows
L'installateur MSI du lecteur de musique Apple iTunes contenait une vulnérabilité qui permettait à un utilisateur standard à faibles privilèges sur un ordinateur Microsoft Windows d'obtenir des autorisations élevées dans le contexte de NT AUTHORITY/SYSTEM. Ce dépôt contient une preuve de concept (PoC) pour montrer comment cela pourrait être exploité, ainsi que des informations supplémentaires pour les chercheurs en sécurité et les développeurs qui souhaitent en savoir plus sur ce type de vulnérabilité. Cependant, l'applicabilité de celle-ci est limitée comme vous pouvez le lire dans la section Q&A.
Je n'ai pas obtenu de shell SYSTEM. Qu'ai-je fait de mal ?
Comme il s'agit d'une preuve de concept, peu de considérations ont été apportées au fait d'être indétectable. Pour utiliser cela, vous devez exécuter une installation de Windows 10 Édition Familiale antérieure à la version '10.0.19041.572', car dans cette version, cette vulnérabilité a été corrigée. J'ai effectué mes tests sous Windows 10 1909. De plus, vous devez naviguer vers « Sécurité Windows » et désactiver tout ce qui concerne Microsoft Defender/Windows Defender, car ils semblent bloquer la création de lien symbolique vers \RPC Control via la Protection en temps réel (qui se réactive automatiquement à chaque redémarrage, souvenez-vous-en !)
Dois-je avoir peur d'utiliser iTunes maintenant ?
Non, mettez simplement à jour iTunes vers la dernière version et tout ira bien.
Puis-je exécuter la PoC sans avoir à la compiler moi-même ?
Bien que j'encourage fortement tout le monde à ne pas exécuter de fichiers .exe provenant d'Internet, l'exécution de Privilege-Escalation-using-Music-Player.exe depuis le répertoire ./x64/Release/ dans une machine virtuelle devrait fonctionner. Sinon, vous devriez essayer d'installer le dernier redistribuable VC à partir des liens fournis par Microsoft.
Quelle est la vulnérabilité réelle ici ?
Lors de la réparation MSI, l'installateur crée un dossier à faibles privilèges appelé "SC Info" dans C:\ProgramData\Apple Computer\iTunes. Pour être précis, le répertoire C:\ProgramData\Apple Computer\iTunes n'accorde pas le contrôle total à tout le monde. Mais le sous-dossier appelé "SC Info" donne à Tout le monde (y compris les utilisateurs à faibles privilèges/standards) le contrôle total. Si vous supprimez manuellement tout le contenu du dossier C:\ProgramData\Apple Computer\iTunes\ (selon si vous avez déjà exécuté iTunes, il peut y avoir plus de dossiers que juste "SC Info"), alors un utilisateur à faibles privilèges est capable de créer un point de montage depuis C:\ProgramData\Apple Computer\iTunes\ vers n'importe quel autre répertoire qui est accessible en écriture par NT AUTHORITY/SYSTEM. Dans cette preuve de concept, la technique "wermgr.exe.local" a été utilisée, qui est déjà atténuée dans les versions actuelles de Windows 10 et ne s'applique qu'à l'édition Windows 10 Familiale à ma connaissance. Ainsi, si vous créez un point de montage depuis C:\ProgramData\Apple Computer\iTunes\ vers \RPC Control, puis un lien symbolique depuis \RPC Control\SC Info (rappelez-vous, SC Info est le nom du dossier que l'installateur crée à l'intérieur du dossier iTunes) vers ??\c:\windows\system32\wermgr.exe.local, puis utilisez l'option de réparation MSI de l'installateur iTunes, vous créez effectivement un dossier appelé wermgr.exe.local dans C:\Windows\System32 qui accorde le contrôle total à Tout le monde. Cela redirigera effectivement la création du dossier SC Info vers \RPC Control, et RPC Control lui-même redirigera la création du dossier vers le répertoire System32. À partir de là (encore une fois, cela ne fait pas partie de la vulnérabilité réelle, mais seulement pour terminer la chaîne d'élévation de privilèges), vous pouvez créer un sous-dossier spécifiquement nommé avec une DLL astucieusement conçue qu'un service qui s'exécutera en tant que NT AUTHORITY/SYSTEM, même lorsqu'il est appelé via une tâche planifiée par un utilisateur à faibles privilèges, chargera et exécutera les commandes qu'elle contient. (par exemple, une cmd s'exécutant en tant que NT AUTHORITY/SYSTEM) Pour plus de détails, veuillez vous référer au code réel ou à la section "Étapes pour reproduire manuellement" ci-dessous.
Comme il s'agit d'une preuve de concept, désactivez Windows Defender/Microsoft Defender (lisez aussi la section Q&A)
Installez iTunes avant la version 12.12.9 (par exemple 12.12.4.1)
Supprimez tout le contenu de C:\ProgramData\Apple Computer\iTunes, mais conservez le dossier iTunes lui-même
Créez un point de montage depuis "C:\ProgramData\Apple Computer\iTunes" vers "\RPC Control", par exemple en utilisant les symboliclink-testing-tools de James Forshaw :
CreateMountPoint.exe "C:\ProgramData\Apple Computer\iTunes" "\RPC Control"
Créez un lien symbolique depuis "\RPC Control\SC Info" vers "??\c:\windows\system32\wermgr.exe.local"
CreateDosDeviceSymlink.exe "\RPC Control\SC Info" "??\c:\windows\system32\wermgr.exe.local"