Полезное

Решение проблем начального доступа в macOS

Начальный доступ — обычная проблема при агрессивных операциях с macOS. Любой, кто прошел через этот процесс, знает, как легко сделать ошибки, которые блокируют выполнение. Кроме того, нелегко проанализировать эти методы без изучения прошлых образцов / отчетов о вредоносных программах с точки зрения защиты. Чтобы устранить эти болевые точки, Лео Питт разработал Mystikal. Инструмент для решения проблем начального доступа в macOS.

Эта статья служит руководством по использованию Mystikal, обзором различных полезных нагрузок начального входа и обсуждает артефакты, оставленные этими методами начального входа в систему для обнаружения.

Mystikal

Mystikal — это генератор полезной нагрузки macOS, интегрированный с Mythic. Mystikal использует скрипты Mythic для входа в систему и генерирует необходимую полезную нагрузку для выбранного метода начального доступа. Mystikal создает полезную нагрузку Apfell или Leviathan в зависимости от выбранного первоначального метода доступа.

В оставшейся части этой статьи мы рассмотрим несколько примеров использования, а также связанные с ними обнаружения.

Пакеты установщика с функциями JavaScript

Обычной полезной нагрузкой, используемой для начального доступа, является пакет установщика. Эти пакеты представляют собой архивы расширяемого ARchiver (XAR), которые соответствуют определенной структуре папок и имеют расширение файла .pkg. Простое сравнение с Windows — это установщики Windows, которые обычно имеют расширение файла .msi. Как и в случае с установщиками Windows, выполнение пакетов установщика обычно приводит к тому, что конечному пользователю предоставляется мастер установки для инсталяции.

Пример установочного пакета (.pkg)
Для агрессивного использования типичное выполнение пакета установщика зависит от сценариев до и после установки, которые представляют собой простые сценарии bash, которые выполняются в процессе установки. Альтернативный метод зависит от злоупотребления JavaScript в распространяемых файлах расширяемого языка разметки (XML) с использованием InstallerJS. InstallerJSот Apple — это интерфейс прикладного программирования (API), который используется в XML-файлах распространения для выполнения проверок установки.
В API InstallerJS есть тег system.run, который может выполнять системные команды. Вредоносная программа Silver Sparrow недавно использовала этот метод. Злоупотребляя XML-файлом распространения, злоумышленники могут выполнять те же задачи, которые обычно выполняются в сценариях до и после установки. Преимущество этого метода в том, что он немного усложняет просмотр действий, выполняемых установочным пакетом. Кроме того, из-за времени вызова XML-файла распространения пакет установщика не должен завершать процесс установки для выполнения.

Применение

Для создания полезной нагрузки Mystikal вы сначала должны обновить файл MythicSettings.py, находящийся в Settings / MythicSettings.py, в соответствии с вашим сервером Mythic. Затем, чтобы создать эту полезную нагрузку, вы выбираете вариант 1 для пакетов установщика.
Главное меню для Mystikal
Примечание: эта статья не охватывает все методы, показанные выше. Для получения дополнительной информации о профилях мобильной конфигурации, в которых используются полезные нагрузки Leviathan, я настоятельно рекомендую просмотреть блог Xorrior. Для освещения вредоносных образов дисков я рекомендую блог Патрика Уордла.
Затем в подменю выберите вариант 4 для пакета установщика с функциями JavaScript.
Выбран вариант 4 для установочного пакета с XML-кодом распространения
Наконец, выберите в подменю вариант 1 для выполнения, встроенного в XML-файл распространения.
Выбран вариант 1 для размещения выполнения в XML-файле распространения
Mystikal выполнит процесс сборки, сначала создав полезные данные Apfell. Эта полезная нагрузка Apfell создается на основе информации в файле Settings / MythicSettings.py (информация о хосте обратного вызова) и файле Modules / Installer_JS.py (выбранные команды полезной нагрузки). Затем Mystikal изменяет XML-файл распространения шаблона и по умолчанию сохраняет пакет установщика как JSPackage.pkg.
Выходное сообщение для опции полезной нагрузки

Исполнение

