Что такое фреймворк 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 — он поищет пути повышения привилегий (к примеру, подменить файл службы).


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

Очень часто приходится сканировать 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 файлы и можем их анализировать на своей локальной машине.
Раздел 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.

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/prompt.

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


Несмотря на то что я уже настраивал кейлоггер, как только был введен пароль, он отобразился в окне Empire. Как правило, схема эксплуатации Empire на Mac очень проста и успешно выполнима в 80% случаев:
- Фишинговое письмо с нагрузкой -> получение Empire-агента.
- Использование модуля
collection/osx/prompt-> получение пароля (как правило, sudo). - Использование модуля
privesc/multi/sudo_spawnдля получения агента в контексте sudo. - Закрепление в системе с использованием модуля
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

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

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

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