Basic
Установка
Основа
Перед тем как мы рассмотрим сам программный комплекс, давай разберемся со следующими понятиями:
Listener — это локальный процесс, ожидающий бэкконнект с удаленного атакуемого хоста;
Stager — загрузчик Agent’a, то есть полезной нагрузки на удаленный атакуемый хост;
Agent — процесс (на удаленном атакуемом хосте), который соединяется с нашим Listener’ом;
Module — код, выполняемый Agent’ом для достижения определенных целей.
Запуск Empire: powershell-empire
Для получения точки опоры используется следующий порядок действий: создание Listener’a -> создание Stager’a для этого Listener’a -> запуск нагрузки на удаленном хосте (создание Agent’a).
Listener
Для создания Listener’a нужно войти в соответствующий интерфейс командой listeners
.
Создать его можно командой uselistener
, но давай посмотрим, какие типы листенеров нам может предложить Empire.
Поясню, что здесь что:
dbx
— Dropbox-листенер (хорош, чтобы уклоняться от обнаружения, но требует токен для Dropbox API);http
— обычный HTTP/HTTPS-листенер;http_com
— HTTP/HTTPS-листенер, использующий объект IE COM;http_foreign
— HTTP/HTTPS-листенер для сторонней нагрузки Empire;http_hop
— HTTP/HTTPS-листенер для перенаправления команд другому листенеру, что помогает скрыть исходный IP (требует параметр RedirectListener);http_mapi
— HTTP/HTTPS-листенер для использования с Liniaal, что позволит получить управление через Exchange-сервер;meterpreter
— HTTP/HTTPS-листенер для сторонней нагрузки Meterpreter;onedrive
— onedrive-листенер (требует регистрацию приложения https://apps.dev.microsoft.com)redirector
— инструмент для перехода от одного агента к другому.
С типами листенеров разобрались, а теперь давай посмотрим, как с ними работать. Для начала выбираем тип (для примера возьмем самый простой — HTTP).
Получить справку по выбранному листенеру можно командой info
.
Использованием прокси уже никого не удивишь, но мы можем назначить дату, когда листенер будет удален, а еще определенные часы работы (это очень удобно!). При использовании HTTPS нужно также указать путь к сертификату. Но теперь к основному: назначим имя листенера, адрес хоста для бэкконнекта и порт.
И запустим листенер командой execute
. back - команда, для возвращения в предыдущее меню.
Переходим ко второй стадии.
Stager
Давай по аналогии с листенером выберем тип stager’a (далее — нагрузки). Сделать это можно командой usestager
.
Нагрузки есть для разных платформ: multi (кросс-платформенные), macOS и Windows. А еще существует несколько типов нагрузки:
bash
— обычный Bash-скрипт;launcher
— так называемый one-liner-код на определенном скриптовом языке;macro
— макрос для офисных приложений;pyinstaller
— ELF-файл, собранный с помощью PyInstaller;war
— просто набор байтов для модернизации нагрузки;applescript
— файл AppleScript;application
— файл Application;ducky
— так называемый скрипт Rubber Ducky;dylib
— динамическая библиотека macOS;jar
— нагрузка в JAR-формате;machomacOS
— офисный макрос для macOS;pkg
— установщик PKG (должен быть скопирован в директорию/Applications
);safari_launcher
— HTML-нагрузка;shellcode
— обычный Windows-шелл;teensy
— Teensy-скрипт;backdoorLnkMacro
— файл.lnk
для загрузки и запуска приложения;bunny
— скрипт Bash bunny;csharp_exe
— приложение PowerShell/C#;dll
— нагрузка в виде DLL;hta
— HTA-нагрузка для IE;macroless_msword
— документ macroless;wmic
— XSL-нагрузка для wmic.exe (отсутствует в оригинальном Empire).
Давай выберем тип нагрузки. Возьмем, к примеру, bat-файл для Windows.
Как и в случае с листенером, посмотрим параметры командой info
.
Что нам предлагает Empire? Снова традиционная возможность настроить прокси, но вот встроенная функция обфускации (к сожалению, только для PowerShell-скриптов) — это вещь приятная. Мы можем указать, где сохранить итоговый файл, а также настроить удаление файла после запуска. Давай укажем листенер и путь к итоговому файлу, после чего создадим stager.
Файл с нагрузкой создан по указанному пути.
Agent
Нам нужно выполнить bat-файл на целевом хосте. Ты увидишь сообщение о подключении.
Перейдем в главное меню и выполним команду agents
, чтобы увидеть все агенты.
Для удобства можно переименовать агент командой rename
и перейти в интерфейс управления агентом (команда interact
).
Мы в системе, теперь пройдемся по самым интересным модулям, которые реально находят применение и используются нашей командой на практике.
Last updated