Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-44193 — Взлом Windows через iTunes  - локальное повышение привилегий 0-day | Kitploit
Инструменты/GitHubGitHub/mbog14/cve-2024-44193
Повышение привилегийАнализ уязвимостейЭксплуатацияСтатьи и ИсследованияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubmbog14/cve-2024-44193

CVE-2024-44193

Взлом Windows через iTunes  - локальное повышение привилегий 0-day

Репозиторий
9815262 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Взлом Windows через iTunes  - локальное повышение привилегий 0-day

Представляем CVE-2024–44193

Это разбор CVE-2024–44193 — эксплойта локального повышения привилегий в iTunes версии 12.13.2.3.

Она была исправлена Apple 12 сентября 2024 года. Ссылка на Security Advisory Apple: Apple's Security Advisory

iTunes версии 12.13.2.3 устанавливает службу Apple Device Discovery Service: C:\Program Files\Common Files\Apple\Mobile Device Support\AppleMobileDeviceService.exe, которая уязвима к эксплойту локального повышения привилегий.

TL;DR

Из уважения и понимания к тем, кому неинтересен очередной плохо написанный и, вероятно, слишком длинный разбор, вот краткая версия:

Уязвимость возникает из-за неправильного управления правами пользователей в пути C:\ProgramData\Apple\*. Это позволяет членам локальной группы "Users" записывать произвольные файлы в этот путь. Когда служба AppleMobileDeviceService.exe перезапускается, что может быть вызвано непривилегированным пользователем, можно подготовить примитив произвольного удаления папок/файлов, чтобы добиться произвольного выполнения кода в системе с привилегиями SYSTEM.

Tooling:

Предупреждение! Далее посредственные объяснения инструментов.

Пропустите этот раздел, если вы уже знакомы с инструментами.

  • Oplock

SetOpLock

Инструмент Oplock — это инструмент для использования «оппортунистической блокировки» (opportunistic lock) в Windows. Он позволяет нам «приостанавливать» процесс, блокируя файл до тех пор, пока не будут выполнены определённые требования; однако его также можно использовать для «приостановки» процесса во вредоносных целях, например, чтобы получить достаточно времени для запуска нашей полезной нагрузки эксплойта.

  • FolderContentsDeleteToFolderDelete

FilesystemEoPs

Инструмент FolderContentsDeleteToFolderDelete работает следующим образом: автоматически создаётся папка с файлом внутри. Затем на файл устанавливается оппортунистическая блокировка (oplock), чтобы приостановить процесс. Когда процесс остановлен, файл перемещается из папки. Затем папка удаляется и пересоздаётся как NTFS junction на целевой каталог. Когда oplock отменяется и процесс продолжает работу, удаление файла/папки следует по вновь созданному NTFS junction к целевому каталогу и удаляет этот файл перед продолжением выполнения.

  • FolderOrFileDeleteToSystem

FilesystemEoPs

Этот инструмент, вероятно, лучше всего описан в Zero Day Initiative, поэтому вот ссылка на объяснение непосредственно от них:

Злоупотребление произвольным удалением файлов для повышения привилегий и другие отличные трюки

Сам разбор

Введение в уязвимую службу AppleMobileDeviceService.exe

После установки iTunes также устанавливается служба: AppleMobileDeviceService.exe, которая работает с привилегиями SYSTEM. Когда я исследовал эту службу с помощью Windows Sysinternals Process Monitor (Procmon), я сразу заметил вызывающее беспокойство поведение.

Служба рекурсивно проходит по всем файлам в пути C:\ProgramData\Apple\Lockdown\* и удаляет все папки и файлы, которые там не должны находиться.

Для локального тестирования я использовал ProcessHacker2, чтобы принудительно перезапустить службу и проверить поведение программы.

Наблюдаемое поведение: служба, работающая как SYSTEM, запрашивает каталог и все вложенные подкаталоги, а затем выполняет операцию CreateFile с включённым параметром Delete On Close. Это означает, что служба SYSTEM запрашивает путь C:\ProgramData\Apple\Lockdown\*, рекурсивно обходит вложенные папки и файлы в этом каталоге и удаляет их.

Alt text

Проблемные права пользователей в пути: C:\ProgramData\Apple\*

Windows Sysinternals https://learn.microsoft.com/en-us/sysinternals/ accesschk64.exe можно использовать для проверки прав доступа к конкретным папкам. Члены локальной группы "Users" имеют права на запись в папке C:\ProgramData\Apple\Lockdown\, что позволяет низкопривилегированным пользователям записывать произвольные файлы в эту папку.

Alt text

Примитив произвольного удаления файлов/папок

Поскольку мы можем записывать произвольные файлы в путь Lockdown, а процесс SYSTEM удаляет их при перезапуске службы, стало возможным создать примитив произвольного удаления файлов/папок. Чтобы проиллюстрировать это, я создаю две вложенные папки внутри папки Lockdown. Подпапка a и подпапка b внутри подпапки a. Это будет выглядеть так: C:\ProgramData\Apple\Lockdown\a\b

В подпапке a есть текстовый файл aa.txt, а в подпапке b — текстовый файл bb.txt

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

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

Alt text

Как видно на скриншоте выше, операция "CreateFile" выполняется с параметром "Delete On Close" для aa.txt, удаляя его.

Когда процесс SYSTEM выполняет операцию CreateFile над aa.txt и bb.txt с параметром Delete On Close, процесс SYSTEM AppleMobileDeviceService.exe удаляет эти файлы. Теперь мы можем создавать произвольные файлы внутри папки Lockdown и удалять их, что подводит нас к следующему изящному трюку.

NTFS junctions

В Windows можно использовать NTFS junction, чтобы перенаправить папку в другое место. В некотором смысле это похоже на симлинки в Linux. Для иллюстрации можно создать NTFS junction (симлинк) внутри папки C:\ProgramData\Apple\Lockdown, указывающий на папку на рабочем столе. Вы можете сделать это самостоятельно с помощью PowerShell: New-Item -Type Junction -Path whatever -Target "C:\Users\user\Desktop\AAyes", или просто использовать набор инструментов от ZDI:

FilesystemEoPs

Выполните следующую команду, чтобы направить NTFS junction внутри папки Lockdown на "Target" на рабочем столе.

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

Когда служба будет перезапущена, недавно созданный NTFS junction будет указывать на AAyes, расположенный на рабочем столе. Поскольку служба выполняет операцию CreateFile с параметром Delete On Close от имени SYSTEM, файл будет удалён. Поскольку операция выполняется с привилегиями SYSTEM, мы получаем примитив произвольного удаления папок или файлов, а значит, можем добиться выполнения кода на хосте с правами SYSTEM.

Alt text

Примечание:

Потребовалось внести определённые правки в исходный код проекта FolderContentsDeleteToFolderDelete из-за ограничений на имена файлов/папок. Имена файлов/папок должны были быть очень короткими, чтобы удаление происходило. Причина этого неизвестна и не исследовалась, поскольку короткие имена надёжно решали проблему.

Правки исходного кода FolderContentsDeleteToFolderDelete:

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.

[...]
Скачать инструмент