Что такое фреймворк 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.