Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-44193 — Hackeando Windows a través de iTunes  - Escalada de Privilegios Local 0-day | Kitploit
Herramientas/GitHubGitHub/mbog14/cve-2024-44193
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPapers e InvestigaciónAprendizaje y EducaciónExplotación de Binarios
GitHubmbog14/cve-2024-44193

CVE-2024-44193

Hackeando Windows a través de iTunes  - Escalada de Privilegios Local 0-day

Ver Repositorio
98155hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Hackeando Windows a través de iTunes  - Escalada de Privilegios Local 0-day

Presentando CVE-2024–44193

Este es un informe sobre CVE-2024–44193, un exploit de Escalada de Privilegios Local en iTunes versión 12.13.2.3.

Fue parcheado el 12 de septiembre de 2024 por Apple. Enlace al aviso de seguridad de Apple: Aviso de Seguridad de Apple

iTunes versión 12.13.2.3 instala el servicio Apple Device Discovery Service: C:\Program Files\Common Files\Apple\Mobile Device Support\AppleMobileDeviceService.exe el cual es vulnerable a un exploit de Escalada de Privilegios Local.

TL;DR

En respeto y comprensión para aquellos que no les importa otro informe mal escrito y probablemente demasiado largo, aquí está la versión corta:

La vulnerabilidad es posible debido a una mala gestión de permisos de usuario en la ruta C:\ProgramData\Apple\*. Esto permite que miembros del Grupo Local "Usuarios" escriban archivos arbitrarios dentro de esa ruta. Cuando el servicio AppleMobileDeviceService.exe se reinicia, lo cual puede ser provocado por un usuario sin privilegios, se puede armar una primitiva de eliminación de archivos/carpetas arbitraria para obtener ejecución de código arbitrario en el sistema con privilegios SYSTEM.

Herramientas:

¡Advertencia! Explicaciones de herramientas mediocres próximamente.

Saltéate esta sección si ya estás familiarizado con las herramientas.

  • Oplock

SetOpLock

La herramienta Oplock es una herramienta para usar un "bloqueo oportunista" en Windows. La herramienta nos permite "detener" un proceso bloqueando un archivo hasta que se cumplan ciertos requisitos, sin embargo, también puede usarse para "detener" un proceso con fines maliciosos, como ganar suficiente tiempo para que se ejecute nuestro payload de exploit.

  • FolderContentsDeleteToFolderDelete

FilesystemEoPs

La herramienta FolderContentsDeleteToFolderDelete funciona creando automáticamente una carpeta con un archivo dentro. Luego se establece un oplock en el archivo para detener el proceso. Cuando el proceso se detiene, el archivo se mueve fuera de la carpeta. La carpeta se elimina y se recrea como un enlace NTFS a un destino objetivo. Cuando se cancela el oplock y el proceso continúa, la eliminación del archivo/carpeta sigue el nuevo enlace NTFS hacia el destino objetivo y elimina ese archivo antes de continuar la ejecución.

  • FolderOrFileDeleteToSystem

FilesystemEoPs

Esta herramienta probablemente sea mejor explicada por Zero Day Initiative, así que aquí hay un enlace a una explicación directamente de ellos:

Abusing Arbitrary File Deletes to Escalate Privileges and other Great Tricks

El informe real

Introducción al servicio vulnerable AppleMobileDeviceService.exe

Una vez que iTunes está instalado, también instala un servicio: AppleMobileDeviceService.exe que se ejecuta con privilegios SYSTEM. Cuando investigué ese servicio usando el Monitor de Procesos de Windows Sysinternals (Procmon) inmediatamente noté un comportamiento preocupante.

El servicio recorre recursivamente todos los archivos dentro de la ruta C:\ProgramData\Apple\Lockdown\* y elimina todas las carpetas y archivos que no pertenezcan allí.

