macOS Dangerous Entitlements & TCC perms

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Зверніть увагу, що entitlements, які починаються з com.apple, недоступні для сторонніх розробників, лише Apple може надавати їх.

Високий

com.apple.rootless.install.heritable

Entitlement com.apple.rootless.install.heritable дозволяє обійти SIP. Перевірте це для отримання додаткової інформації.

com.apple.rootless.install

Entitlement com.apple.rootless.install дозволяє обійти SIP. Перевірте це для отримання додаткової інформації.

com.apple.system-task-ports (раніше відомий як task_for_pid-allow)

Цей entitlement дозволяє отримати порт завдання для будь-якого процесу, крім ядра. Перевірте це для отримання додаткової інформації.

com.apple.security.get-task-allow

Цей entitlement дозволяє іншим процесам з entitlement com.apple.security.cs.debugger отримати порт завдання процесу, який виконується бінарним файлом з цим entitlement та впровадити код в нього. Перевірте це для отримання додаткової інформації.

com.apple.security.cs.debugger

Додатки з entitlement Debugging Tool можуть викликати task_for_pid() для отримання дійсного порту завдання для непідписаних та сторонніх додатків з entitlement Get Task Allow, встановленим на true. Однак навіть з entitlement debugging tool, відладчик не може отримати порти завдання процесів, які не мають entitlement Get Task Allow, і які, отже, захищені Системою Інтегритету. Перевірте це для отримання додаткової інформації.

com.apple.security.cs.disable-library-validation

Цей entitlement дозволяє завантажувати фреймворки, плагіни або бібліотеки без підпису від Apple або підписані тим самим ідентифікатором команди, тому злоумисник може використовувати деяке довільне завантаження бібліотеки для впровадження коду. Перевірте це для отримання додаткової інформації.

com.apple.private.security.clear-library-validation

Цей entitlement дуже схожий на com.apple.security.cs.disable-library-validation, але замість прямого вимкнення перевірки бібліотек, він дозволяє процесу викликати системний виклик csops для його вимкнення. Перевірте це для отримання додаткової інформації.

com.apple.security.cs.allow-dyld-environment-variables

Цей entitlement дозволяє використовувати змінні середовища DYLD, які можуть бути використані для впровадження бібліотек та коду. Перевірте це для отримання додаткової інформації.

com.apple.private.tcc.manager або com.apple.rootless.storage.TCC

Згідно з цим блогом та цим блогом, ці entitlements дозволяють змінювати базу даних TCC.

system.install.apple-software та system.install.apple-software.standar-user

Ці entitlements дозволяють встановлювати програмне забезпечення без запиту дозволу від користувача, що може бути корисним для підвищення привілеїв.

com.apple.private.security.kext-management

Entitlement, необхідний для запиту ядру завантажити розширення ядра.

com.apple.private.icloud-account-access

Entitlement com.apple.private.icloud-account-access дозволяє взаємодіяти з сервісом XPC com.apple.iCloudHelper, який надасть токени iCloud.

iMovie та Garageband мали цей entitlement.

Для отримання більш детальної інформації про експлойт для отримання токенів iCloud з цього entitlement, перегляньте виступ: #OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula

com.apple.private.tcc.manager.check-by-audit-token

TODO: Я не знаю, що це дозволяє робити

com.apple.private.apfs.revert-to-snapshot

TODO: У цьому звіті зазначено, що це можна використовувати для оновлення захищених вмістів SSV після перезавантаження. Якщо ви знаєте, як це зробити, надішліть PR, будь ласка!

com.apple.private.apfs.create-sealed-snapshot

TODO: У цьому звіті зазначено, що це можна використовувати для оновлення захищених вмістів SSV після перезавантаження. Якщо ви знаєте, як це зробити, надішліть PR, будь ласка!

keychain-access-groups

Цей entitlement перелічує групи ключів, до яких має доступ додаток:

<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>

kTCCServiceSystemPolicyAllFiles

Надає дозвіл на повний доступ до диска, один з найвищих дозволів TCC, які ви можете мати.

kTCCServiceAppleEvents

Дозволяє додатку надсилати події до інших додатків, які часто використовуються для автоматизації завдань. Керуючи іншими додатками, він може зловживати дозволами, наданими цим іншим додаткам.

Наприклад, змушуючи їх запитувати у користувача його пароль:

osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'

Або змушувати їх виконувати довільні дії.

kTCCServiceEndpointSecurityClient

Дозволяє, серед інших дозволів, записувати базу даних користувачів TCC.

kTCCServiceSystemPolicySysAdminFiles

Дозволяє змінювати атрибут NFSHomeDirectory користувача, що змінює шлях його домашньої теки та, отже, дозволяє обійти TCC.

kTCCServiceSystemPolicyAppBundles

Дозволяє змінювати файли всередині пакунків програм (у програмі.app), що заборонено за замовчуванням.

Можливо перевірити, хто має доступ до цього в System Settings > Privacy & Security > App Management.

kTCCServiceAccessibility

Процес зможе зловживати функціями доступності macOS, Що означає, наприклад, що він зможе натискати клавіші. Таким чином, він може запитати доступ до управління програмою, наприклад, Finder, та схвалити діалогове вікно з цим дозволом.

Середній

com.apple.security.cs.allow-jit

Цей дозвіл дозволяє створювати пам'ять, яка є записувальною та виконувальною, передаючи прапорець MAP_JIT до функції системи mmap(). Перевірте це для отримання додаткової інформації.

com.apple.security.cs.allow-unsigned-executable-memory

Цей дозвіл дозволяє перевизначати або патчити C-код, використовувати довгостроково застарілу функцію NSCreateObjectFileImageFromMemory (що фундаментально небезпечно), або використовувати фреймворк DVDPlayback. Перевірте це для отримання додаткової інформації.

Включення цього дозволу викладає вашу програму на ризик загроз у пам'яті в мовах програмування з кодом, що не гарантує безпеку пам'яті. Ретельно розгляньте, чи вашій програмі потрібне це виключення.

com.apple.security.cs.disable-executable-page-protection

Цей дозвіл дозволяє змінювати розділи власних виконуваних файлів на диску для примусового виходу. Перевірте це для отримання додаткової інформації.

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

com.apple.security.cs.allow-relative-library-loads

TODO

com.apple.private.nullfs_allow

Цей дозвіл дозволяє монтувати файлову систему nullfs (заборонено за замовчуванням). Інструмент: mount_nullfs.

kTCCServiceAll

Згідно з цією статтею блогу, цей дозвіл зазвичай знаходиться у формі:

[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll

Дозвольте процесу запитувати всі дозволи TCC.

kTCCServicePostEvent

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated