Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-44193 — Piratage de Windows via iTunes - Élévation de privilèges locale 0-day | Kitploit
Outils/GitHubGitHub/mbog14/cve-2024-44193
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationArticles et RechercheApprentissage et ÉducationExploitation de Binaires
GitHubmbog14/cve-2024-44193

CVE-2024-44193

Piratage de Windows via iTunes - Élévation de privilèges locale 0-day

Voir le dépôt
9815il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Piratage de Windows via iTunes - Élévation de privilèges locale 0-day

Présentation de CVE-2024–44193

Voici une analyse de CVE-2024–44193, une exploitation d'élévation de privilèges locale dans iTunes version 12.13.2.3.

Elle a été corrigée le 12 septembre 2024 par Apple. Lien vers l'avis de sécurité d'Apple : Avis de sécurité d'Apple

iTunes version 12.13.2.3 installe le service Apple Device Discovery Service : C:\Program Files\Common Files\Apple\Mobile Device Support\AppleMobileDeviceService.exe, qui est vulnérable à une exploitation d'élévation de privilèges locale.

TL;DR

Par respect et compréhension pour ceux d'entre vous qui se moquent d'une énième analyse mal écrite et probablement trop longue, voici la version courte :

La vulnérabilité est rendue possible par une mauvaise gestion des permissions utilisateur dans le chemin C:\ProgramData\Apple\*. Cela permet aux membres du groupe local "Users" d'écrire des fichiers arbitraires dans ce chemin. Lorsque le service AppleMobileDeviceService.exe est redémarré, ce qui peut être déclenché par un utilisateur non privilégié, une primitive de suppression arbitraire de dossier/fichier peut être armée pour obtenir une exécution de code arbitraire sur le système avec les privilèges SYSTEM.

Outillage :

Attention ! Explications d'outils médiocres à venir.

Passez cette section si vous connaissez déjà ces outils.

  • Oplock

SetOpLock

L'outil Oplock permet d'utiliser un « verrou opportuniste » (« opportunistic lock ») sous Windows. L'outil nous permet de « suspendre » un processus en verrouillant un fichier jusqu'à ce que certaines conditions soient satisfaites, mais il peut aussi être utilisé pour « suspendre » un processus à des fins malveillantes, comme gagner suffisamment de temps pour que notre charge utile d'exploitation s'exécute.

  • FolderContentsDeleteToFolderDelete

FilesystemEoPs

L'outil FolderContentsDeleteToFolderDelete fonctionne en créant automatiquement un dossier contenant un fichier. Un oplock est ensuite posé sur le fichier pour suspendre le processus. Lorsque le processus est suspendu, le fichier est déplacé hors du dossier. Le dossier est ensuite supprimé, puis recréé en tant que jonction NTFS vers une destination cible. Lorsque l'oplock est annulé et que le processus reprend, la suppression du fichier/dossier suit la jonction NTFS nouvellement créée jusqu'à la destination cible et supprime ce fichier avant de poursuivre son exécution.

  • FolderOrFileDeleteToSystem

FilesystemEoPs

Cet outil est probablement mieux expliqué par la Zero Day Initiative, voici donc un lien vers une explication directement de leur part :

Abuser des suppressions arbitraires de fichiers pour élever ses privilèges et autres grandes astuces

L'analyse complète

Introduction au service vulnérable AppleMobileDeviceService.exe

Une fois iTunes installé, il installe également un service : AppleMobileDeviceService.exe, qui s'exécute avec les privilèges SYSTEM. En examinant ce service avec Windows Sysinternals Process Monitor (Procmon), j'ai immédiatement remarqué un comportement préoccupant.

Le service parcourt récursivement tous les fichiers du chemin C:\ProgramData\Apple\Lockdown\* et supprime tous les dossiers et fichiers qui n'y ont pas leur place.

Pour les tests locaux, j'ai utilisé ProcessHacker2 pour redémarrer de force le service afin d'inspecter le comportement du programme. Le comportement observé était que le service s'exécutant en tant que SYSTEM interroge le répertoire et tous ses sous-répertoires, puis exécute l'opération CreateFile avec l'option Delete On Close activée, ce qui signifie que le service SYSTEM interroge le chemin C:\ProgramData\Apple\Lockdown\*, parcourt récursivement les sous-dossiers et fichiers de ce répertoire et les supprime.

