Hack the web. Часть 2
Life-Hack [Жизнь-Взлом]/ХакингKoadic
https://github.com/zerosum0x0/koadic
Фреймворк с открытыми исходниками, предназначенный для постэксплуатации в среде Windows. Koadic легок в развертывании и обращении и использует для эксплуатации VBScript/JScript. Koadic реально очень «тихий» и не оставляет столько следов в системе, как, например, фреймворки на PowerShell. Есть возможность запускать полезную нагрузку как на диске, так и в памяти, также Koadic поддерживает шифрование SSL и TLS.
В состав фреймворка входят стейджеры и импланты. Стейджеры определяют варианты запуска полезной нагрузки на атакуемой системе, а импланты — это готовые скриптовые пакеты.
К слову, активные сессии тут называются zombie!
Из коробки доступны самые нужные импланты, но, если что, ты всегда можешь дополнить этот набор своими.
В консоли Koadic отображаются выполненные и активные задачи (jobs) имплантов. Вообще, интерфейс напоминает всеми любимый Metasploit.
Фреймворк действительно можно назвать гибким и эффективным, и кросс-платформенность только добавляет к этому имиджу.
Merlin
https://github.com/Ne0nd0g/merlin
Еще один кросс-платформенный фреймворк для постэксплуатации, написан на Go. Одна из особенностей Merlin — это возможность обхода средств защиты с помощью протокола HTTP/2. В директории фреймворка /data/bin
есть уже заранее скомпилированные агенты для Windows, Linux, macOS и PowerShell, а также библиотеки DLL. По дефолту в них зашит адрес https://127.0.0.1:443
, который ты всегда можешь изменить на свой с помощью флага -url
, а в случае с DLL посредством декомпиляции.
Консоль дружелюбная и интерактивная. Взаимодействие с агентами происходит через создание задач, что, конечно, не совсем «онлайн», но зато без лишнего шума.
У Merlin большой набор модулей для каждой из платформ, и в нем хорошо сочетаются легкость, скрытность и эффективность.
EmpireProject/Empire
https://github.com/EmpireProject/Empire
Кросс-платформенный фреймворк для постэксплуатации, серверная часть которого написана на Python. К сожалению, развитие проекта остановлено, но возможности фреймворка широки и по сей день. Empire включает в себя агент на PowerShell 2.0 для Windows и агент на Python 2.6/2.7 для Linux и macOS.
Этот фреймворк появился в результате объединения двух проектов: PowerShell Empire и Python EmPyre. Empire отвечает за возможность запуска агентов PowerShell без использования самого powershell.exe. Это позволяет быстро развернуть любой модуль постэксплуатации — от кейлоггеров до Mimikatz, а также адаптируемые средства связи для предотвращения обнаружения.
Проект имеет большую и доступную документацию, в которой ты найдешь все необходимое для применения Empire.
C3 (Custom Command and Control) framework (MWR Labs)
Наконец, последний фреймворк для постэксплуатации, который мы рассмотрим. Он представляет собой своего рода обертку над C2. Суть фреймворков C3 — в гибкой коммуникации внешнего C2 через легитимные процессы. Например, можно в этих целях приспособить Office 365, Slack, Google Drive, Dropbox и другие сервисы, которые повседневно используются в офисах.
Впервые концепция С3 была представлена на конференции BlueHat v18 Уильямом Ноулзом и Дэйвом Хартли. Фреймворк MWR Labs имеет открытый исходный код и состоит из следующих узлов.
- Релей — исполняемый файл, запущенный на скомпрометированной системе. Релеи взаимодействуют между собой через интерфейсы либо напрямую со шлюзом.
- Шлюз — специальный релей для управления одной сетью C3, отвечает за обратную связь с C2.
- Канал — схема взаимодействия релея внутри легитимных процессов, типичных для атакуемой системы, например через API Slack.
- Обратный шлюзовой канал (Gateway Return Channel) — сконфигурированный канал, который используется релеем для отправки данных обратно на шлюз. Также может быть маршрутом через другой релей.
- Интерфейс — высокоуровневое имя, присваиваемое любому устройству, облегчающему отправку и получение данных в сети C3.
- Маршрут — предполагаемый путь коммуникаций через релей обратно к шлюзу. В качестве периферийного устройства выступает сторонний имплант C2 (например, Cobalt Strike SMB beacon).
- Коннектор — интеграция со сторонними системами C2. Кстати, C3 в исполнении MWR Labs поддерживает тесную интеграцию с TeamServer Cobalt Strike. В качестве коннектора хорошо работает инстанс Cobalt Strike под названием External C2 (команда
externalc2_start
через менеджер скриптов).
На первый взгляд кажется, что C3 слишком сложный, — нужно время, чтобы во всем этом разобраться. Но на деле помогают удобный интерфейс, скоростной деплой и возможность самостоятельно определять архитектуру с учетом специфики атакуемой системы и прочих вещей.
Первым делом запусти WebController и задай URL. Либо можешь выполнить скрипт StartWebController.cmd.
Дальше в веб-приложении необходимо сконфигурировать первый шлюз. Как ты уже знаешь, без него работать ничего не будет.
После того как шлюз выйдет на связь, ты автоматически попадешь в консоль управления фреймворком, где уже будешь строить свою архитектуру.
Многие действия выполняются всего в пару кликов. Ты с легкостью можешь сгенерировать новый канал, кликнув на шлюз, аналогично на созданный канал — для генерации нового релея. Вся необходимая информация здесь будет автоматически заполнена. На данном этапе можно указать архитектуру, тип файла (.exe, .dll) и прочее.
По каждому релею доступна подробная информация: версия ОС, под каким пользователем запущен и когда последний раз был онлайн.
Еще важно знать, что тут существует два типа каналов. Согласованный канал позволяет иметь несколько связей между шлюзом и релеями (по одному каналу), несогласованный обеспечивает возможность связи только одного релея со шлюзом. На скрине представлен пример организации согласованного канала через API Slack.
Фреймворк можно тонко настраивать и делать любые схемы коммуникации. Ты можешь реализовать любые творческие сценарии, что ценно само по себе.
Итоги
А теперь поговорим о выборе.
Это очень важный момент, и здесь нужно учитывать все особенности векторов атак на целевые системы. Фреймворк должен обеспечивать анонимность и по максимуму удовлетворять потребности в реализуемых техниках. Из девяти описанных фреймворков наиболее удобным инструментарием из коробки обладают Cobalt Strike и Metasploit.
«Кобальт», особенно в сочетании с MWR Labs C3, обеспечивает достойный уровень скрытности и неплохо способствует совместной работе. Metasploit в бесплатной версии community edition содержит актуальный набор эксплоитов и средств постэксплуатации, предоставляет гибкие инструменты генерации полезной нагрузки и обхода средств антивирусной защиты (модуль evasion), к сожалению по дефолту малоэффективные, так что нужно импровизировать. В «Кобальте» же с обходом АВПО все проще, но цена вопроса и сложности с его покупкой могут стать большим препятствием.
Merlin и Koadic прекрасно подойдут для проведения краткосрочных атак из-за особенностей взаимодействия с С2. В частности, Merlin позволяет эффективно использовать сетевые ресурсы с помощью протокола HTTP/2, что сводит влияние задержек к минимуму (благодаря сжатию полей заголовков). Одновременно это дает возможность обмениваться данными в рамках одного соединения, что полезно при обходе IPS и IDS. Достоинством Koadic может быть применение Windows Scripting Host (компонент Windows, предназначенный для запуска приложений на скриптовых JScript и VBScript). Это позволяет использовать сценарии, аналогичные пакетным файлам, но с дополнительными возможностями. Благодаря этой функции его можно использовать во многих версиях Windows, включая Windows 10.
Apfell, Faction и Covenant — молодые и развивающиеся фреймворки, в которых все еще встречаются небольшие баги. Это пока что ставит под сомнение их использование в случаях, когда ошибаться нельзя. Аналогичная ситуация с Empire: из-за того что проект больше не развивается, стабильность фреймворка изрядно пошатнулась, и в серьезных операциях использовать его я бы не стал.
И конечно же, в этой статье затронуты далеко не все существующие инструменты. Экспериментируй, и ты найдешь, что тебе по душе!