В зависимости от метода, используемого для передачи полезной нагрузки на целевой компьютер (например, загрузка браузера, вложение электронной почты и т. д.), Вы, вероятно, будете подчиняться контролеру. Чтобы подробно ознакомиться с Gatekeeper, я настоятельно рекомендую блог Говарда Окли по этой теме. Вкратце, Gatekeeper — это механизм Apple, предотвращающий запуск ненадежного кода на устройствах MacOS. Из-за этого цель, вероятно, увидит следующее приглашение при двойном щелчке по приложению.
Двойной щелчок по установочному пакету, загруженному через Chrome
Это приглашение не дает нам возможности выполнить приложение. Законные приложения также иногда сталкиваются с этим. Как и в случае с законными приложениями, злоумышленник может исправить это под предлогом, указав, как открыть приложение. Например, простой щелчок правой кнопкой мыши (или щелчок с нажатой клавишей Control, если у вас Apple Magic Mouse) и открытие приложения приводит к следующему запросу, который дает нам возможность запустить пакет.
Щелкните правой кнопкой мыши пакет установщика, загруженный через Chrome
Примечание: злоумышленник может пойти по пути подписания и нотариального заверения пакета, чтобы свести к минимуму эти запросы, но это сопряжено с риском сжигания сертификатов вашей программы разработчика Apple. Получение этих сертификатов требует длительного процесса авторизации, который стоит 99 долларов в год.
Прежде чем обсуждать артефакты, стоит отметить дополнительную подсказку, генерируемую Big Sur. Похоже, что в приложении выполняются проверки, чтобы определить, прикреплены ли к пакету установщика действия перед установкой.
Следующее сообщение отображается, когда либо сценарии установки, либо XML-файлы распространения прикрепляются к пакету установщика, чтобы дать конечным пользователям еще одну паузу перед выполнением. Это сообщение не появилось на моей виртуальной машине.
Сообщение, указывающее на действия перед установкой в ​​пакете

Обнаружение

Crescendo, средство просмотра событий в реальном времени для macOS, использует Apple Endpoint Security Framework (ESF) и помогает фиксировать события процессов и файлов. Используя Crescendo, я мог легко отслеживать выполнение команды bashв файле distribution.xml. В процессе установкибыл порожден дочерний элемент bash, что привело к появлению других процессов, участвующих в полезной нагрузке. В данном случае это curl & osascript.
Выполнение Bash, извлечение и запуск полезной нагрузки Apfell
Как видите, PID 4133 bash имеет родительский идентификатор installerPID 4131. TrueTreeотображает дерево процессов для запущенных в данный момент процессов. Используя TrueTree, я мог отслеживать запущенный процесс osascript, у которого был родительский процесс installer application.
Выдержка TrueTree, показывающая выполняющуюся полезную нагрузку Apfell
Агент Apfell в Mythic Запуск в osascript PID 4135
Популярным инструментом для проверки пакетов установщика перед запуском является SuspiciousPackage. Хотя он отлично подходит для идентификации сценариев установки, у него возникают трудности с распространением файлов XML. Однако, поскольку эти файлы являются архивами XAR, вы можете использовать xar -xvf JSPackage.pkg для расширения файла. Вы также можете использовать pkgutil --expand JSPackage.pkg save / to / path для просмотра содержимого пакета. Журнал установки находится в /var/log/install.log, но записи в нем не содержат информации о XML-файле распространения.

Microsoft Office Macros

Выполнение через документы Microsoft Office (Word, PowerPoint, Excel) — это устоявшийся и популярный метод выполнения. Ребята из F-Secure недавно провели отличный веб-семинар, посвященный выполнению и обнаружению традиционных форм макросов в macOS. У Патрика Уордла есть отличный блог, в котором также рассказывается об этом методе. Интересный пункт в блоге касался исследования Стэна Хегта, в котором использовался старый формат файла SYmbolic LinK (.slk) и старый язык программирования макросов Excel 4.0 Macro (XLM), предшественник Visual Basic для приложений (VBA). Используя этот метод, мы можем получить то же самое выполнение, что и традиционный метод, но использовать расширения файлов .slk или .csv.

Применение

Чтобы создать эту полезную нагрузку, вы выбираете вариант 5.

Выбран вариант 5 для макросов XLM в файлах SYLK
Содержимое файла macro.slk представляет собой простой макрос XLM, основанный на примере Патрика, который вызывает curlи osascriptдля извлечения и выполнения полезной нагрузки Apfell с нашего сервера Mythic.
Содержимое файла macro.slk

Исполнение

