AppleScript - это язык сценариев, разработанный для macOS, который позволяет пользователям автоматизировать задачи и управлять приложениями. Он работает через AppleEvents - метод коммуникации, который, несмотря на свои возможности, может быть использован злоумышленниками для манипулирования функциями и данными приложений в злонамеренных целях.
Интерпретаторы командной строки и сценариев: AppleScript
Несмотря на их возможности, важно понимать, что AppleEvents, хотя и не могут инициировать удаленные приложения, могут взаимодействовать с уже запущенными приложениями и манипулировать ими. Это позволяет осуществлять такие действия, как взаимодействие с открытыми SSH-соединениями, облегчение удаленного доступа к машине или создание обманчивых диалоговых окон. Кроме того, AppleScript может использовать нативные API, в частности NSAppleScript или OSAScript, что повышает универсальность и расширяет возможности применения в различных сценариях, начиная с macOS версии 10.10 Yosemite.
Для выполнения в терминале используется команда osascript. Для запуска файла сценария используется команда osascript /path/to/AppleScriptFile, а osascript -e «script here» запускает команду AppleScript напрямую. Например, osascript -e «сказать приложению „Системные события“ вывести диалог „Обнаружена системная ошибка!“» создает фальшивый диалог ошибки - тактика, часто используемая в атаках социальной инженерии.
Использование AppleScript злоумышленниками
Злоумышленники могут выполнять различные вредоносные действия с помощью AppleScript.
Обход механизмов контроля привилегий: Запрос на повышение привилегий (T1548.004)
AppleScript может быть использован для злоупотребления механизмами управления повышением уровня доступа в системах macOS, что позволяет злоумышленникам получить повышенные привилегии и выполнить вредоносные действия.
Например, команда AppleScript, приведенная ниже, используется вредоносной программой HeavyLift для повышения своих привилегий в системах macOS. После выполнения HeavyLift определяет, на какой операционной системе он работает. Если он обнаруживает macOS и выясняет, что у него нет привилегий root, он использует следующую команду:
1 | /usr/bin/osascript -e 'do shell script "bash -c " _process_path " with administrator privileges' |
Эта команда использует osascript, утилиту macOS для запуска AppleScript, для выполнения команды оболочки (bash -c) от имени администратора. Заполнитель _process_path представляет собой путь к вредоносной полезной нагрузке или сценарию, который вредоносная программа стремится выполнить с повышенными привилегиями. Добавив к нему пункт with administrator privileges, вредоносная программа вызывает системный запрос на предоставление root-доступа, что позволяет ей обойти ограничения и выполнить свои вредоносные действия.
Эта техника показывает, как злоумышленники используют легитимные функции macOS для повышения привилегий, и подчеркивает важность мониторинга и ограничения использования таких утилит для снижения потенциальных угроз.
Доступ к учетным данным с помощью перехвата ввода через графический интерфейс (T1056.002)
Подробнее: MITRE ATT&CK T1056.002 - Перехват ввода: Перехват ввода в графический интерфейсе
С помощью перехвата ввода через графический интерфейс злоумышленники могут создавать сценарии, которые легко имитируют легитимное поведение системы, эффективно собирая учетные данные, не вызывая немедленных подозрений.
Одним из ярких примеров является методика MacStealer, в которой злоумышленники используют osascript для выполнения кода AppleScript inline. При этом создается обманчиво простое, но убедительное диалоговое окно. Например, злоумышленник может выполнить следующую команду:
1 | osascript -e 'display dialog "MacOS wants to access the System Preferences." with title "System Preferences" with icon caution default answer "" with hidden answer' |
Этот скрипт создает всплывающее диалоговое окно, похожее на легитимный системный запрос macOS. Созданное сообщение «macOS хочет получить доступ к системным настройкам» сопровождается авторитетным заголовком и предупреждающим значком, чтобы вызвать ложное чувство срочности. Включение скрытого поля ввода текста еще больше усиливает иллюзию обычной меры безопасности, тонко подталкивая пользователя к вводу своих учетных данных.
Эта техника, несмотря на свою простоту, использует присущее пользователям доверие к системным подсказкам. Она подчеркивает способность злоумышленника использовать поведение человека в качестве вектора для получения первоначального доступа.