macOS Dirty NIB

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

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

Для отримання додаткових відомостей про техніку перевірте оригінальний пост за посиланням: https://blog.xpnsec.com/dirtynib/**. Ось краткий опис:

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

Проблеми безпеки з файлами NIB

Важливо зауважити, що файли NIB можуть становити загрозу безпеці. Вони можуть виконувати довільні команди, і зміни в файлах NIB в додатку не заважають Gatekeeper виконувати додаток, що становить значну загрозу.

Процес впровадження Dirty NIB

Створення та налаштування файлу NIB

  1. Початкове налаштування:

  • Створіть новий файл NIB за допомогою XCode.

  • Додайте об'єкт до інтерфейсу, встановивши його клас на NSAppleScript.

  • Налаштуйте початкову властивість source через атрибути часу виконання, визначені користувачем.

  1. Елемент виконання коду:

  • Налаштування сприяє запуску AppleScript за запитом.

  • Інтегруйте кнопку для активації об'єкта Apple Script, спеціально викликаючи селектор executeAndReturnError:.

  1. Тестування:

  • Простий Apple Script для тестування:

set theDialogText to "PWND"
display dialog theDialogText
  • Перевірте, запустивши відлагоджувач XCode та натиснувши кнопку.

Направлення на додаток (Приклад: Pages)

  1. Підготовка:

  • Скопіюйте цільовий додаток (наприклад, Pages) в окремий каталог (наприклад, /tmp/).

  • Запустіть додаток, щоб уникнути проблем з Gatekeeper та кешуванням.

  1. Перезапис файлу NIB:

  • Замініть існуючий файл NIB (наприклад, About Panel NIB) на створений файл DirtyNIB.

  1. Виконання:

  • Запустіть виконання, взаємодіючи з додатком (наприклад, вибравши пункт меню About).

Доказ концепції: Доступ до даних користувача

  • Змініть AppleScript для доступу та вилучення даних користувача, таких як фотографії, без згоди користувача.

Приклад коду: Зловмисний файл .xib

Вирішення обмежень запуску

  • Обмеження запуску заважають виконанню додатків з неочікуваних місць (наприклад, /tmp).

  • Можливо виявити додатки, які не захищені обмеженнями запуску, та спрямувати їх для впровадження файлу NIB.

Додаткові заходи захисту macOS

Починаючи з macOS Sonoma, зміни всередині пакетів додатків обмежені. Однак раніше використовувалися такі методи:

  1. Копіювання додатка в інше місце (наприклад, /tmp/).

  2. Перейменування каталогів у пакеті додатка для обходу початкових захистів.

  3. Після запуску додатка для реєстрації з Gatekeeper, зміна пакету додатка (наприклад, заміна MainMenu.nib на Dirty.nib).

  4. Повернення початкових назв каталогів та повторний запуск додатка для виконання впровадженого файлу NIB.

Примітка: Останні оновлення macOS пом'якшили цей експлойт, запобігаючи модифікації файлів всередині пакетів додатків після кешування Gatekeeper, що робить експлойт неефективним.

Last updated