Alt text

Privilèges utilisateur problématiques dans le chemin : C:\ProgramData\Apple\*

Windows Sysinternals https://learn.microsoft.com/en-us/sysinternals/ accesschk64.exe peut être utilisé pour vérifier les droits d'accès sur des dossiers spécifiques. Les membres du groupe local "Users" disposent de droits d'écriture dans le dossier C:\ProgramData\Apple\Lockdown\, ce qui permet aux utilisateurs à faibles privilèges d'écrire des fichiers arbitraires dans ce dossier.

Alt text

Primitive de suppression arbitraire de fichier/dossier

Comme nous pouvons écrire des fichiers arbitraires dans le chemin Lockdown et que le processus SYSTEM les supprime lorsque le service est redémarré, il a été possible de créer une primitive de suppression arbitraire de fichier/dossier. Pour illustrer cela, je crée deux sous-dossiers dans le dossier Lockdown. Le sous-dossier a, et le sous-dossier b dans le sous-dossier a. Ce qui donne : C:\ProgramData\Apple\Lockdown\a\b

Dans le sous-dossier a, il y a un fichier texte nommé aa.txt, et dans le sous-dossier b, un fichier texte nommé bb.txt

C:\ProgramData\Apple\Lockdown\a\aa.txt

C:\ProgramData\Apple\Lockdown\a\b\bb.txt

Alt text

Comme on peut le voir dans la capture d'écran ci-dessus, l'opération « CreateFile » est exécutée avec l'option « Delete On Close » sur aa.txt, le supprimant.

Lorsque le processus SYSTEM exécute l'opération CreateFile sur aa.txt et bb.txt avec l'option Delete On Close sur les fichiers, le processus SYSTEM AppleMobileDeviceService.exe supprime les fichiers. Il nous est maintenant possible de créer des fichiers arbitraires dans le dossier Lockdown et de les supprimer, ce qui nous mène à l'astuce suivante.

Jonctions NTFS

Sous Windows, il est possible d'utiliser des jonctions NTFS pour rediriger un dossier vers un autre endroit. D'une certaine manière, cela ressemble aux liens symboliques sous Linux. Pour illustrer cela, il est possible de créer une jonction NTFS (lien symbolique) dans le dossier C:\ProgramData\Apple\Lockdown pointant vers un dossier sur le Bureau. Vous pouvez le faire vous-même en utilisant PowerShell New-Item -Type Junction -Path whatever -Target "C:\Users\user\Desktop\AAyes", ou simplement utiliser la boîte à outils proposée par ZDI :

FilesystemEoPs

Exécutez la commande suivante pour faire pointer une jonction NTFS du dossier Lockdown vers « Target » sur le Bureau.

root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target "C:\Users\user\Desktop\AAyes" /initial "C:\ProgramData\Apple\Lockdown"

Lorsque le service est redémarré, la jonction NTFS nouvellement créée pointera vers AAyes, situé sur le Bureau. Comme le service exécute l'opération CreateFile avec l'option Delete On Close en tant que SYSTEM, le fichier sera supprimé. Étant donné que l'opération est exécutée avec les privilèges SYSTEM, nous disposons d'une primitive de suppression arbitraire de dossier ou de fichier, ce qui signifie que nous pouvons exécuter du code sur la machine hôte en tant que SYSTEM.

Alt text

REMARQUE :

Il a été nécessaire d'apporter certaines modifications au code source dans le projet FolderContentsDeleteToFolderDelete en raison de restrictions sur les noms de fichiers / dossiers. Les noms de fichiers / dossiers devaient être très courts pour que la suppression ait lieu. La raison de ce phénomène est inconnue et n'a pas été étudiée, car des noms courts ont résolu le problème de manière fiable.

Modifications du code source de FolderContentsDeleteToFolderDelete :

