diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md
index 5ecfb5a9d..bcafa3d32 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md
@@ -1,8 +1,8 @@
# macOS Sandbox
{% hint style="success" %}
-Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -19,18 +19,20 @@ Learn & practice GCP Hacking: mach #Check mac-ports (got from launchd with an api)
-sbtool file /tmp #Check file access
-sbtool inspect #Gives you an explaination of the sandbox profile
-sbtool all
-```
-### Custom SBPL in App Store apps
-
-Можливо, що компанії можуть змусити свої додатки працювати **з кастомними профілями пісочниці** (замість за замовчуванням). Вони повинні використовувати право **`com.apple.security.temporary-exception.sbpl`**, яке потрібно авторизувати Apple.
+Можливо, що компанії можуть змусити свої додатки працювати **з користувацькими профілями пісочниці** (замість за замовчуванням). Вони повинні використовувати право **`com.apple.security.temporary-exception.sbpl`**, яке потрібно авторизувати в Apple.
Можна перевірити визначення цього права в **`/System/Library/Sandbox/Profiles/application.sb:`**
```scheme
@@ -264,17 +278,140 @@ sbtool all
```
Це **оцінить рядок після цього права** як профіль Sandbox.
+### Компіляція та декомпіляція профілю Sandbox
+
+Інструмент **`sandbox-exec`** використовує функції `sandbox_compile_*` з `libsandbox.dylib`. Основні експортовані функції: `sandbox_compile_file` (очікує шлях до файлу, параметр `-f`), `sandbox_compile_string` (очікує рядок, параметр `-p`), `sandbox_compile_name` (очікує назву контейнера, параметр `-n`), `sandbox_compile_entitlements` (очікує plist прав).
+
+Ця реверсована та [**відкрита версія інструменту sandbox-exec**](https://newosxbook.com/src.jl?tree=listings\&file=/sandbox\_exec.c) дозволяє **`sandbox-exec`** записувати скомпільований профіль sandbox у файл.
+
+Більше того, щоб обмежити процес всередині контейнера, він може викликати `sandbox_spawnattrs_set[container/profilename]` і передати контейнер або вже існуючий профіль.
+
+## Налагодження та обхід Sandbox
+
+На macOS, на відміну від iOS, де процеси з самого початку ізольовані ядром, **процеси повинні самостійно вибрати участь у sandbox**. Це означає, що на macOS процес не обмежується sandbox, поки він активно не вирішить увійти в нього, хоча програми з App Store завжди ізольовані.
+
+Процеси автоматично ізолюються з userland, коли вони запускаються, якщо у них є право: `com.apple.security.app-sandbox`. Для детального пояснення цього процесу дивіться:
+
+{% content-ref url="macos-sandbox-debug-and-bypass/" %}
+[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
+{% endcontent-ref %}
+
+## **Розширення Sandbox**
+
+Розширення дозволяють надати додаткові привілеї об'єкту і викликають одну з функцій:
+
+* `sandbox_issue_extension`
+* `sandbox_extension_issue_file[_with_new_type]`
+* `sandbox_extension_issue_mach`
+* `sandbox_extension_issue_iokit_user_client_class`
+* `sandbox_extension_issue_iokit_registry_rentry_class`
+* `sandbox_extension_issue_generic`
+* `sandbox_extension_issue_posix_ipc`
+
+Розширення зберігаються в другому слоті мітки MACF, доступному з облікових даних процесу. Наступний **`sbtool`** може отримати доступ до цієї інформації.
+
+Зверніть увагу, що розширення зазвичай надаються дозволеними процесами, наприклад, `tccd` надасть токен розширення `com.apple.tcc.kTCCServicePhotos`, коли процес намагався отримати доступ до фотографій і був дозволений у повідомленні XPC. Тоді процесу потрібно буде спожити токен розширення, щоб він був доданий до нього.\
+Зверніть увагу, що токени розширення є довгими шістнадцятковими числами, які кодують надані дозволи. Однак у них немає жорстко закодованого дозволеного PID, що означає, що будь-який процес з доступом до токена може бути **спожитий кількома процесами**.
+
+Зверніть увагу, що розширення дуже пов'язані з правами, тому наявність певних прав може автоматично надавати певні розширення.
+
+### **Перевірка привілеїв PID**
+
+[**Згідно з цим**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), функції **`sandbox_check`** (це `__mac_syscall`), можуть перевірити **чи дозволена операція чи ні** sandbox у певному PID, токені аудиту або унікальному ID.
+
+[**Інструмент sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) (знайдіть його [скомпільованим тут](https://newosxbook.com/articles/hitsb.html)) може перевірити, чи може PID виконати певні дії:
+```bash
+sbtool mach #Check mac-ports (got from launchd with an api)
+sbtool file /tmp #Check file access
+sbtool inspect #Gives you an explanation of the sandbox profile and extensions
+sbtool all
+```
+### \[un]suspend
+
+Також можливо призупинити та відновити пісочницю, використовуючи функції `sandbox_suspend` та `sandbox_unsuspend` з `libsystem_sandbox.dylib`.
+
+Зверніть увагу, що для виклику функції призупинення перевіряються деякі права для авторизації виклику, такі як:
+
+* com.apple.private.security.sandbox-manager
+* com.apple.security.print
+* com.apple.security.temporary-exception.audio-unit-host
+
+## mac\_syscall
+
+Цей системний виклик (#381) очікує один рядок як перший аргумент, який вказуватиме модуль для виконання, а потім код у другому аргументі, який вказуватиме функцію для виконання. Третій аргумент залежатиме від виконуваної функції.
+
+Виклик функції `___sandbox_ms` обгортає `mac_syscall`, вказуючи в першому аргументі `"Sandbox"`, так само як `___sandbox_msp` є обгорткою для `mac_set_proc` (#387). Деякі з підтримуваних кодів `___sandbox_ms` можна знайти в цій таблиці:
+
+* **set\_profile (#0)**: Застосувати скомпільований або названий профіль до процесу.
+* **platform\_policy (#1)**: Застосувати перевірки політики, специфічні для платформи (варіюється між macOS та iOS).
+* **check\_sandbox (#2)**: Виконати ручну перевірку конкретної операції пісочниці.
+* **note (#3)**: Додати анотацію до пісочниці.
+* **container (#4)**: Прикріпити анотацію до пісочниці, зазвичай для налагодження або ідентифікації.
+* **extension\_issue (#5)**: Створити нове розширення для процесу.
+* **extension\_consume (#6)**: Використати дане розширення.
+* **extension\_release (#7)**: Вивільнити пам'ять, пов'язану з використаним розширенням.
+* **extension\_update\_file (#8)**: Змінити параметри існуючого розширення файлу в межах пісочниці.
+* **extension\_twiddle (#9)**: Налаштувати або змінити існуюче розширення файлу (наприклад, TextEdit, rtf, rtfd).
+* **suspend (#10)**: Тимчасово призупинити всі перевірки пісочниці (вимагає відповідних прав).
+* **unsuspend (#11)**: Відновити всі раніше призупинені перевірки пісочниці.
+* **passthrough\_access (#12)**: Дозволити прямий доступ до ресурсу, обходячи перевірки пісочниці.
+* **set\_container\_path (#13)**: (тільки iOS) Встановити шлях контейнера для групи додатків або ID підпису.
+* **container\_map (#14)**: (тільки iOS) Отримати шлях контейнера з `containermanagerd`.
+* **sandbox\_user\_state\_item\_buffer\_send (#15)**: (iOS 10+) Встановити метадані режиму користувача в пісочниці.
+* **inspect (#16)**: Надати інформацію для налагодження про процес, що працює в пісочниці.
+* **dump (#18)**: (macOS 11) Вивантажити поточний профіль пісочниці для аналізу.
+* **vtrace (#19)**: Відстежувати операції пісочниці для моніторингу або налагодження.
+* **builtin\_profile\_deactivate (#20)**: (macOS < 11) Деактивувати названі профілі (наприклад, `pe_i_can_has_debugger`).
+* **check\_bulk (#21)**: Виконати кілька операцій `sandbox_check` в одному виклику.
+* **reference\_retain\_by\_audit\_token (#28)**: Створити посилання для аудиторського токена для використання в перевірках пісочниці.
+* **reference\_release (#29)**: Вивільнити раніше збережене посилання на аудиторський токен.
+* **rootless\_allows\_task\_for\_pid (#30)**: Перевірити, чи дозволено `task_for_pid` (схоже на перевірки `csr`).
+* **rootless\_whitelist\_push (#31)**: (macOS) Застосувати файл маніфесту системної цілісності (SIP).
+* **rootless\_whitelist\_check (preflight) (#32)**: Перевірити файл маніфесту SIP перед виконанням.
+* **rootless\_protected\_volume (#33)**: (macOS) Застосувати SIP захисти до диска або розділу.
+* **rootless\_mkdir\_protected (#34)**: Застосувати SIP/DataVault захист до процесу створення каталогу.
+
+## Sandbox.kext
+
+Зверніть увагу, що в iOS розширення ядра містить **жорстко закодовані всі профілі** всередині сегмента `__TEXT.__const`, щоб уникнути їх модифікації. Наступні функції з розширення ядра є цікавими:
+
+* **`hook_policy_init`**: Він підключає `mpo_policy_init` і викликається після `mac_policy_register`. Він виконує більшість ініціалізацій пісочниці. Він також ініціалізує SIP.
+* **`hook_policy_initbsd`**: Налаштовує інтерфейс sysctl, реєструючи `security.mac.sandbox.sentinel`, `security.mac.sandbox.audio_active` та `security.mac.sandbox.debug_mode` (якщо завантажено з `PE_i_can_has_debugger`).
+* **`hook_policy_syscall`**: Викликається `mac_syscall` з "Sandbox" як першим аргументом і кодом, що вказує на операцію, у другому. Використовується оператор switch для знаходження коду для виконання відповідно до запитуваного коду.
+
+### MACF Hooks
+
+**`Sandbox.kext`** використовує більше ста хуків через MACF. Більшість хуків просто перевіряють деякі тривіальні випадки, які дозволяють виконати дію, якщо ні, вони викликають **`cred_sb_evalutate`** з **обліковими даними** з MACF та номером, що відповідає **операції**, яку потрібно виконати, і **буфером** для виходу.
+
+Хорошим прикладом цього є функція **`_mpo_file_check_mmap`**, яка підключає **`mmap`** і яка почне перевіряти, чи буде нова пам'ять записуваною (і якщо ні, дозволить виконання), потім перевірить, чи використовується вона для спільного кешу dyld, і якщо так, дозволить виконання, а в кінці викличе **`cred_sb_evalutate`** для виконання подальших перевірок дозволу.
+
+Більше того, з сотень хуків, які використовує пісочниця, є 3, які особливо цікаві:
+
+* `mpo_proc_check_for`: Застосовує профіль, якщо це необхідно, і якщо він не був раніше застосований.
+* `mpo_vnode_check_exec`: Викликається, коли процес завантажує відповідний бінарний файл, потім виконується перевірка профілю, а також перевірка, що забороняє виконання SUID/SGID.
+* `mpo_cred_label_update_execve`: Це викликається, коли призначається мітка. Це найдовший, оскільки викликається, коли бінарний файл повністю завантажений, але ще не виконаний. Він виконає дії, такі як створення об'єкта пісочниці, прикріплення структури пісочниці до облікових даних kauth, видалення доступу до mach портів...
+
+Зверніть увагу, що **`cred_sb_evalutate`** є обгорткою над **`sb_evaluate`**, і ця функція отримує передані облікові дані, а потім виконує оцінку, використовуючи функцію **`eval`**, яка зазвичай оцінює **профіль платформи**, який за замовчуванням застосовується до всіх процесів, а потім **специфічний профіль процесу**. Зверніть увагу, що профіль платформи є одним з основних компонентів **SIP** в macOS.
+
+## Sandboxd
+
+Пісочниця також має демон користувача, який працює, відкриваючи XPC Mach сервіс `com.apple.sandboxd` і прив'язуючи спеціальний порт 14 (`HOST_SEATBELT_PORT`), який розширення ядра використовує для зв'язку з ним. Він відкриває деякі функції, використовуючи MIG.
+
+## References
+
+* [**\*OS Internals Volume III**](https://newosxbook.com/home.html)
+
{% hint style="success" %}
-Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Підтримайте HackTricks
+Support HackTricks
-* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
-* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md
index 0d6f0ffb4..6eefb6ea4 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sip.md
@@ -1,8 +1,8 @@
# macOS SIP
{% hint style="success" %}
-Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
@@ -15,7 +15,6 @@ Learn & practice GCP Hacking:
{% endhint %}
-
## **Основна інформація**
**Захист цілісності системи (SIP)** в macOS є механізмом, призначеним для запобігання навіть найбільш привілейованим користувачам вносити несанкціоновані зміни до ключових системних папок. Ця функція відіграє важливу роль у підтримці цілісності системи, обмежуючи дії, такі як додавання, модифікація або видалення файлів у захищених зонах. Основні папки, захищені SIP, включають:
@@ -52,12 +51,16 @@ drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
Більше того, якщо файл містить атрибут **`com.apple.rootless`** розширений **атрибут**, цей файл також буде **захищений SIP**.
+{% hint style="success" %}
+Зверніть увагу, що **Sandbox** хук **`hook_vnode_check_setextattr`** запобігає будь-яким спробам змінити розширений атрибут **`com.apple.rootless`.**
+{% endhint %}
+
**SIP також обмежує інші дії root**, такі як:
* Завантаження ненадійних розширень ядра
* Отримання task-ports для процесів, підписаних Apple
-* Модифікація змінних NVRAM
-* Дозвіл на налагодження ядра
+* Зміна змінних NVRAM
+* Дозвіл налагодження ядра
Опції зберігаються у змінній nvram як бітовий прапорець (`csr-active-config` на Intel і `lp-sip0` читається з завантаженого Device Tree для ARM). Ви можете знайти прапорці в вихідному коді XNU у `csr.sh`:
@@ -73,30 +76,44 @@ csrutil status
```bash
csrutil disable
```
-Якщо ви хочете зберегти SIP увімкненим, але видалити захисти від налагодження, ви можете зробити це за допомогою:
+Якщо ви хочете зберегти SIP увімкненим, але видалити захист від налагодження, ви можете зробити це за допомогою:
```bash
csrutil enable --without debug
```
### Інші обмеження
-* **Забороняє завантаження непідписаних розширень ядра** (kexts), забезпечуючи, щоб лише перевірені розширення взаємодіяли з ядром системи.
+* **Забороняє завантаження непідписаних розширень ядра** (kexts), забезпечуючи, що лише перевірені розширення взаємодіють з ядром системи.
* **Запобігає налагодженню** процесів системи macOS, захищаючи основні компоненти системи від несанкціонованого доступу та модифікації.
* **Гальмує інструменти** на кшталт dtrace від перевірки системних процесів, ще більше захищаючи цілісність роботи системи.
[**Дізнайтеся більше про інформацію SIP у цій доповіді**](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)**.**
+### **Права, пов'язані з SIP**
+
+* `com.apple.rootless.xpc.bootstrap`: Контроль launchd
+* `com.apple.rootless.install[.heritable]`: Доступ до файлової системи
+* `com.apple.rootless.kext-management`: `kext_request`
+* `com.apple.rootless.datavault.controller`: Керування UF\_DATAVAULT
+* `com.apple.rootless.xpc.bootstrap`: Можливості налаштування XPC
+* `com.apple.rootless.xpc.effective-root`: Root через launchd XPC
+* `com.apple.rootless.restricted-block-devices`: Доступ до сирих блочних пристроїв
+* `com.apple.rootless.internal.installer-equivalent`: Безперешкодний доступ до файлової системи
+* `com.apple.rootless.restricted-nvram-variables[.heritable]`: Повний доступ до NVRAM
+* `com.apple.rootless.storage.label`: Модифікувати файли, обмежені com.apple.rootless xattr з відповідною міткою
+* `com.apple.rootless.volume.VM.label`: Підтримувати обмін VM на томі
+
## Обхід SIP
Обхід SIP дозволяє зловмиснику:
-* **Отримати доступ до даних користувача**: Читати чутливі дані користувача, такі як електронна пошта, повідомлення та історія Safari з усіх облікових записів користувачів.
+* **Доступ до даних користувача**: Читати чутливі дані користувача, такі як електронна пошта, повідомлення та історія Safari з усіх облікових записів користувачів.
* **Обхід TCC**: Прямо маніпулювати базою даних TCC (Прозорість, Згода та Контроль), щоб надати несанкціонований доступ до веб-камери, мікрофона та інших ресурсів.
-* **Встановити постійність**: Розмістити шкідливе ПЗ в захищених SIP місцях, роблячи його стійким до видалення, навіть з правами root. Це також включає можливість підробки Інструменту видалення шкідливого ПЗ (MRT).
+* **Встановити постійність**: Розмістити шкідливе ПЗ в захищених SIP місцях, роблячи його стійким до видалення, навіть з правами root. Це також включає потенціал для підробки Інструменту видалення шкідливого ПЗ (MRT).
* **Завантажувати розширення ядра**: Хоча є додаткові запобіжники, обхід SIP спрощує процес завантаження непідписаних розширень ядра.
-### Пакети установників
+### Пакети установника
-**Пакети установників, підписані сертифікатом Apple**, можуть обійти його захист. Це означає, що навіть пакети, підписані стандартними розробниками, будуть заблоковані, якщо вони намагатимуться змінити каталоги, захищені SIP.
+**Пакети установника, підписані сертифікатом Apple**, можуть обійти його захист. Це означає, що навіть пакети, підписані стандартними розробниками, будуть заблоковані, якщо вони намагатимуться змінити каталоги, захищені SIP.
### Невідомий файл SIP
@@ -105,24 +122,24 @@ csrutil enable --without debug
### com.apple.rootless.install.heritable
{% hint style="danger" %}
-Право **`com.apple.rootless.install.heritable`** дозволяє обійти SIP
+Права **`com.apple.rootless.install.heritable`** дозволяють обійти SIP
{% endhint %}
#### [CVE-2019-8561](https://objective-see.org/blog/blog\_0x42.html)
-Було виявлено, що можливо **поміняти пакет установника після того, як система перевірила його код** підпису, і тоді система встановлювала б шкідливий пакет замість оригінального. Оскільки ці дії виконувалися **`system_installd`**, це дозволяло обійти SIP.
+Було виявлено, що можливо **поміняти пакет установника після того, як система перевірила його код** підпису, і тоді система встановить шкідливий пакет замість оригінального. Оскільки ці дії виконувалися **`system_installd`**, це дозволяло обійти SIP.
#### [CVE-2020–9854](https://objective-see.org/blog/blog\_0x4D.html)
-Якщо пакет було встановлено з змонтованого образу або зовнішнього диска, **установник** **виконував** двійковий файл з **цього файлового системи** (замість захищеного місця SIP), змушуючи **`system_installd`** виконувати довільний двійковий файл.
+Якщо пакет було встановлено з змонтованого образу або зовнішнього диска, **установник** **виконував** двійковий файл з **цієї файлової системи** (замість SIP-захищеного місця), змушуючи **`system_installd`** виконувати довільний двійковий файл.
#### CVE-2021-30892 - Shrootless
-[**Дослідники з цього блогу**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) виявили вразливість у механізмі захисту цілісності системи (SIP) macOS, названу вразливістю 'Shrootless'. Ця вразливість зосереджена навколо демона **`system_installd`**, який має право **`com.apple.rootless.install.heritable`**, що дозволяє будь-якому з його дочірніх процесів обійти обмеження файлової системи SIP.
+[**Дослідники з цього блогу**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) виявили вразливість у механізмі захисту цілісності системи (SIP) macOS, відому як вразливість 'Shrootless'. Ця вразливість зосереджена навколо демона **`system_installd`**, який має право **`com.apple.rootless.install.heritable`**, що дозволяє будь-якому з його дочірніх процесів обходити обмеження файлової системи SIP.
Демон **`system_installd`** буде встановлювати пакети, які були підписані **Apple**.
-Дослідники виявили, що під час установки пакета, підписаного Apple (.pkg файл), **`system_installd`** **виконує** будь-які **скрипти після установки**, включені в пакет. Ці скрипти виконуються за допомогою стандартної оболонки, **`zsh`**, яка автоматично **виконує** команди з файлу **`/etc/zshenv`**, якщо він існує, навіть у неінтерактивному режимі. Цю поведінку можуть використовувати зловмисники: створивши шкідливий файл `/etc/zshenv` і чекаючи, поки **`system_installd` викличе `zsh`**, вони можуть виконувати довільні операції на пристрої.
+Дослідники виявили, що під час встановлення пакета, підписаного Apple (.pkg файл), **`system_installd`** **виконує** будь-які **скрипти після установки**, включені в пакет. Ці скрипти виконуються за допомогою стандартної оболонки, **`zsh`**, яка автоматично **виконує** команди з файлу **`/etc/zshenv`**, якщо він існує, навіть у неінтерактивному режимі. Цю поведінку можна використовувати зловмисниками: створивши шкідливий файл `/etc/zshenv` і чекаючи, поки **`system_installd` викличе `zsh`**, вони можуть виконувати довільні операції на пристрої.
Більше того, було виявлено, що **`/etc/zshenv` може використовуватися як загальна техніка атаки**, не лише для обходу SIP. Кожен профіль користувача має файл `~/.zshenv`, який поводиться так само, як `/etc/zshenv`, але не вимагає прав root. Цей файл може використовуватися як механізм постійності, спрацьовуючи щоразу, коли запускається `zsh`, або як механізм підвищення привілеїв. Якщо адміністратор підвищує привілеї до root, використовуючи `sudo -s` або `sudo `, файл `~/.zshenv` буде спрацьовувати, ефективно підвищуючи привілеї до root.
@@ -132,7 +149,7 @@ csrutil enable --without debug
#### [fsck\_cs utility](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
-Виявлено вразливість, при якій **`fsck_cs`** був введений в оману, що призвело до пошкодження важливого файлу, через його здатність слідувати **символічним посиланням**. Зокрема, зловмисники створили посилання з _`/dev/diskX`_ на файл `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Виконання **`fsck_cs`** на _`/dev/diskX`_ призвело до пошкодження `Info.plist`. Цілісність цього файлу є важливою для SIP (Захист цілісності системи) операційної системи, яка контролює завантаження розширень ядра. Після пошкодження здатність SIP управляти виключеннями ядра порушується.
+Виявлено вразливість, при якій **`fsck_cs`** був введений в оману, що призвело до пошкодження важливого файлу, через його здатність слідувати **символічним посиланням**. Зокрема, зловмисники створили посилання з _`/dev/diskX`_ на файл `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Виконання **`fsck_cs`** на _`/dev/diskX`_ призвело до пошкодження `Info.plist`. Цілісність цього файлу є важливою для SIP (Захист цілісності системи) операційної системи, яка контролює завантаження розширень ядра. Після пошкодження здатність SIP керувати виключеннями ядра порушується.
Команди для використання цієї вразливості:
```bash
@@ -193,8 +210,8 @@ Sealed System Snapshots are a feature introduced by Apple in **macOS Big Sur (ma
Here's a more detailed look:
1. **Незмінна система**: Sealed System Snapshots роблять об'єм системи macOS "незмінним", що означає, що його не можна змінювати. Це запобігає будь-яким несанкціонованим або випадковим змінам системи, які можуть загрожувати безпеці або стабільності системи.
-2. **Оновлення системного програмного забезпечення**: Коли ви встановлюєте оновлення або апгрейди macOS, macOS створює новий знімок системи. Об'єм завантаження macOS потім використовує **APFS (Apple File System)** для переходу на цей новий знімок. Увесь процес застосування оновлень стає безпечнішим і надійнішим, оскільки система завжди може повернутися до попереднього знімка, якщо щось піде не так під час оновлення.
-3. **Розділення даних**: У поєднанні з концепцією розділення об'ємів даних і системи, введеною в macOS Catalina, функція Sealed System Snapshot забезпечує зберігання всіх ваших даних і налаштувань на окремому об'ємі "**Дані**". Це розділення робить ваші дані незалежними від системи, що спрощує процес оновлення системи та підвищує безпеку системи.
+2. **Оновлення системного програмного забезпечення**: Коли ви встановлюєте оновлення або апгрейди macOS, macOS створює новий знімок системи. Об'єм завантаження macOS потім використовує **APFS (Apple File System)** для переходу на цей новий знімок. Весь процес застосування оновлень стає безпечнішим і надійнішим, оскільки система завжди може повернутися до попереднього знімка, якщо щось піде не так під час оновлення.
+3. **Розділення даних**: У поєднанні з концепцією розділення об'ємів даних і системи, введеною в macOS Catalina, функція Sealed System Snapshot забезпечує, що всі ваші дані та налаштування зберігаються на окремому об'ємі "**Data**". Це розділення робить ваші дані незалежними від системи, що спрощує процес оновлення системи та підвищує безпеку системи.
Пам'ятайте, що ці знімки автоматично керуються macOS і не займають додаткового місця на вашому диску завдяки можливостям спільного використання простору APFS. Також важливо зазначити, що ці знімки відрізняються від **знімків Time Machine**, які є резервними копіями всієї системи, доступними для користувача.
@@ -254,17 +271,16 @@ mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
```
{% hint style="success" %}
-Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+Вивчайте та практикуйте AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Вивчайте та практикуйте GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Support HackTricks
+Підтримайте HackTricks
-* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
-* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
+* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи Telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
{% endhint %}
-