diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md index 985579dd4..c79b4ad20 100644 --- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md +++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md @@ -34,12 +34,12 @@ ps -ef | grep tcc > [!WARNING] > Попередні бази даних також **захищені TCC для доступу на читання**. Тому ви **не зможете прочитати** вашу звичайну базу даних TCC користувача, якщо це не з процесу з привілеями TCC. > -> Однак пам'ятайте, що процес з цими високими привілеями (як **FDA** або **`kTCCServiceEndpointSecurityClient`**) зможе записувати в базу даних TCC користувача. +> Однак пам'ятайте, що процес з такими високими привілеями (як **FDA** або **`kTCCServiceEndpointSecurityClient`**) зможе записувати в базу даних TCC користувача. - Є **третя** база даних TCC у **`/var/db/locationd/clients.plist`**, щоб вказати клієнтів, яким дозволено **доступ до служб геолокації**. - Файл, захищений SIP **`/Users/carlospolop/Downloads/REG.db`** (також захищений від доступу на читання з TCC), містить **місцезнаходження** всіх **дійсних TCC баз даних**. - Файл, захищений SIP **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (також захищений від доступу на читання з TCC), містить більше наданих дозволів TCC. -- Файл, захищений SIP **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (але доступний для читання будь-ким), є списком дозволених додатків, які потребують винятку TCC. +- Файл, захищений SIP **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (але доступний для читання будь-кому) є списком дозволених додатків, які потребують винятку TCC. > [!TIP] > База даних TCC в **iOS** знаходиться в **`/private/var/mobile/Library/TCC/TCC.db`**. @@ -153,7 +153,7 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0; - **`auth_value`** може мати різні значення: denied(0), unknown(1), allowed(2) або limited(3). - **`auth_reason`** може приймати такі значення: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12) -- Поле **csreq** призначене для вказівки, як перевірити бінарний файл для виконання та надання дозволів TCC: +- Поле **csreq** вказує, як перевірити бінарний файл для виконання та надання дозволів TCC: ```bash # Query to get cserq in printable hex select service, client, hex(csreq) from access where auth_value=2; @@ -169,12 +169,12 @@ echo "$REQ_STR" | csreq -r- -b /tmp/csreq.bin REQ_HEX=$(xxd -p /tmp/csreq.bin | tr -d '\n') echo "X'$REQ_HEX'" ``` -- Для отримання додаткової інформації про **інші поля** таблиці [**перегляньте цей блог**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive). +- Для отримання додаткової інформації про **інші поля** таблиці [**перегляньте цей блог-пост**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive). Ви також можете перевірити **вже надані дозволи** для додатків у `System Preferences --> Security & Privacy --> Privacy --> Files and Folders`. > [!TIP] -> Користувачі _можуть_ **видаляти або запитувати правила** за допомогою **`tccutil`**. +> Користувачі _можуть_ **видаляти або запитувати правила** за допомогою **`tccutil`** . #### Скидання дозволів TCC ```bash @@ -186,7 +186,7 @@ tccutil reset All ``` ### TCC Signature Checks -База даних TCC **зберігає** **Bundle ID** програми, але також **зберігає** **інформацію** про **підпис**, щоб **переконатися**, що програма, яка запитує доступ до дозволу, є правильною. +База даних TCC **зберігає** **Bundle ID** програми, але також **зберігає** **інформацію** про **підпис**, щоб **переконатися**, що програма, яка запитує дозвіл, є правильною. ```bash # From sqlite sqlite> select service, client, hex(csreq) from access where auth_value=2; @@ -234,7 +234,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app ### Намір користувача / com.apple.macl -Як згадувалося раніше, можливо **надати доступ до програми до файлу, перетягуючи його до неї**. Цей доступ не буде вказаний у жодній базі даних TCC, але як **додатковий** **атрибут файлу**. Цей атрибут **зберігатиме UUID** дозволеної програми: +Як згадувалося раніше, можливо **надати доступ до програми до файлу, перетягуючи його до неї**. Цей доступ не буде вказаний у жодній базі даних TCC, але як **розширений** **атрибут файлу**. Цей атрибут **зберігатиме UUID** дозволеної програми: ```bash xattr Desktop/private.txt com.apple.macl @@ -254,13 +254,13 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3 > > Також зверніть увагу, що якщо ви перемістите файл, який дозволяє UUID програми на вашому комп'ютері, на інший комп'ютер, оскільки та сама програма матиме різні UIDs, це не надасть доступу до цієї програми. -Розширений атрибут `com.apple.macl` **не може бути очищений** як інші розширені атрибути, оскільки він **захищений SIP**. Однак, як [**пояснено в цьому пості**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), його можна вимкнути, **запакувавши** файл, **видаливши** його та **розпакувавши**. +Розширений атрибут `com.apple.macl` **не може бути очищений** як інші розширені атрибути, оскільки він **захищений SIP**. Однак, як [**пояснено в цьому пості**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), можливо відключити його, **запакувавши** файл, **видаливши** його та **розпакувавши**. ## TCC Privesc & Bypasses ### Вставка в TCC -Якщо в якийсь момент вам вдасться отримати доступ на запис до бази даних TCC, ви можете використати щось на кшталт наступного, щоб додати запис (видаліть коментарі): +Якщо в якийсь момент ви зможете отримати доступ на запис до бази даних TCC, ви можете використати щось подібне до наступного, щоб додати запис (видаліть коментарі):
@@ -370,7 +370,7 @@ EOD
> [!CAUTION] -> Зверніть увагу, що оскільки додаток **Automator** має дозвіл TCC **`kTCCServiceAppleEvents`**, він може **контролювати будь-який додаток**, наприклад, Finder. Отже, маючи дозвіл контролювати Automator, ви також можете контролювати **Finder** за допомогою коду, подібного до наведеного нижче: +> Зверніть увагу, що оскільки додаток **Automator** має дозвіл TCC **`kTCCServiceAppleEvents`**, він може **керувати будь-яким додатком**, таким як Finder. Отже, маючи дозвіл на керування Automator, ви також можете керувати **Finder** за допомогою коду, подібного до наведеного нижче:
@@ -494,7 +494,7 @@ EOF ``` ### `kTCCServiceAccessibility` до FDA\* -Перегляньте цю сторінку для деяких [**payloads для зловживання дозволами Accessibility**](macos-tcc-payloads.md#accessibility) для підвищення привілеїв до FDA\* або запуску кейлогера, наприклад. +Перегляньте цю сторінку для деяких [**payloads для зловживання дозволами Accessibility**](macos-tcc-payloads.md#accessibility) для підвищення привілеїв до FDA\* або, наприклад, для запуску кейлогера. ### **Клієнт безпеки кінцевих точок до FDA** @@ -508,11 +508,11 @@ EOF Отримавши **права на запис** над **базою даних TCC** користувача, ви **не можете** надати собі **`FDA`** права, лише той, хто живе в системній базі даних, може це надати. -Але ви можете **надати** собі **`права автоматизації для Finder`** і зловживати попередньою технікою для підвищення до FDA\*. +Але ви можете **надати** собі **`Automation rights to Finder`** і зловживати попередньою технікою для підвищення до FDA\*. ### **FDA до TCC дозволів** -**Повний доступ до диска** в TCC називається **`kTCCServiceSystemPolicyAllFiles`**. +**Повний доступ до диска** в TCC називається **`kTCCServiceSystemPolicyAllFiles`** Я не думаю, що це справжнє підвищення привілеїв, але на всякий випадок, якщо ви вважаєте це корисним: якщо ви контролюєте програму з FDA, ви можете **модифікувати базу даних TCC користувачів і надати собі будь-який доступ**. Це може бути корисно як техніка постійності на випадок, якщо ви можете втратити свої права FDA. @@ -525,7 +525,7 @@ EOF - REG.db - MDMOverrides.plist -Однак є ще один варіант зловживати цим **обхід SIP для обходу TCC**, файл `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` є списком дозволених програм, які потребують винятку TCC. Отже, якщо зловмисник може **видалити захист SIP** з цього файлу і додати свою **власну програму**, програма зможе обійти TCC.\ +Однак є ще один варіант зловживання цим **обхід SIP для обходу TCC**, файл `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` є списком дозволених програм, які потребують винятку TCC. Отже, якщо зловмисник може **видалити захист SIP** з цього файлу і додати свою **власну програму**, програма зможе обійти TCC.\ Наприклад, щоб додати термінал: ```bash # Get needed info