PDA

Просмотр полной версии : C2 Havoc


danbus
27.12.2024, 13:45
Командно-контрольный сервер или как его сокращенно называют С2, C&C часто используется злоумышленниками в атаках для обмена данными со скомпрометированными устройствами. Предоставляет возможность управлять заражёнными устройствами, проводя многоэтапные атаки, перемещаться по сети, проводить эксфильтрацию данных. Распространенными протоколами для С2 сервера являются HTTP/HTTPS, SMB, DNS, так как они мимикрируют под легитимный трафик.

Существует довольно большое количество С2 серверов, перечислим лишь некоторые из них:

Cobalt Strike – С2 с закрытым исходным кодом и один из самых популярных серверов, так как является очень удобным и модернизируемым

Mythic — C2 с открытым исходным кодом, позволяющий создавать свои собственные импланты на любом языке

Brute Ratel C4 – фреймворк с закрытым исходным кодом, который обладает хорошими функциями анти-обнаружения

Havoc - кроссплатформенный С2 с открытым исходным кодом.
В данной статье речь пойдет о Havoc. Схематично он состоит из двух частей:

Клиент. Представляет из себя пользовательский интерфейс для сервера, с которым взаимодействует оператор.

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


https://forum.antichat.xyz/attachments/29116126/1735291318499.png

Чтобы принимать соединение от агента, командный сервер открывает порт для входящего трафика и активирует обработчик – Listener. В Havoc поддерживается только HTTP Listener.

Установка
Исходный код Havoc доступен на github и может быть клонирован:




Код:



git clone https://github.com/HavocFramework/Havoc.git


Далее перемещаемся в скачанную директорию

cd Havoc

и выполняем команду

make

. После сборки в текущем каталоге появится файлhavoc.

Для запуска сервера требуется передать файл конфигурации data/havoc.yaotl в качестве аргумента. Файл конфигурации содержит следующие параметры: Teamserver- указывает прослушиваемый сервером адрес и порт, Operators- перечисление зарегистрированных пользователей, Demon– показывает настройки требующиеся для генерируемого агента.

https://forum.antichat.xyz/attachments/29116126/1735291333126.png

Далее запускаем серверную и клиентскую часть:


./havoc server --profile data/havoc.yaotl



./havoc client


https://forum.antichat.xyz/attachments/29116126/1735291345517.png

Вводим учетные данные из файла data/havoc.yaotl и нажимаем Connect.

https://forum.antichat.xyz/attachments/29116126/1735291352932.png

Нас встречает следующий интерфейс, познакомимся с некоторыми возможностями данного фреймворка.

https://forum.antichat.xyz/attachments/29116126/1735291365700.png

Возможности
Teamserver Chat – если еще раз запустить клиента под другой уз, то представляется возможность общения через чат.
В Event Viewer показываются все логи, такие как подключение пользователей, создание новых листенеров, сессий от агентов.

https://forum.antichat.xyz/attachments/29116126/1735291387236.png

Приступим к созданию агента: сперва необходимо сгенерировать листенер, который будет привязываться к нашему IP адресу. Переходим в меню View→ Listenersи на открывшейся вкладке Listeners выбираем Add. Здесь нам необходимо заполнить поля Nameлюбым именем, Hosts– адрес, на который будет обращаться агент, Host (Bind) – адрес, к которому привязывается листенер.
Из необязательных параметров можно отдельно добавлять различные Headersи User-Agent, так же можно создавать настройки для проксирования.

https://forum.antichat.xyz/attachments/29116126/1735291396191.png

После успешного создания листенера, переходим к генерации агента. Для этого открываем меню Attack -> Payload. Возникает модальное окно, в котором выбираются листенер, архитектура и формат файла. Агент может быть сгенерирован в виде исполняемого файла exe, файла службы DLL или шеллкода. Для наших целей подойдет формат exe, выполняем генерацию и сохраняем на наш компьютер с любым названием. Я выбрал название agent.exe.

https://forum.antichat.xyz/attachments/29116126/1735291411226.png

Для доставки агента на удаленную машину можно воспользоваться простым способом, а именно поднять питоновский сервер на своем хосте.
Затем заходим на удаленную машину и с помощью команды curl скачиваем и запускаем файл.

https://forum.antichat.xyz/attachments/29116126/1735291421622.png


https://forum.antichat.xyz/attachments/29116126/1735291431956.png

Как только запускается агент на удаленной машине, к нам сразу прилетает сессия. Для взаимодействия с ней необходимо кликнуть правой кнопкой мыши и нажать Interact, тем самым перейдем к командному интерпретатору.

https://forum.antichat.xyz/attachments/29116126/1735291444863.png

Командой

shell whoami

убеждаемся, что это действительно наша целевая сессия и мы можем выполнять удаленные команды.

https://forum.antichat.xyz/attachments/29116126/1735291457355.png

С помощью

help

можно ознакомиться с возможными командами. Самые базовые – shellи powershell. Они необходимо для выполнения различных команд в Havoc.

https://forum.antichat.xyz/attachments/29116126/1735291468935.png

Удобным так же является графический просмотр процессов, в который можно перейти, кликнув правой кнопкой мыши по сессии и выбрав Explorer→ Process Explorer. Такая же возможность есть с графическим представлением отображения содержимого каталогов (Explorer→ File Explorer)

https://forum.antichat.xyz/attachments/29116126/1735291645219.png


https://forum.antichat.xyz/attachments/29116126/1735291493512.png

В статье мы рассмотрели лишь базовые возможности и функции Havoc. Для более подробного изучения с Havoc предлагаю ознакомиться с документацией.