Что такое фреймворк Empire и как им пользоваться для взлома различных систем. Часть 2

Что такое фреймворк Empire и как им пользоваться для взлома различных систем. Часть 2

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Об этом разделе рассказывать особо нечего. Он представляет собой полностью реализованное на PowerShell и вставленное в Empire программное обеспечение mimikatz.

Использовать этот инструмент проще простого, поэтому переходим к следующему разделу.

Раздел management 

В этом разделе есть несколько крутых фишек. Первая из них — это легкое включение и отключение RDP для пользователя. Для этого применяются модули management/enable_rdp и management/disable_rdp. Да, Empire снова предупреждает, что это палевно!

В Empire также встроен инструмент EmailRaider, предназначенный для просмотра и отправки фишинговых писем с помощью собственного клиента Outlook от имени пользователя. На самом деле из большого списка довольно мощных модулей management/mailraider/ мы пользуемся только одним, который отвечает за отправку писем, — management/mailraider/send_mail.

С использованием этого инструмента мы заполняем текст сообщения и делаем рассылку. Как правило, получив письмо от известного отправителя или другого сотрудника компании, жертва охотнее запустит файл (пусть и подозрительный) или перейдет по ссылкам. 

И последний модуль, который используется для наблюдения, — management/vnc. Запустим у себя VNC-прослушиватель (я использую Remmina) и выполним обратное подключение.

Раздел privesc 

Раздел с повышением привилегий полезен только для ограниченного круга быстрых проверок, а также из-за модуля privesc/getsystem, который позволяет перейти в контекст SYSTEM. В Empire встроены два известных скрипта: privesc/sherlock, который проверит наличие в атакуемой системе CVE-уязвимостей, и модуль privesc/powerup/allchecks — он поищет пути повышения привилегий (к примеру, подменить файл службы).

Пример запуска модуля allchecks
Пример запуска модуля sherlock

Раздел situational_awareness 

Это очень полезный раздел, с которого обычно и стоит начинать эксплуатацию. Отметим два важных модуля — situational_awareness/host/antivirusproduct и situational_awareness/host/applockerstatus. Первый предоставляет информацию об используемых на атакуемом хосте антивирусах, второй дает сведения об AppLocker. 

Благодаря модулю situational_awareness/host/computerdetails мы можем посмотреть события 4648 (RDP) и 4624 (входы в систему) из журнала событий, а также журналы AppLocker, запуск PSScripts и сохраненные сеансы RDP.

Пример запуска модуля computerdetails

Очень часто приходится сканировать SPN в сети, и в этом очень помогает модуль situational_awareness/network/get_spn. Похожим образом модули situational_awareness/network/powerview/get_domain_trust и situational_awareness/network/powerview/map_domain_trust облегчают задачу поиска трастов, так как позволяют рекурсивно перечислять все достижимые доверительные отношения домена с текущей позиции в сети. Но круче всего (по моему мнению) в этом разделе модуль situational_awareness/network/bloodhound3.

Запуск BloodHound из Empire
Загрузка результата BloodHound с удаленного хоста

С помощью этого средства мы загружаем полученные от BloodHound файлы и можем их анализировать на своей локальной машине. 

Раздел persistence 

Первым делом упомяну о некоторых методах персистентности, а именно: 

  • SID History — реализован в модуле persistence/misc/add_sid_history;
  • SSP — реализован в модуле persistence/misc/memssp;
  • Skeleton Key — реализован в модуле persistence/misc/skeleton_key

Но перечисленные методы — это пользовательская персистентность. Она нам понадобится, когда пользователь выключит или перезагрузит компьютер, чтобы мы смогли войти и снова запустить сеанс Empire. Но чтобы избежать подобного неудобства, в Empire есть и свои модули персистентности сеанса. Мы используем один из двух модулей: persistence/elevated/registry или persistence/elevated/wmi, разница только в том, что первый основан на закреплении через реестр, а второй через WMI.

Закрепляемся через реестр, используя модуль persistence/elevated/registry

Empire сообщает, что мы успешно закрепились. Для примера посмотрим список агентов и перезагрузим систему. После включения ПК у нас появился новый агент!

После перезагрузки в списке появился новый агент

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

Эксплуатация и постэксплуатация macOS с Empire 

Базовые модули агента macOS схожи с базовыми модулями агента Windows, но есть отличие: вместо PowerShell используется Python. Таким образом, вместо модуля scriptimport присутствует модуль pythonscript. Также имеется модуль loadpymodule для загрузки целых программ. Загружаемый файл должен представлять собой ZIP-архив, содержащий скрипты, написанные на Python, или пакеты. Обязательно должен присутствовать файл __init__.py

Арсенал самих модулей для macOS куда скромнее, если сравнивать с Windows. Так, модуль collection/osx/browser_dump способен извлечь историю запросов браузера, но не покажет куки и пароли. А модули для отслеживания ввода пользователя вовсе работают иначе: кейлоггер collection/osx/keylogger сохраняет историю на удаленной машине в файл, который нам приходится скачивать, а для того, чтобы мониторить буфер обмена с помощью модуля collection/osx/clipboard, нужно указать ему время работы в секундах.

Работа модуля collection/osx/keylogger

Но вот что работает безупречно — так это фишинг, а именно модуль collection/osx/prompt.

Использование модуля collection/osx/prompt

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

Запрос пароля пользователя
Использование модуля keylogger

Несмотря на то что я уже настраивал кейлоггер, как только был введен пароль, он отобразился в окне Empire. Как правило, схема эксплуатации Empire на Mac очень проста и успешно выполнима в 80% случаев: 

  1. Фишинговое письмо с нагрузкой -> получение Empire-агента.
  2. Использование модуля collection/osx/prompt -> получение пароля (как правило, sudo).
  3. Использование модуля privesc/multi/sudo_spawn для получения агента в контексте sudo.
  4. Закрепление в системе с использованием модуля persistence/osx/loginhook

Сложилось мнение, что на маках в основном обрабатывают информацию и готовят отчеты. Поэтому единственное, для чего его стоит захватывать, — это наблюдение за пользователем. Вся описанная выше атака занимает по времени не больше 10–15 минут. Даже если пользователь не хочет вводить пароль, на третий-четвертый раз он смирится и все равно его наберет. 

Имея учетные данные sudo, можно наблюдать за действиями пользователя с помощью модуля management/osx/screen_sharing, который обеспечит тебе VNC. В целом повторюсь, захват макa — это легко и быстро, и, как правило, основным инструментом атакующего служит фишинг.

Эксплуатация и постэксплуатация Linux с Empire 

Работа с базовыми модулями Empire в Linux не отличается от работы на маке. Точно так же, как и с маком, работает кейлоггер collection/linux/keylogger. Но в Linux-версии присутствует хороший модуль privesc/linux/linux_priv_checker, который собирает со всей системы информацию (и помогает искать вектор повышения привилегий). Среди собираемых данных нужно перечислить следующие: 

  • основная информация о системе;
  • работающие процессы;
  • интересные файлы;
  • файлы, доступные для записи;
  • логи, в которых встречается слово password;
  • настройки судоера;
  • версия ПО и информация о нем из баз exploit-db;
  • доступные на хосте средства разработки. 

Для перехода в контекст суперпользователя нам необходимо знать его пароль. Для этого можно задействовать тот же модуль, что и для макa, — privesc/multi/sudo_spawn. В качестве параметра нужно задать листенер и пароль sudo. 

usemodule privesc/multi/sudo_spawn
set Password user
set Listener l1
run
Использование sudo_spawn для создания нового агента в контексте sudo

В результате в списке агентов Empire появляется новый агент, работающий от имени root.

Список агентов

После получения прав суперпользователя мы применяем два модуля Empire. Первый, collection/linux/mimipenguin, позволяет собрать служебные пароли из разных мест. Но он не идеален, поэтому для работы в этой области обычно используются другие средства. Второй модуль — это persistence/multi/crontab, помогающий закрепиться в системе за счет использования crontab.

Параметры модуля crontab

Этому модулю требуется указать имя файла, который будет выполняться в определенные промежутки времени. Самый простой способ — загружать тот же stager Empire.

Заключение 

Напоследок стоит упомянуть, что для Empire существуют и автоматические сценарии, позволяющие собирать информацию в системе или распространяться по сети. Один из них — DeathStar — автоматизирует частые сценарии атак на Windows.

Источник


Report Page