macOS Red Teaming
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом. Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
JAMF Pro: jamf checkJSSConnection
Kandji
Якщо вам вдасться компрометувати облікові дані адміністратора для доступу до платформи управління, ви можете потенційно скомпрометувати всі комп'ютери, розповсюджуючи ваше шкідливе ПЗ на машинах.
Для червоного тестування в середовищах MacOS настійно рекомендується мати певне розуміння того, як працюють MDM:
macOS MDMMDM матиме дозвіл на встановлення, запит або видалення профілів, встановлення додатків, створення локальних облікових записів адміністратора, встановлення пароля прошивки, зміну ключа FileVault...
Щоб запустити свій власний MDM, вам потрібно підписати ваш CSR у постачальника, що ви можете спробувати отримати за допомогою https://mdmcert.download/. А щоб запустити свій власний MDM для пристроїв Apple, ви можете використовувати MicroMDM.
Однак, щоб встановити додаток на зареєстрованому пристрої, вам все ще потрібно, щоб він був підписаний обліковим записом розробника... однак, під час реєстрації MDM пристрій додає SSL сертифікат MDM як довірений CA, тому ви тепер можете підписувати що завгодно.
Щоб зареєструвати пристрій в MDM, вам потрібно встановити файл mobileconfig
як root, який можна доставити через файл pkg (ви можете стиснути його в zip, і коли його завантажать з safari, він буде розпакований).
Mythic agent Orthrus використовує цю техніку.
JAMF може виконувати кастомні скрипти (скрипти, розроблені системним адміністратором), рідні корисні навантаження (створення локальних облікових записів, встановлення пароля EFI, моніторинг файлів/процесів...) та MDM (конфігурації пристроїв, сертифікати пристроїв...).
Перейдіть на сторінку, таку як https://<company-name>.jamfcloud.com/enroll/
, щоб перевірити, чи мають вони увімкнену самостійну реєстрацію. Якщо так, це може попросити облікові дані для доступу.
Ви можете використовувати скрипт JamfSniper.py для виконання атаки на підбор паролів.
Більше того, після знаходження відповідних облікових даних ви зможете брутфорсити інші імена користувачів за допомогою наступної форми:
Бінарний файл jamf
містив секрет для відкриття ключниці, який на момент виявлення був спільним серед усіх, і це було: jk23ucnq91jfu9aj
.
Більше того, jamf постійно існує як LaunchDaemon в /Library/LaunchAgents/com.jamf.management.agent.plist
JSS (Jamf Software Server) URL, який jamf
буде використовувати, знаходиться в /Library/Preferences/com.jamfsoftware.jamf.plist
.
Цей файл в основному містить URL:
Отже, зловмисник може встановити шкідливий пакет (pkg
), який перезаписує цей файл, встановлюючи URL для прослуховувача Mythic C2 з агента Typhon, щоб тепер мати можливість зловживати JAMF як C2.
Щоб імітувати комунікацію між пристроєм і JMF, вам потрібно:
UUID пристрою: ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
JAMF ключ з: /Library/Application\ Support/Jamf/JAMF.keychain
, який містить сертифікат пристрою
З цією інформацією, створіть ВМ з викраденим апаратним UUID і з вимкненим SIP, скиньте JAMF ключ, підключіть агент Jamf і викрадіть його інформацію.
Ви також можете моніторити місце /Library/Application Support/Jamf/tmp/
для кастомних скриптів, які адміністратори можуть захотіти виконати через Jamf, оскільки вони розміщуються тут, виконуються і видаляються. Ці скрипти можуть містити облікові дані.
Однак, облікові дані можуть передаватися цим скриптам як параметри, тому вам потрібно буде моніторити ps aux | grep -i jamf
(навіть не будучи root).
Скрипт JamfExplorer.py може слухати нові файли, які додаються, і нові аргументи процесу.
А також про MacOS "спеціальні" мережеві протоколи:
macOS Network Services & ProtocolsВ деяких випадках ви виявите, що комп'ютер MacOS підключений до AD. У цьому сценарії вам слід спробувати перерахувати активний каталог, як ви звикли. Знайдіть деяку допомогу на наступних сторінках:
389, 636, 3268, 3269 - Pentesting LDAPActive Directory Methodology88tcp/udp - Pentesting KerberosДеякий локальний інструмент MacOS, який також може вам допомогти, це dscl
:
Також є кілька інструментів, підготовлених для MacOS, щоб автоматично перераховувати AD та працювати з kerberos:
Machound: MacHound - це розширення до інструменту аудиту Bloodhound, що дозволяє збирати та імпортувати відносини Active Directory на MacOS хостах.
Bifrost: Bifrost - це проект на Objective-C, призначений для взаємодії з API Heimdal krb5 на macOS. Мета проекту - забезпечити кращий тестування безпеки навколо Kerberos на пристроях macOS, використовуючи рідні API без необхідності в будь-яких інших фреймворках або пакетах на цільовому пристрої.
Orchard: JavaScript для автоматизації (JXA) інструмент для перерахунку Active Directory.
Три типи користувачів MacOS:
Локальні користувачі — Керуються локальною службою OpenDirectory, вони не пов'язані жодним чином з Active Directory.
Мережеві користувачі — Нестабільні користувачі Active Directory, які потребують з'єднання з сервером DC для аутентифікації.
Мобільні користувачі — Користувачі Active Directory з локальною резервною копією своїх облікових даних та файлів.
Локальна інформація про користувачів та групи зберігається у папці /var/db/dslocal/nodes/Default. Наприклад, інформація про користувача на ім'я mark зберігається у /var/db/dslocal/nodes/Default/users/mark.plist, а інформація про групу admin — у /var/db/dslocal/nodes/Default/groups/admin.plist.
На додаток до використання країв HasSession та AdminTo, MacHound додає три нові краї до бази даних Bloodhound:
CanSSH - сутність, якій дозволено SSH до хоста
CanVNC - сутність, якій дозволено VNC до хоста
CanAE - сутність, якій дозволено виконувати скрипти AppleEvent на хості
Більше інформації в https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/
Отримати паролі за допомогою:
Можливо отримати пароль Computer$
всередині системного ключа.
Отримати TGT для конкретного користувача та служби:
Якщо TGT зібрано, його можна ввести в поточну сесію за допомогою:
З отриманими сервісними квитками можна спробувати отримати доступ до спільних ресурсів на інших комп'ютерах:
Keychain, ймовірно, містить чутливу інформацію, доступ до якої без генерації запиту може допомогти просунутися в червоній командній вправі:
macOS KeychainMacOS Red Teaming відрізняється від звичайного Windows Red Teaming, оскільки зазвичай MacOS інтегровано з кількома зовнішніми платформами безпосередньо. Загальна конфігурація MacOS полягає в доступі до комп'ютера за допомогою синхронізованих облікових даних OneLogin та доступу до кількох зовнішніх сервісів (таких як github, aws...) через OneLogin.
Коли файл завантажується в Safari, якщо це "безпечний" файл, він буде автоматично відкритий. Тож, наприклад, якщо ви завантажите zip, він буде автоматично розпакований:
Отримайте перспективу хакера на ваші веб-додатки, мережу та хмару
Знайдіть і повідомте про критичні, експлуатовані вразливості з реальним бізнес-імпактом. Використовуйте наші 20+ спеціальних інструментів для картографування атакуючої поверхні, знаходження проблем безпеки, які дозволяють вам підвищити привілеї, і використовуйте автоматизовані експлойти для збору важливих доказів, перетворюючи вашу важку працю на переконливі звіти.
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)