Para pruebas locales, usé ProcessHacker2 para reiniciar forzosamente el servicio con el fin de inspeccionar el comportamiento del programa. El comportamiento observado fue que el servicio ejecutándose como SYSTEM consulta el directorio y todos los subdirectorios dentro, y luego ejecuta la operación CreateFile con la opción Delete On Close habilitada, lo que significa que el servicio SYSTEM consulta la ruta C:\ProgramData\Apple\Lockdown\* y recorre recursivamente las subcarpetas y archivos dentro de ese directorio y los elimina.

Alt text

Permisos de usuario problemáticos en la ruta: C:\ProgramData\Apple\*

Windows Sysinternals https://learn.microsoft.com/en-us/sysinternals/ accesschk64.exe se puede usar para verificar los derechos de acceso en carpetas específicas. Los miembros del Grupo Local "Usuarios" tienen permisos de escritura dentro de la carpeta C:\ProgramData\Apple\Lockdown\, lo que permite a usuarios con pocos privilegios escribir archivos arbitrarios dentro de la carpeta.

Alt text

Primitiva de eliminación arbitraria de archivos/carpetas

Debido a que podemos escribir archivos arbitrarios dentro de la ruta Lockdown, y el proceso SYSTEM los eliminará cuando se reinicie el servicio, fue posible crear una primitiva de eliminación arbitraria de archivos/carpetas. Para ilustrar esto, creo dos subcarpetas dentro de la carpeta Lockdown. Subcarpeta a, y subcarpeta b dentro de la subcarpeta a. Esto se verá así: C:\ProgramData\Apple\Lockdown\a\b  

Dentro de la subcarpeta a hay un archivo de texto llamado aa.txt y dentro de la subcarpeta b hay un archivo de texto llamado bb.txt

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

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

Alt text

Como se puede ver en la captura de pantalla anterior, la operación "CreateFile" se ejecuta con la opción "Delete On Close" sobre aa.txt eliminándolo.

Cuando el proceso SYSTEM ejecuta la operación CreateFile en aa.txt y bb.txt con la opción Delete On Close sobre los archivos, el proceso SYSTEM AppleMobileDeviceService.exe eliminará los archivos. Ahora es posible para nosotros crear archivos arbitrarios dentro de la carpeta Lockdown y eliminarlos, lo que nos lleva al siguiente truco ingenioso.

Enlaces NTFS

En Windows es posible usar enlaces NTFS para redirigir una carpeta a otro lugar. De alguna manera, esto es similar a los enlaces simbólicos en Linux. Para ilustrar esto, es posible crear un enlace NTFS (symlink) dentro de la carpeta C:\ProgramData\Apple\Lockdown que apunte a una carpeta en el Escritorio. Puedes lograrlo tú mismo usando PowerShell New-Item -Type Junction -Path loquesea -Target "C:\Users\usuario\Desktop\AAyes", o simplemente usar el conjunto de herramientas ofrecido por ZDI:

FilesystemEoPs

Ejecuta el siguiente comando para apuntar un enlace NTFS dentro de la carpeta Lockdown a "Target" en el Escritorio.

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

Cuando se reinicie el Servicio, el enlace NTFS recién creado apuntará a AAyes ubicado en el Escritorio. Debido a que el Servicio ejecuta la operación CreateFile con la opción Delete On Close como SYSTEM, el archivo será eliminado. Debido a que la operación se ejecuta con privilegios SYSTEM, tenemos una primitiva de eliminación arbitraria de carpetas o archivos, lo que significa que podemos obtener ejecución de código en el host como SYSTEM.

Alt text

NOTA:

Fue necesario hacer ciertas modificaciones en el código fuente del proyecto FolderContentsDeleteToFolderDelete debido a restricciones de nombre de archivo / nombre de carpeta. Los nombres de archivo / nombres de carpeta tenían que ser muy cortos para que la eliminación se llevara a cabo. Se desconoce la razón detrás de esto y no se investigó, ya que los nombres cortos resolvieron el problema de manera confiable.

Modificaciones en el código fuente de FolderContentsDeleteToFolderDelete:

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