Как и ожидалось, двойной щелчок по файлу приводит к предупреждению:
Запрос при двойном щелчке по файлу Excel
Как указывалось ранее, вы также можете использовать расширение файла .csv, но это приведет к появлению дополнительного запроса, показанного ниже.

Обнаружение

Используя TrueTree, мы можем отследить, что запущенный процесс osascript PID 12982 порожден PID 12958 процесса Microsoft Excel, что является ненормальным поведением.
Выдержка TrueTree, показывающая выполняющуюся полезную нагрузку Apfell
Агент Apfell в Mythic Запуск в osascript PID 12982
Используя Crescendo, мы можем захватить содержимое выполнения bash, которое было запущено Microsoft Excel PID 12958.
Выполнение Bash, извлечение и запуск полезной нагрузки Apfell

Укрепленные PDFs

Изучая варианты полезной нагрузки для начального доступа, я наткнулся на блогtokyoneonо создании поддельного трояна PDF с помощью AppleScript. Этот метод создает приложение, которое выглядит как типичный файл в формате Portable Document Format (PDF), загружая и открывая законный PDF, и выполняет наши полезные данные Apfell, чтобы скрыть наши истинные намерения от конечного пользователя.

Применение

Чтобы создать эту полезную нагрузку, выберите опцию 7.
Выбранный вариант 7 для вооруженных PDF-файлов
Mystikal создает приложение с ..app в имени файла, чтобы просто скрыть фактическое расширение файла.
Выходное сообщение для опции полезной нагрузки

Исполнение

Опять же, в зависимости от метода, используемого для доставки полезной нагрузки к цели, вы, вероятно, будете подчиняться к Gatekeeper. Целевой объект, скорее всего, увидит следующее приглашение при двойном щелчке по поддельному приложению PDF.

Двойной щелчок по поддельному PDF-файлу, загруженному через Chrome
Опять же, злоумышленник может предоставить некоторые инструкции, чтобы заставить цель щелкнуть правой кнопкой мыши и, возможно, открыть файл. В случае успеха им будет представлена ​​следующая подсказка с опцией открытия.
Щелкните правой кнопкой мыши пакет установщика, загруженный через Chrome

Обнаружение

Используя Crescendo, я проследил выполнение команды в поддельном PDF-файле (приложение, изображающее PDF-файл). applet процесса приложения порождал дочерний элемент bash, в результате чего выполнялись другие вовлеченные процессы. В данном случае это были curl & osascript.
Выполнение поддельного PDF-приложения
Выполнение Bash извлекает поддельный PDF-файл, открывает PDF-файл, извлекает и запускает полезную нагрузку Apfell
Вышеупомянутая команда отключена; Ниже приведен простой файл AppleScript, который Mystikal создает и компилирует в поддельное приложение PDF.
Содержимое AppleScript, который компилируется в приложение
Этот фрагмент показывает, что приложение вытягивает (curl) и открывает (Preview.app) фактический PDF-файл, который мы хотим открыть целевой. Затем он извлекает полезную нагрузку Apfell (curl) и выполняет ее в фоновом режиме (osascript).
Используя TrueTree, я мог отслеживать запущенный процесс osascript, у которого был родительский элемент приложения Fake PDF (Doomfist.pdf..app).
Выдержка TrueTree, показывающая выполняющуюся полезную нагрузку Apfell
Агент Apfell в Mythic Запуск в osascript PID 633

Заключение

Целью Этой статьи было познакомить с Mystikal и выделить некоторые менее известные методы начального доступа в macOS и артефакты, которые они создают. Проект все еще находится на начальной стадии и в активной разработке. Я надеюсь, что эта статья проливает свет на методы начального доступа для macOS и дает краткое введение в артефакты, которые они создают, чтобы помочь усилиям по обнаружению.
Click to rate this post!
[Total: 1 Average: 5]
faza

Recent Posts

Лучший адаптер беспроводной сети для взлома Wi-Fi

Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…

4 месяца ago

Как пользоваться инструментом FFmpeg

Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…

4 месяца ago

Как создать собственный VPN-сервис

Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…

5 месяцев ago

ChatGPT против HIX Chat: какой чат-бот с искусственным интеллектом лучше?

С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…

5 месяцев ago

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…

5 месяцев ago

Как обнаружить угрозы в памяти

Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…

5 месяцев ago