root@kitploit:~
const wchar_t folder2path[] = L"C:\\d";
const wchar_t exploitFileName[] = L"e.txt";

// It was required to shorten the two consstants: “folder2path” and “exploitFileName”
// They where changed to: L"C:\\d" and L"e.txt" because it seemed that file and folder name length had a meaningful impact on exploit functionality.

[...]

// We also needed to edit the “folder1path” value to L”c” in order to shorten it.
folder1path += L"c";

Thèse d'exploitation

Étant donné que le service suit récursivement toutes les jonctions (liens symboliques), la thèse était qu'il serait possible de supprimer arbitrairement des fichiers sur le système en tant que SYSTEM en utilisant le service Apple vulnérable, qui suivrait la jonction NTFS. Comme le service vulnérable permet commodément aux utilisateurs non privilégiés de redémarrer le service via l'astuce (Apps -> Installed apps -> Apple Mobile Device Support -> Modify -> Repair) dans l'interface graphique Windows, il est possible de déclencher l'exploit à volonté. Une fois le service redémarré, il suivra la jonction NTFS et le comportement déterminé du programme impose que le service supprime les fichiers ou dossiers vers lesquels l'utilisateur choisit de pointer.

En d'autres termes, c'est l'utilisateur qui décide quels fichiers ou dossiers le service supprimera. Comme il s'exécute en tant que SYSTEM, nous pouvons supprimer presque n'importe quel fichier sur le système (sauf les fichiers nécessitant les privilèges TrustedInstaller).

Cela signifie que nous pouvons soigneusement élaborer une chaîne d'événements qui fera ce qui suit :

  1. Préparer l'oplock pour suspendre le processus à un moment opportun afin de préparer les étapes d'exploitation
  2. Redémarrer le service, l'oplock est déclenché et le processus est suspendu
  3. Préparer notre astuce de restauration MSI à l'aide de FolderOrFileDeleteToSystem.exe
  4. Préparer notre jonction NTFS pour pointer la primitive de suppression de fichiers vers Config.MSI préparé à l'étape de l'astuce de restauration MSI à l'aide de FolderContentsDeleteToFolderDelete.exe
  5. Libérer l'oplock

Preuve de concept

La preuve de concept comprend 5 étapes.

  1. Poser un oplock sur C:\ProgramData\Apple\Lockdown\
root@kitploit:~
.\SetOpLock.exe C:\ProgramData\Apple\Lockdown\
Alt text
  1. Déclencher le redémarrage du service Apps -> Installed apps -> Apple Mobile Device Support -> Modify -> Repair

  2. Préparer l'astuce de restauration MSI

root@kitploit:~
.\FolderOrFileDeleteToSystem.exe
  1. Préparer l'étape de la jonction Windows (lien symbolique) pour pointer la primitive de suppression arbitraire de dossier/fichier du service vers l'installateur MSI
root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target 'C:\Config.Msi' /initial "C:\ProgramData\Apple\Lockdown"
  1. Libérer l'oplock

Lorsque l'oplock est libéré à l'étape cinq, nous surveillons le processus FolderContentsDeleteToFolderDelete pour vérifier que la jonction NTFS a été suivie et que le Config.MSI situé dans C:\ a bien été supprimé. Puis nous surveillons le processus FolderOrFileDeletionToSystem.exe pour vérifier que nous remportons la course (race condition) et que le dossier Config.MSI « malveillant » avec le script de restauration modifié est écrit. Si tout se passe bien, nous pouvons faire CTRL+ALT+DELETE, ouvrir le menu Accessibilité en bas à droite et ouvrir le Clavier visuel. Étant donné que nous avons remplacé le fichier HID.DLL dans C:\Program Files\Common Files\microsoft shared\ink\HID.DLL à l'aide du script de restauration malveillant, un shell CMD s'ouvrira en tant que SYSTEM, terminant ainsi notre exploit. Alt text

Exécution et surveillance de FolderContentsDeleteToFolderDelete.exe

Alt text

Exécution et surveillance de FolderOrFileDeleteToSystem.exe

Alt text

Obtention d'un shell SYSTEM

Télécharger l’outil