// Fue necesario acortar las dos constantes: "folder2path" y "exploitFileName"
// Se cambiaron a: L"C:\\d" y L"e.txt" porque parecía que la longitud del nombre de archivo y carpeta tenía un impacto significativo en la funcionalidad del exploit.

[...]

// También necesitamos editar el valor de "folder1path" a L"c" para acortarlo.
folder1path += L"c";

Tesis de explotación

Debido a que el servicio seguirá recursivamente cualquier enlace (symlinks), la tesis era que sería posible eliminar archivos arbitrariamente en el sistema como SYSTEM usando el servicio vulnerable de Apple que seguirá el enlace NTFS. Dado que el servicio vulnerable permite convenientemente a usuarios sin privilegios reiniciar el servicio usando el truco ("Apps -> Aplicaciones instaladas -> Apple Mobile Device Support -> Modificar -> Reparar") mediante la interfaz gráfica de Windows, es posible activar el exploit a voluntad. Una vez que el servicio se reinicia, sigue el enlace NTFS y el comportamiento determinado del programa dicta que el servicio eliminará los archivos o carpetas que el usuario elija apuntar.

En otras palabras, es el usuario quien decide qué archivos o carpetas eliminará el servicio. Debido a que se ejecuta como SYSTEM, podemos eliminar casi cualquier archivo del sistema (no archivos que requieran privilegios TrustedInstaller).

Esto significa que podemos crear cuidadosamente una cadena de eventos que hará lo siguiente:

  1. Preparar un oplock para detener el proceso en un momento conveniente para preparar los pasos de explotación
  2. Reiniciar el servicio, se activa el oplock y el proceso se detiene
  3. Preparar nuestro truco de reversión de MSI usando FolderOrFileDeleteToSystem.exe
  4. Preparar nuestro enlace NTFS para apuntar la primitiva de eliminación de archivos a Config.MSI preparado por el paso del truco de reversión de MSI usando FolderContentsDeleteToFolderDelete.exe
  5. Liberar el oplock

Prueba de Concepto

La Prueba de Concepto consta de 5 pasos.

  1. Establecer Oplock en C:\ProgramData\Apple\Lockdown\
root@kitploit:~
.\SetOpLock.exe C:\ProgramData\Apple\Lockdown\
Alt text
  1. Activar el reinicio del servicio  Apps -> Aplicaciones instaladas -> Apple Mobile Device Support -> Modificar -> Reparar

  2. Preparar el truco de reversión de MSI

root@kitploit:~
.\FolderOrFileDeleteToSystem.exe
  1. Preparar el paso del enlace de Windows (symlink) para apuntar la primitiva de eliminación arbitraria de archivos/carpetas del servicio al instalador MSI
root@kitploit:~
.\FolderContentsDeleteToFolderDelete.exe /target 'C:\Config.Msi' /initial "C:\ProgramData\Apple\Lockdown"
  1. Liberar Oplock

Cuando se libera el Oplock en el paso cinco, monitoreamos el proceso FolderContentsDeleteToFolderDelete para verificar que se haya seguido el enlace NTFS y que el Config.MSI ubicado en C:\ haya sido eliminado correctamente. Luego monitoreamos el proceso FolderOrFileDeletionToSystem.exe para verificar que ganamos la condición de carrera y que la carpeta Config.MSI "maliciosa" con el script de reversión modificado se haya escrito. Si todo sale bien, podemos presionar CTRL+ALT+SUPR, abrir el menú de Accesibilidad en la esquina inferior derecha y abrir el Teclado en pantalla. Debido a que hemos sobrescrito el HID.DLL en C:\Program Files\Common Files\microsoft shared\ink\HID.DLL usando el script de reversión malicioso, aparecerá una ventana CMD como SYSTEM, finalizando nuestro exploit. Alt text

Ejecutando y monitoreando FolderContentsDeleteToFolderDelete.exe

Alt text

Ejecutando y monitoreando FolderOrFileDeleteToSystem.exe

Alt text

Obteniendo una shell SYSTEM

Descargar herramienta