Soft C2 Havoc

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

Существует довольно большое количество С2 серверов, перечислим лишь некоторые из них:
  • Cobalt Strike – С2 с закрытым исходным кодом и один из самых популярных серверов, так как является очень удобным и модернизируемым
  • Mythic — C2 с открытым исходным кодом, позволяющий создавать свои собственные импланты на любом языке
  • Brute Ratel C4 – фреймворк с закрытым исходным кодом, который обладает хорошими функциями анти-обнаружения
  • Havoc - кроссплатформенный С2 с открытым исходным кодом.
В данной статье речь пойдет о Havoc. Схематично он состоит из двух частей:
  1. Клиент. Представляет из себя пользовательский интерфейс для сервера, с которым взаимодействует оператор.
  2. Сервер, к которому подключаются агенты – основная нагрузка, на скомпрометированных машинах и клиенты.

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 – показывает настройки требующиеся для генерируемого агента.

1735291333126.png


Далее запускаем серверную и клиентскую часть:
./havoc server --profile data/havoc.yaotl
./havoc client

1735291345517.png


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

1735291352932.png


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

1735291365700.png


Возможности

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

1735291387236.png


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

1735291396191.png


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

1735291411226.png


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

1735291421622.png
1735291431956.png


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

1735291444863.png


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


1735291457355.png


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

1735291468935.png


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

1735291645219.png
1735291493512.png


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

Вложения

  • 1735291477453.png
    1735291477453.png
    38,4 КБ · Просмотры: 11
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!