macOS Небезпечні права та TCC дозволи
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
warning
Зверніть увагу, що права, які починаються з com.apple
, недоступні для третіх сторін, лише Apple може їх надати.
Високий
com.apple.rootless.install.heritable
Право com.apple.rootless.install.heritable
дозволяє обійти SIP. Перевірте це для отримання додаткової інформації.
com.apple.rootless.install
Право com.apple.rootless.install
дозволяє обійти SIP. Перевірте це для отримання додаткової інформації.
com.apple.system-task-ports
(раніше називалося task_for_pid-allow
)
Це право дозволяє отримати порт завдання для будь-якого процесу, за винятком ядра. Перевірте це для отримання додаткової інформації.
com.apple.security.get-task-allow
Це право дозволяє іншим процесам з правом com.apple.security.cs.debugger
отримати порт завдання процесу, запущеного бінарним файлом з цим правом, і впроваджувати код у нього. Перевірте це для отримання додаткової інформації.
com.apple.security.cs.debugger
Додатки з правом інструменту налагодження можуть викликати task_for_pid()
, щоб отримати дійсний порт завдання для незахищених і сторонніх додатків з правом Get Task Allow
, встановленим на true
. Однак, навіть з правом інструменту налагодження, налагоджувач не може отримати порти завдання процесів, які не мають права Get Task Allow
, і які, отже, захищені захистом цілісності системи. Перевірте це для отримання додаткової інформації.
com.apple.security.cs.disable-library-validation
Це право дозволяє завантажувати фрейми, плагіни або бібліотеки без підпису Apple або підпису з тим же ідентифікатором команди, як основний виконуваний файл, тому зловмисник може зловживати завантаженням довільної бібліотеки для впровадження коду. Перевірте це для отримання додаткової інформації.
com.apple.private.security.clear-library-validation
Це право дуже схоже на com.apple.security.cs.disable-library-validation
, але замість прямого відключення перевірки бібліотек, воно дозволяє процесу викликати системний виклик csops
, щоб відключити його.
Перевірте це для отримання додаткової інформації.
com.apple.security.cs.allow-dyld-environment-variables
Це право дозволяє використовувати змінні середовища DYLD, які можуть бути використані для впровадження бібліотек і коду. Перевірте це для отримання додаткової інформації.
com.apple.private.tcc.manager
або com.apple.rootless.storage
.TCC
Згідно з цим блогу і цим блогом, ці права дозволяють модифікувати базу даних TCC.
system.install.apple-software
та system.install.apple-software.standar-user
Ці права дозволяють встановлювати програмне забезпечення без запиту дозволів у користувача, що може бути корисним для підвищення привілеїв.
com.apple.private.security.kext-management
Право, необхідне для запиту ядра на завантаження розширення ядра.
com.apple.private.icloud-account-access
Право com.apple.private.icloud-account-access
дозволяє спілкуватися з com.apple.iCloudHelper
XPC сервісом, який надасть токени iCloud.
iMovie та Garageband мали це право.
Для отримання більшої інформації про експлойт для отримання токенів icloud з цього права перевірте доповідь: #OBTS v5.0: "Що відбувається на вашому Mac, залишається в iCloud Apple?!" - 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
Це право містить список груп ключів, до яких має доступ додаток:
<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.app), що за замовчуванням заборонено.
.png)
Можна перевірити, хто має цей доступ у Системних налаштуваннях > Конфіденційність та безпека > Управління додатками.
kTCCServiceAccessibility
Процес зможе зловживати функціями доступності macOS, що означає, що, наприклад, він зможе натискати клавіші. Тому він може запитати доступ для контролю додатка, такого як Finder, і підтвердити діалог з цим дозволом.
Середній
com.apple.security.cs.allow-jit
Цей привілей дозволяє створювати пам'ять, яка є записуваною та виконуваною, передаючи прапорець MAP_JIT
функції системи mmap()
. Перевірте це для отримання додаткової інформації.
com.apple.security.cs.allow-unsigned-executable-memory
Цей привілей дозволяє перезаписувати або патчити C код, використовувати давно застарілу NSCreateObjectFileImageFromMemory
(яка є фундаментально небезпечною), або використовувати фреймворк DVDPlayback. Перевірте це для отримання додаткової інформації.
caution
Включення цього привілею піддає ваш додаток загальним вразливостям у мовах програмування з небезпечним управлінням пам'яттю. Уважно розгляньте, чи потрібен вашому додатку цей виняток.
com.apple.security.cs.disable-executable-page-protection
Цей привілей дозволяє змінювати секції своїх власних виконуваних файлів на диску, щоб примусово вийти. Перевірте це для отримання додаткової інформації.
caution
Привілей Disable Executable Memory Protection є екстремальним привілеєм, який усуває основний захист безпеки з вашого додатку, що робить можливим для зловмисника переписати виконуваний код вашого додатку без виявлення. Вибирайте вужчі привілеї, якщо це можливо.
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
Цей привілей дозволяє монтувати файлову систему nullfs (заборонену за замовчуванням). Інструмент: mount_nullfs.
kTCCServiceAll
Згідно з цим блогом, цей дозвіл TCC зазвичай зустрічається у формі:
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
Дозвольте процесу запитувати всі дозволи TCC.
kTCCServicePostEvent
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.