macOS Red Teaming

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

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

Зловживання MDM

  • JAMF Pro: jamf checkJSSConnection

  • Kandji

Якщо ви змогли скомпрометувати адміністративні облікові дані для доступу до платформи управління, ви можете потенційно скомпрометувати всі комп'ютери, розповсюджуючи своє шкідливе ПЗ на машинах.

Для червоного командування в середовищах MacOS високо рекомендується мати розуміння того, як працюють MDM:

pagemacOS MDM

Використання MDM як C2

MDM матиме дозвіл на встановлення, запит або видалення профілів, встановлення додатків, створення локальних облікових записів адміністратора, встановлення пароля для прошивки, зміну ключа FileVault...

Для запуску власного MDM вам потрібно ваш CSR підписаний вендором, який ви можете спробувати отримати за допомогою https://mdmcert.download/. І для запуску власного MDM для пристроїв Apple ви можете використовувати MicroMDM.

Однак, для встановлення додатка на зареєстрований пристрій, вам все ще потрібно, щоб його підписав рахунок розробника... однак, під час реєстрації в MDM пристрій додає сертифікат SSL MDM як довірений ЦС, тому ви тепер можете підписувати все.

Для реєстрації пристрою в MDM вам потрібно встановити файл mobileconfig як root, який може бути доставлений через файл pkg (ви можете стиснути його в zip, і коли завантажуєте з safari, він буде розпакований).

Агент Mythic Orthrus використовує цей метод.

Зловживання JAMF PRO

JAMF може виконувати власні скрипти (скрипти, розроблені системним адміністратором), нативні навантаження (створення локальних облікових записів, встановлення пароля EFI, моніторинг файлів/процесів...) та MDM (конфігурація пристроїв, сертифікати пристроїв...).

Самозареєстрація JAMF

Перейдіть на сторінку, таку як https://<company-name>.jamfcloud.com/enroll/, щоб перевірити, чи вони мають ввімкнену самозареєстрацію. Якщо вони мають, це може запитати облікові дані для доступу.

Ви можете використовувати скрипт JamfSniper.py для виконання атаки зі спробою пароля.

Більше того, після знаходження відповідних облікових даних ви можете спробувати перебрати інші імена користувачів за наступною формою:

Аутентифікація пристрою JAMF

jamf бінарний файл містив секрет для відкриття keychain, який на момент відкриття був розповсюджений серед всіх і був: jk23ucnq91jfu9aj. Більше того, jamf зберігається як LaunchDaemon в /Library/LaunchAgents/com.jamf.management.agent.plist

Захоплення пристрою JAMF

URL JSS (Jamf Software Server), який використовуватиме jamf, розташований в /Library/Preferences/com.jamfsoftware.jamf.plist. Цей файл в основному містить URL:

plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist

[...]
<key>is_virtual_machine</key>
<false/>
<key>jss_url</key>
<string>https://halbornasd.jamfcloud.com/</string>
<key>last_management_framework_change_id</key>
<integer>4</integer>
[...]

Підробка JAMF

Для підробки комунікації між пристроєм та 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:

pagemacOS Network Services & Protocols

Active Directory

У деяких випадках ви знайдете, що комп'ютер MacOS підключений до AD. У цьому сценарії вам слід спробувати перелічити активний каталог, як ви звикли. Знайдіть допомогу на наступних сторінках:

page389, 636, 3268, 3269 - Pentesting LDAPpageActive Directory Methodologypage88tcp/udp - Pentesting Kerberos

Деякі локальні інструменти MacOS, які також можуть вам допомогти, - це dscl:

dscl "/Active Directory/[Domain]/All Domains" ls /

Також є деякі інструменти, підготовлені для 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.

echo show com.apple.opendirectoryd.ActiveDirectory | scutil

Користувачі

Три типи користувачів 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 на хості

#User enumeration
dscl . ls /Users
dscl . read /Users/[username]
dscl "/Active Directory/TEST/All Domains" ls /Users
dscl "/Active Directory/TEST/All Domains" read /Users/[username]
dscacheutil -q user

#Computer enumeration
dscl "/Active Directory/TEST/All Domains" ls /Computers
dscl "/Active Directory/TEST/All Domains" read "/Computers/[compname]$"

#Group enumeration
dscl . ls /Groups
dscl . read "/Groups/[groupname]"
dscl "/Active Directory/TEST/All Domains" ls /Groups
dscl "/Active Directory/TEST/All Domains" read "/Groups/[groupname]"

#Domain Information
dsconfigad -show

Додаткова інформація за посиланням https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/

Доступ до Ключового сховища

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

pagemacOS Keychain

Зовнішні сервіси

Червоний командний редагування MacOS відрізняється від звичайного червоного командного редагування Windows, оскільки зазвичай MacOS інтегрований з кількома зовнішніми платформами безпосередньо. Звичайна конфігурація MacOS передбачає доступ до комп'ютера за допомогою синхронізованих облікових даних OneLogin та доступ до кількох зовнішніх сервісів (наприклад, github, aws...) через OneLogin.

Різноманітні техніки червоного командного редагування

Safari

Коли файл завантажується в Safari, якщо це "безпечний" файл, він буде автоматично відкритий. Так, наприклад, якщо ви завантажуєте zip, він буде автоматично розпакований:

Посилання

Last updated