macOS Dirty NIB
Для отримання додаткових відомостей про техніку перевірте оригінальний пост за посиланням: https://blog.xpnsec.com/dirtynib/**. Ось краткий опис:
Файли NIB, як частина екосистеми розробки Apple, призначені для визначення елементів користувацького інтерфейсу та їх взаємодії в додатках. Вони охоплюють серіалізовані об'єкти, такі як вікна та кнопки, та завантажуються під час виконання. Незважаючи на їх поширене використання, Apple зараз рекомендує використовувати Storyboards для більш комплексної візуалізації потоку користувацького інтерфейсу.
Проблеми безпеки з файлами NIB
Важливо зауважити, що файли NIB можуть становити загрозу безпеці. Вони можуть виконувати довільні команди, і зміни в файлах NIB в додатку не заважають Gatekeeper виконувати додаток, що становить значну загрозу.
Процес впровадження Dirty NIB
Створення та налаштування файлу NIB
Початкове налаштування:
Створіть новий файл NIB за допомогою XCode.
Додайте об'єкт до інтерфейсу, встановивши його клас на
NSAppleScript
.Налаштуйте початкову властивість
source
через атрибути часу виконання, визначені користувачем.
Елемент виконання коду:
Налаштування сприяє запуску AppleScript за запитом.
Інтегруйте кнопку для активації об'єкта
Apple Script
, спеціально викликаючи селекторexecuteAndReturnError:
.
Тестування:
Простий Apple Script для тестування:
Перевірте, запустивши відлагоджувач XCode та натиснувши кнопку.
Направлення на додаток (Приклад: Pages)
Підготовка:
Скопіюйте цільовий додаток (наприклад, Pages) в окремий каталог (наприклад,
/tmp/
).Запустіть додаток, щоб уникнути проблем з Gatekeeper та кешуванням.
Перезапис файлу NIB:
Замініть існуючий файл NIB (наприклад, About Panel NIB) на створений файл DirtyNIB.
Виконання:
Запустіть виконання, взаємодіючи з додатком (наприклад, вибравши пункт меню
About
).
Доказ концепції: Доступ до даних користувача
Змініть AppleScript для доступу та вилучення даних користувача, таких як фотографії, без згоди користувача.
Приклад коду: Зловмисний файл .xib
Ознайомтеся з прикладом зловмисного файлу .xib, який демонструє виконання довільного коду.
Вирішення обмежень запуску
Обмеження запуску заважають виконанню додатків з неочікуваних місць (наприклад,
/tmp
).Можливо виявити додатки, які не захищені обмеженнями запуску, та спрямувати їх для впровадження файлу NIB.
Додаткові заходи захисту macOS
Починаючи з macOS Sonoma, зміни всередині пакетів додатків обмежені. Однак раніше використовувалися такі методи:
Копіювання додатка в інше місце (наприклад,
/tmp/
).Перейменування каталогів у пакеті додатка для обходу початкових захистів.
Після запуску додатка для реєстрації з Gatekeeper, зміна пакету додатка (наприклад, заміна MainMenu.nib на Dirty.nib).
Повернення початкових назв каталогів та повторний запуск додатка для виконання впровадженого файлу NIB.
Примітка: Останні оновлення macOS пом'якшили цей експлойт, запобігаючи модифікації файлів всередині пакетів додатків після кешування Gatekeeper, що робить експлойт неефективним.
Last updated