Вивчайте та практикуйте AWS Hacking:<imgsrc="../../../.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="../../../.gitbook/assets/arte.png"alt=""data-size="line">\
Вивчайте та практикуйте GCP Hacking: <imgsrc="../../../.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="../../../.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
Установочний пакет macOS (також відомий як файл `.pkg`) — це формат файлу, який використовується macOS для **розповсюдження програмного забезпечення**. Ці файли схожі на **коробку, яка містить все, що потрібно програмному забезпеченню** для правильного встановлення та роботи.
Сам файл пакета є архівом, який містить **ієрархію файлів і каталогів, які будуть встановлені на цільовому** комп'ютері. Він також може включати **скрипти** для виконання завдань до та після встановлення, такі як налаштування конфігураційних файлів або очищення старих версій програмного забезпечення.
Щоб візуалізувати вміст інсталятора без ручного розпакування, ви також можете використовувати безкоштовний інструмент [**Suspicious Package**](https://mothersruin.com/software/SuspiciousPackage/).
Файли DMG, або образи дисків Apple, є форматом файлів, який використовується macOS для образів дисків. Файл DMG по суті є **монтуємим образом диска** (він містить власну файлову систему), що містить сирі блоки даних, які зазвичай стиснуті і іноді зашифровані. Коли ви відкриваєте файл DMG, macOS **монтує його так, ніби це фізичний диск**, що дозволяє вам отримати доступ до його вмісту.
Зверніть увагу, що **`.dmg`** інсталятора підтримують **так багато форматів**, що в минулому деякі з них, що містили вразливості, були зловживані для отримання **виконання коду ядра**.
* Верхній рівень: Це корінь образу диска. Він часто містить додаток і, можливо, посилання на папку Додатки.
* Додаток (.app): Це фактичний додаток. У macOS додаток зазвичай є пакетом, що містить багато окремих файлів і папок, які складають додаток.
* Посилання на Додатки: Це ярлик до папки Додатки в macOS. Мета цього полягає в тому, щоб спростити установку додатка. Ви можете перетягнути файл .app на цей ярлик, щоб встановити додаток.
Якщо скрипт перед або після установки, наприклад, виконується з **`/var/tmp/Installerutil`**, і зловмисник може контролювати цей скрипт, він може підвищити привілеї щоразу, коли його виконують. Або інший подібний приклад:
Це [публічна функція](https://developer.apple.com/documentation/security/1540038-authorizationexecutewithprivileg), яку кілька інсталяторів і оновлювачів викликають для **виконання чогось від імені root**. Ця функція приймає **шлях** до **файлу**, який потрібно **виконати** як параметр, однак, якщо зловмисник може **модифікувати** цей файл, він зможе **зловживати** його виконанням з root для **підвищення привілеїв**.
Для отримання додаткової інформації перегляньте цю доповідь: [https://www.youtube.com/watch?v=lTOItyjTTkw](https://www.youtube.com/watch?v=lTOItyjTTkw)
Якщо інсталятор записує в `/tmp/fixedname/bla/bla`, можливо **створити монтування** над `/tmp/fixedname` без власників, щоб ви могли **модифікувати будь-який файл під час установки** для зловживання процесом установки.
Прикладом цього є **CVE-2021-26089**, який зміг **перезаписати періодичний скрипт** для отримання виконання як root. Для отримання додаткової інформації перегляньте доповідь: [**OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl**](https://www.youtube.com/watch?v=jSYPazD4VcE)
Можливо просто згенерувати **`.pkg`** файл з **скриптами перед і після установки** без будь-якого реального вантажу, окрім шкідливого ПЗ всередині скриптів.
Можливо додати **`<script>`** теги у**файл distribution xml** пакета, і цей код буде виконано, і він може **виконувати команди** за допомогою **`system.run`**:
Learn & practice AWS Hacking:<imgsrc="../../../.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="../../../.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="../../../.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="../../../.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* 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.