macOS MDM

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Щоб дізнатися про macOS MDM, перевірте:

Основи

Огляд MDM (Управління мобільними пристроями)

Управління мобільними пристроями (MDM) використовується для контролю різних пристроїв кінцевих користувачів, таких як смартфони, ноутбуки та планшети. Особливо для платформ Apple (iOS, macOS, tvOS) це включає набір спеціалізованих функцій, API та практик. Робота MDM залежить від сумісного сервера MDM, який може бути комерційно доступним або з відкритим кодом, і повинен підтримувати MDM Protocol. Основні моменти включають:

  • Централізований контроль над пристроями.

  • Залежність від сервера MDM, який дотримується протоколу MDM.

  • Можливість сервера MDM надсилати різні команди пристроям, наприклад, віддалене видалення даних або установку конфігурацій.

Основи DEP (Програма реєстрації пристроїв)

Програма реєстрації пристроїв (DEP), запропонована Apple, спрощує інтеграцію Управління мобільними пристроями (MDM), забезпечуючи конфігурацію без дотиків для пристроїв iOS, macOS та tvOS. DEP автоматизує процес реєстрації, дозволяючи пристроям бути готовими до роботи відразу з коробки, з мінімальним втручанням користувача або адміністратора. Основні аспекти включають:

  • Дозволяє пристроям автономно реєструватися на попередньо визначеному сервері MDM під час початкової активації.

  • Переважно корисно для нових пристроїв, але також застосовується для пристроїв, що проходять переналаштування.

  • Спрощує налаштування, швидко готуючи пристрої до організаційного використання.

Розгляд безпеки

Важливо зазначити, що простота реєстрації, яку забезпечує DEP, хоча й корисна, може також становити ризики для безпеки. Якщо захисні заходи не будуть адекватно впроваджені для реєстрації MDM, зловмисники можуть скористатися цим спрощеним процесом, щоб зареєструвати свій пристрій на сервері MDM організації, маскуючись під корпоративний пристрій.

Попередження безпеки: Спрощена реєстрація DEP може потенційно дозволити несанкціоновану реєстрацію пристроїв на сервері MDM організації, якщо не вжито належних заходів безпеки.

Основи Що таке SCEP (Протокол простого реєстрації сертифікатів)?

  • Відносно старий протокол, створений до того, як TLS і HTTPS стали поширеними.

  • Надає клієнтам стандартизований спосіб надсилання Запиту на підписання сертифіката (CSR) з метою отримання сертифіката. Клієнт запитує у сервера підписаний сертифікат.

Що таке Конфігураційні профілі (також відомі як mobileconfigs)?

  • Офіційний спосіб Apple налаштування/забезпечення системної конфігурації.

  • Формат файлу, який може містити кілька навантажень.

  • Заснований на списках властивостей (XML-формат).

  • “може бути підписаний і зашифрований для перевірки їх походження, забезпечення їх цілісності та захисту їх вмісту.” Основи — Сторінка 70, Посібник з безпеки iOS, січень 2018.

Протоколи

MDM

  • Комбінація APNs (Apple сервери) + RESTful API (MDM постачальники серверів)

  • Зв'язок відбувається між пристроєм і сервером, пов'язаним з продуктом управління пристроями

  • Команди передаються від MDM до пристрою в plist-кодованих словниках

  • Всі через HTTPS. Сервери MDM можуть бути (і зазвичай є) закріпленими.

  • Apple надає постачальнику MDM сертифікат APNs для аутентифікації

DEP

  • 3 API: 1 для реселерів, 1 для постачальників MDM, 1 для ідентифікації пристроїв (недокументований):

  • Так званий DEP "хмарний сервіс" API. Це використовується серверами MDM для асоціювання профілів DEP з конкретними пристроями.

  • DEP API, що використовується авторизованими реселерами Apple для реєстрації пристроїв, перевірки статусу реєстрації та перевірки статусу транзакцій.

  • Недокументований приватний DEP API. Це використовується пристроями Apple для запиту свого профілю DEP. На macOS бінарний файл cloudconfigurationd відповідає за зв'язок через цей API.

  • Більш сучасний і JSON-орієнтований (в порівнянні з plist)

  • Apple надає постачальнику MDM токен OAuth

