Last updated
Last updated
Перед тем как мы рассмотрим сам программный комплекс, давай разберемся со следующими понятиями:
Listener — это локальный процесс, ожидающий бэкконнект с удаленного атакуемого хоста;
Stager — загрузчик Agent’a, то есть полезной нагрузки на удаленный атакуемый хост;
Agent — процесс (на удаленном атакуемом хосте), который соединяется с нашим Listener’ом;
Module — код, выполняемый Agent’ом для достижения определенных целей.
Запуск Empire: powershell-empire
Для получения точки опоры используется следующий порядок действий: создание Listener’a -> создание Stager’a для этого Listener’a -> запуск нагрузки на удаленном хосте (создание Agent’a).
Для создания 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);
meterpreter
— HTTP/HTTPS-листенер для сторонней нагрузки Meterpreter;
redirector
— инструмент для перехода от одного агента к другому.
С типами листенеров разобрались, а теперь давай посмотрим, как с ними работать. Для начала выбираем тип (для примера возьмем самый простой — HTTP).
Получить справку по выбранному листенеру можно командой info
.
Использованием прокси уже никого не удивишь, но мы можем назначить дату, когда листенер будет удален, а еще определенные часы работы (это очень удобно!). При использовании HTTPS нужно также указать путь к сертификату. Но теперь к основному: назначим имя листенера, адрес хоста для бэкконнекта и порт.
И запустим листенер командой execute
. back - команда, для возвращения в предыдущее меню.
Переходим ко второй стадии.
Давай по аналогии с листенером выберем тип 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.
Файл с нагрузкой создан по указанному пути.
Нам нужно выполнить bat-файл на целевом хосте. Ты увидишь сообщение о подключении.
Перейдем в главное меню и выполним команду agents
, чтобы увидеть все агенты.
Для удобства можно переименовать агент командой rename
и перейти в интерфейс управления агентом (команда interact
).
Мы в системе, теперь пройдемся по самым интересным модулям, которые реально находят применение и используются нашей командой на практике.
http_mapi
— HTTP/HTTPS-листенер для использования с , что позволит получить управление через Exchange-сервер;
onedrive
— onedrive-листенер (требует регистрацию приложения )