Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-44193 — Hackerare Windows tramite iTunes - Escalation locale dei privilegi 0-day | Kitploit
Strumenti/GitHubGitHub/mbog14/cve-2024-44193
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPaper e RicercaApprendimento e FormazioneBinary Exploitation
GitHubmbog14/cve-2024-44193

CVE-2024-44193

Hackerare Windows tramite iTunes - Escalation locale dei privilegi 0-day

Vedi Repository
98151 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Hacking di Windows tramite iTunes  - Escalation dei privilegi locale 0-day

Introduzione a CVE-2024–44193

Questo è un write-up su CVE-2024–44193, un exploit di escalation dei privilegi locale in iTunes versione 12.13.2.3.

È stato corretto da Apple il 12 settembre 2024. Link all'advisor di sicurezza Apple: Advisor di sicurezza Apple

iTunes versione 12.13.2.3 installa l'Apple Device Discovery Service: C:\Program Files\Common Files\Apple\Mobile Device Support\AppleMobileDeviceService.exe, che è vulnerabile a un exploit di escalation dei privilegi locale.

TL;DR

Per rispetto e comprensione di chi non ha voglia di leggere un altro write-up scritto male e probabilmente troppo lungo, ecco la versione breve:

La vulnerabilità è possibile a causa di una gestione inadeguata dei permessi utente nel percorso C:\ProgramData\Apple\*. Ciò consente ai membri del gruppo locale "Users" di scrivere file arbitrari all'interno di quel percorso. Quando il servizio AppleMobileDeviceService.exe viene riavviato, cosa che può essere innescata da un utente non privilegiato, è possibile armare una primitiva di eliminazione arbitraria di cartelle/file per ottenere l'esecuzione di codice arbitrario sul sistema con privilegi SYSTEM.

Strumenti:

Attenzione! Stanno per arrivare spiegazioni mediocri degli strumenti.

Salta questa sezione se conosci già gli strumenti.

  • Oplock

SetOpLock

Lo strumento Oplock è uno strumento per usare un “blocco opportunistico” in Windows. Lo strumento ci consente di “fermare” un processo bloccando un file finché non vengono soddisfatti determinati requisiti, ma può essere usato anche per “fermare” un processo a scopi dannosi, come guadagnare abbastanza tempo per eseguire il nostro payload di exploit.

  • FolderContentsDeleteToFolderDelete

FilesystemEoPs

Lo strumento FolderContentsDeleteToFolderDelete funziona creando automaticamente una cartella con un file al suo interno. Sul file viene quindi impostato un oplock per fermare il processo. Quando il processo viene fermato, il file viene spostato fuori dalla cartella. La cartella viene quindi eliminata e ricreata come junction NTFS verso una destinazione. Quando l'oplock viene annullato e il processo continua, l'eliminazione del file/cartella segue la junction NTFS appena creata fino alla destinazione ed elimina quel file prima di continuare l'esecuzione.

  • FolderOrFileDeleteToSystem

FilesystemEoPs

Questo strumento è probabilmente spiegato al meglio da Zero Day Initiative, quindi ecco un link a una spiegazione direttamente da parte loro:

Abusare delle eliminazioni arbitrarie di file per escalare i privilegi e altri grandi trucchi

Il write-up vero e proprio

Introduzione al servizio vulnerabile AppleMobileDeviceService.exe

Una volta installato iTunes, viene installato anche un servizio: AppleMobileDeviceService.exe, che viene eseguito con privilegi SYSTEM. Quando ho analizzato il servizio con Process Monitor (Procmon) di Windows Sysinternals, ho subito notato un comportamento preoccupante.

Il servizio scorre ricorsivamente tutti i file all'interno del percorso C:\ProgramData\Apple\Lockdown\* ed elimina tutte le cartelle e i file che non dovrebbero trovarsi lì.

Per i test locali, ho usato ProcessHacker2 per riavviare forzatamente il servizio e ispezionare il comportamento del programma. Il comportamento osservato era che il servizio, in esecuzione come SYSTEM, interroga la directory e tutte le sottodirectory al suo interno, quindi esegue l'operazione CreateFile con l'opzione Delete On Close abilitata. In pratica, il servizio SYSTEM interroga il percorso C:\ProgramData\Apple\Lockdown\* e scorre ricorsivamente le sottocartelle e i file all'interno di quella directory, eliminandoli.

Alt text

Permessi utente problematici nel percorso: C:\ProgramData\Apple\*

Windows Sysinternals https://learn.microsoft.com/en-us/sysinternals/ accesschk64.exe può essere usato per verificare i diritti di accesso su cartelle specifiche. I membri del gruppo locale "Users" dispongono di permessi di scrittura all'interno della cartella C:\ProgramData\Apple\Lockdown\, il che consente agli utenti con privilegi bassi di scrivere file arbitrari nella cartella.

Alt text

Primitiva di eliminazione arbitraria di file/cartelle

Dato che possiamo scrivere file arbitrari nel percorso Lockdown e che il processo SYSTEM li eliminerà quando il servizio viene riavviato, è stato possibile creare una primitiva di eliminazione arbitraria di file/cartelle. Per illustrarlo, creo due sottocartelle all'interno della cartella Lockdown. La sottocartella a e la sottocartella b all'interno della sottocartella a. Il risultato sarà questo: C:\ProgramData\Apple\Lockdown\a\b

All'interno della sottocartella a c'è un file di testo chiamato aa.txt, e all'interno della sottocartella b c'è un file di testo chiamato bb.txt

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

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

Alt text

Come si può vedere nello screenshot qui sopra, l'operazione "CreateFile" viene eseguita con l'opzione "Delete On Close" su aa.txt, che lo elimina.

Quando il processo SYSTEM esegue l'operazione CreateFile su aa.txt e bb.txt con l'opzione Delete On Close sui file, il processo SYSTEM AppleMobileDeviceService.exe eliminerà i file. Ora è possibile per noi creare file arbitrari all'interno della cartella Lockdown ed eliminarli, il che ci porta al prossimo trucco interessante.

Junction NTFS

In Windows è possibile usare le junction NTFS per reindirizzare una cartella verso un'altra posizione. In un certo senso, è simile ai symlink di Linux. Per illustrarlo, è possibile creare una junction NTFS (symlink) all'interno della cartella C:\ProgramData\Apple\Lockdown che punta a una cartella sul Desktop. Puoi ottenerla tu stesso usando PowerShell New-Item -Type Junction -Path whatever -Target "C:\Users\user\Desktop\AAyes", oppure usa semplicemente il set di strumenti offerto da ZDI:

FilesystemEoPs

Esegui il seguente comando per puntare una junction NTFS all'interno della cartella Lockdown verso la "Destinazione" sul Desktop.

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

Quando il servizio viene riavviato, la junction NTFS appena creata punterà a AAyes, situato sul Desktop. Poiché il servizio esegue l'operazione CreateFile con l'opzione Delete On Close come SYSTEM, il file verrà eliminato. Poiché l'operazione viene eseguita con privilegi SYSTEM, disponiamo di una primitiva di eliminazione arbitraria di cartelle o file, il che significa che possiamo ottenere l'esecuzione di codice sull'host come SYSTEM.

Alt text

NOTA:

È stato necessario apportare alcune modifiche al codice sorgente nel progetto FolderContentsDeleteToFolderDelete a causa di restrizioni sui nomi di file/cartelle. I nomi di file/cartelle dovevano essere molto corti affinché l'eliminazione avvenisse. Il motivo non è noto e non è stato approfondito, poiché i nomi corti hanno risolto il problema in modo affidabile.

Modifiche al codice sorgente di 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";

Tesi di sfruttamento

Poiché il servizio seguirà ricorsivamente qualsiasi junction (symlink), la tesi era che sarebbe stato possibile eliminare arbitrariamente file sul sistema come SYSTEM usando il vulnerabile servizio Apple, che segue la junction NTFS. Dato che il servizio vulnerabile consente comodamente agli utenti non privilegiati di riavviarlo usando il trucco ("Apps -> App installate -> Apple Mobile Device Support -> Modifica -> Ripara") tramite la GUI di Windows, è possibile innescare l'exploit a piacimento. Una volta riavviato il servizio, esso seguirà la junction NTFS e il comportamento programmato del servizio impone che il servizio elimini i file o le cartelle che l'utente sceglie di puntare.

In altre parole, è l'utente a decidere quali file o cartelle il servizio eliminerà. Poiché viene eseguito come SYSTEM, possiamo eliminare quasi qualsiasi file sul sistema (non i file che richiedono i privilegi di TrustedInstaller).

Questo significa che possiamo costruire con cura una catena di eventi che farà quanto segue:

  1. Preparare un oplock per fermare il processo in un momento comodo per preparare i passaggi dello sfruttamento
  2. Riavviare il servizio: l'oplock viene innescato e il processo viene fermato
  3. Preparare il nostro trucco di rollback MSI usando FolderOrFileDeleteToSystem.exe
  4. Preparare la nostra junction NTFS per puntare la primitiva di eliminazione file verso Config.MSI, preparato dal passaggio del trucco di rollback MSI usando FolderContentsDeleteToFolderDelete.exe
  5. Rilasciare l'oplock

Proof of Concept

Il Proof of Concept consiste in 5 passaggi.

  1. Imposta un oplock su C:\ProgramData\Apple\Lockdown\
root@kitploit:~
.\SetOpLock.exe C:\ProgramData\Apple\Lockdown\
Alt text
  1. Attiva il riavvio del servizio  Apps -> App installate -> Apple Mobile Device Support -> Modifica -> Ripara

  2. Prepara il trucco di rollback MSI

root@kitploit:~
.\FolderOrFileDeleteToSystem.exe
  1. Prepara il passaggio con la junction di Windows (symlink) per puntare la primitiva di eliminazione arbitraria di cartelle/file del servizio verso l'installer MSI
root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target 'C:\Config.Msi' /initial "C:\ProgramData\Apple\Lockdown"
  1. Rilascia l'oplock

Quando l'oplock viene rilasciato al quinto passaggio, monitoriamo il processo FolderContentsDeleteToFolderDelete per verificare che la junction NTFS sia stata seguita e che Config.MSI, situato in C:, sia stato eliminato correttamente. Poi monitoriamo il processo FolderOrFileDeletionToSystem.exe per verificare di vincere la race condition e che la cartella Config.MSI "maligna" con lo script di rollback modificato venga scritta. Se tutto va per il verso giusto, possiamo premere CTRL+ALT+CANC, aprire il menu Accessibilità nell'angolo in basso a destra e aprire la Tastiera su schermo. Poiché abbiamo sovrascritto HID.DLL in C:\Program Files\Common Files\microsoft shared\ink\HID.DLL usando lo script di rollback maligno, si aprirà una shell CMD come SYSTEM, completando il nostro exploit.

Alt text

Esecuzione e monitoraggio di FolderContentsDeleteToFolderDelete.exe

Alt text

Esecuzione e monitoraggio di FolderOrFileDeleteToSystem.exe

Alt text

Aprire una shell SYSTEM

Scarica lo strumento