DEP "хмарний сервіс" API

  • RESTful

  • синхронізує записи пристроїв з Apple на сервер MDM

  • синхронізує “DEP профілі” з Apple з сервера MDM (доставляється Apple на пристрій пізніше)

  • DEP “профіль” містить:

  • URL сервера постачальника MDM

  • Додаткові довірені сертифікати для URL сервера (необов'язкове закріплення)

  • Додаткові налаштування (наприклад, які екрани пропустити в Помічнику налаштування)

Серійний номер

Пристрої Apple, виготовлені після 2010 року, зазвичай мають 12-символьні алфавітно-цифрові серійні номери, де перші три цифри представляють місце виготовлення, наступні дві вказують на рік і тиждень виготовлення, наступні три цифри надають унікальний ідентифікатор, а останні чотири цифри представляють номер моделі.

macOS Serial Number

Кроки для реєстрації та управління

  1. Створення запису пристрою (Реселер, Apple): Запис для нового пристрою створюється

  2. Призначення запису пристрою (Клієнт): Пристрій призначається серверу MDM

  3. Синхронізація запису пристрою (Постачальник MDM): MDM синхронізує записи пристроїв і надсилає профілі DEP до Apple

  4. DEP перевірка (Пристрій): Пристрій отримує свій профіль DEP

  5. Отримання профілю (Пристрій)

  6. Встановлення профілю (Пристрій) a. включаючи MDM, SCEP та навантаження кореневого CA

  7. Видача команди MDM (Пристрій)

Файл /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd експортує функції, які можна вважати високорівневими "кроками" процесу реєстрації.

Крок 4: DEP перевірка - Отримання запису активації

Ця частина процесу відбувається, коли користувач вперше завантажує Mac (або після повного скидання)

або при виконанні sudo profiles show -type enrollment

  • Визначити чи пристрій активовано для DEP

  • Запис активації — це внутрішня назва для DEP “профілю”

  • Починається, як тільки пристрій підключається до Інтернету

  • Керується CPFetchActivationRecord

  • Реалізовано cloudconfigurationd через XPC. "Помічник налаштування" (коли пристрій вперше завантажується) або команда profiles зв'яжеться з цим демонстраційним процесом для отримання запису активації.

  • LaunchDaemon (завжди працює як root)

Він проходить кілька кроків для отримання запису активації, виконаних MCTeslaConfigurationFetcher. Цей процес використовує шифрування, зване Absinthe

  1. Отримати сертифікат

  2. Ініціалізувати стан з сертифіката (NACInit)

  3. Використовує різні дані, специфічні для пристрою (тобто Серійний номер через IOKit)

  4. Отримати ключ сесії

  5. Встановити сесію (NACKeyEstablishment)

  6. Зробити запит

  7. POST на https://iprofiles.apple.com/macProfile, надсилаючи дані { "action": "RequestProfileConfiguration", "sn": "" }

  8. JSON навантаження зашифроване за допомогою Absinthe (NACSign)

  9. Всі запити через HTTPs, використовуються вбудовані кореневі сертифікати

Відповідь є JSON-словником з деякими важливими даними, такими як:

  • url: URL хоста постачальника MDM для профілю активації

  • anchor-certs: Масив DER сертифікатів, що використовуються як довірені якорі

Крок 5: Отримання профілю

  • Запит надіслано на url, наданий у профілі DEP.

  • Довірені сертифікати використовуються для оцінки довіри, якщо надано.

  • Нагадування: властивість anchor_certs профілю DEP

  • Запит є простим .plist з ідентифікацією пристрою

  • Приклади: UDID, версія ОС.

  • CMS-підписаний, DER-кодований

  • Підписаний за допомогою сертифіката ідентифікації пристрою (з APNS)

  • Цепочка сертифікатів включає прострочений Apple iPhone Device CA

Крок 6: Встановлення профілю

  • Після отримання профіль зберігається в системі

  • Цей крок починається автоматично (якщо в помічнику налаштування)

  • Керується CPInstallActivationProfile

  • Реалізовано mdmclient через XPC

  • LaunchDaemon (як root) або LaunchAgent (як користувач), залежно від контексту

  • Конфігураційні профілі мають кілька навантажень для встановлення

  • Фреймворк має архітектуру на основі плагінів для встановлення профілів

  • Кожен тип навантаження асоційований з плагіном

  • Може бути XPC (в фреймворку) або класичний Cocoa (в ManagedClient.app)

  • Приклад:

  • Навантаження сертифікатів використовує CertificateService.xpc

Зазвичай профіль активації, наданий постачальником MDM, буде включати наступні навантаження:

  • com.apple.mdm: для реєстрації пристрою в MDM

  • com.apple.security.scep: для безпечного надання клієнтського сертифіката пристрою.

  • com.apple.security.pem: для встановлення довірених CA сертифікатів в системний ключовий магазин пристрою.

  • Встановлення навантаження MDM еквівалентно перевірці MDM в документації

  • Навантаження містить ключові властивості:

  • URL перевірки MDM (CheckInURL)

  • URL опитування команд MDM (ServerURL) + тема APNs для його активації

  • Щоб встановити навантаження MDM, запит надсилається на CheckInURL

  • Реалізовано в mdmclient

  • Навантаження MDM може залежати від інших навантажень

  • Дозволяє запити закріплювати за конкретними сертифікатами:

  • Властивість: CheckInURLPinningCertificateUUIDs

  • Властивість: ServerURLPinningCertificateUUIDs

  • Доставляється через навантаження PEM

  • Дозволяє пристрою бути атрибутованим сертифікатом ідентифікації:

  • Властивість: IdentityCertificateUUID

  • Доставляється через навантаження SCEP

Крок 7: Слухання команд MDM

  • Після завершення перевірки MDM постачальник може видавати push-сповіщення за допомогою APNs

  • Після отримання обробляється mdmclient

  • Щоб опитувати команди MDM, запит надсилається на ServerURL

  • Використовує раніше встановлене навантаження MDM:

  • ServerURLPinningCertificateUUIDs для закріплення запиту

  • IdentityCertificateUUID для TLS клієнтського сертифіката

Атаки

Реєстрація пристроїв в інших організаціях

Як вже зазначалося, для того щоб спробувати зареєструвати пристрій в організації потрібен лише серійний номер, що належить цій організації. Після реєстрації пристрою кілька організацій встановлять чутливі дані на новий пристрій: сертифікати, програми, паролі WiFi, конфігурації VPN і так далі. Отже, це може бути небезпечна точка входу для зловмисників, якщо процес реєстрації не буде належним чином захищений:

Enrolling Devices in Other Organisations

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated