Командно-контрольный сервер или как его сокращенно называют С2, C&C часто используется злоумышленниками в атаках для обмена данными со скомпрометированными устройствами. Предоставляет возможность управлять заражёнными устройствами, проводя многоэтапные атаки, перемещаться по сети, проводить эксфильтрацию данных. Распространенными протоколами для С2 сервера являются HTTP/HTTPS, SMB, DNS, так как они мимикрируют под легитимный трафик.
Существует довольно большое количество С2 серверов, перечислим лишь некоторые из них:
Чтобы принимать соединение от агента, командный сервер открывает порт для входящего трафика и активирует обработчик – Listener. В Havoc поддерживается только HTTP Listener.
Исходный код Havoc доступен на github и может быть клонирован:
Далее перемещаемся в скачанную директорию
Для запуска сервера требуется передать файл конфигурации data/havoc.yaotl в качестве аргумента. Файл конфигурации содержит следующие параметры: Teamserver - указывает прослушиваемый сервером адрес и порт, Operators - перечисление зарегистрированных пользователей, Demon – показывает настройки требующиеся для генерируемого агента.
Далее запускаем серверную и клиентскую часть:
Вводим учетные данные из файла data/havoc.yaotl и нажимаем Connect.
Нас встречает следующий интерфейс, познакомимся с некоторыми возможностями данного фреймворка.
Teamserver Chat – если еще раз запустить клиента под другой уз, то представляется возможность общения через чат.
В Event Viewer показываются все логи, такие как подключение пользователей, создание новых листенеров, сессий от агентов.
Приступим к созданию агента: сперва необходимо сгенерировать листенер, который будет привязываться к нашему IP адресу. Переходим в меню View → Listeners и на открывшейся вкладке Listeners выбираем Add. Здесь нам необходимо заполнить поля Name любым именем, Hosts – адрес, на который будет обращаться агент, Host (Bind) – адрес, к которому привязывается листенер.
Из необязательных параметров можно отдельно добавлять различные Headers и User-Agent, так же можно создавать настройки для проксирования.
После успешного создания листенера, переходим к генерации агента. Для этого открываем меню Attack -> Payload. Возникает модальное окно, в котором выбираются листенер, архитектура и формат файла. Агент может быть сгенерирован в виде исполняемого файла exe, файла службы DLL или шеллкода. Для наших целей подойдет формат exe, выполняем генерацию и сохраняем на наш компьютер с любым названием. Я выбрал название agent.exe.
Для доставки агента на удаленную машину можно воспользоваться простым способом, а именно поднять питоновский сервер на своем хосте.
Затем заходим на удаленную машину и с помощью команды curl скачиваем и запускаем файл.
Как только запускается агент на удаленной машине, к нам сразу прилетает сессия. Для взаимодействия с ней необходимо кликнуть правой кнопкой мыши и нажать Interact, тем самым перейдем к командному интерпретатору.
Командой
С помощью
Удобным так же является графический просмотр процессов, в который можно перейти, кликнув правой кнопкой мыши по сессии и выбрав Explorer → Process Explorer. Такая же возможность есть с графическим представлением отображения содержимого каталогов (Explorer → File Explorer)
В статье мы рассмотрели лишь базовые возможности и функции Havoc. Для более подробного изучения с Havoc предлагаю ознакомиться с
Существует довольно большое количество С2 серверов, перечислим лишь некоторые из них:
- Cobalt Strike – С2 с закрытым исходным кодом и один из самых популярных серверов, так как является очень удобным и модернизируемым
- Mythic — C2 с открытым исходным кодом, позволяющий создавать свои собственные импланты на любом языке
- Brute Ratel C4 – фреймворк с закрытым исходным кодом, который обладает хорошими функциями анти-обнаружения
- Havoc - кроссплатформенный С2 с открытым исходным кодом.
- Клиент. Представляет из себя пользовательский интерфейс для сервера, с которым взаимодействует оператор.
- Сервер, к которому подключаются агенты – основная нагрузка, на скомпрометированных машинах и клиенты.
Чтобы принимать соединение от агента, командный сервер открывает порт для входящего трафика и активирует обработчик – Listener. В Havoc поддерживается только HTTP Listener.
Установка
Исходный код Havoc доступен на github и может быть клонирован:
Код:
git clone https://github.com/HavocFramework/Havoc.git
cd Havoc
и выполняем команду make
. После сборки в текущем каталоге появится файл havoc.Для запуска сервера требуется передать файл конфигурации data/havoc.yaotl в качестве аргумента. Файл конфигурации содержит следующие параметры: Teamserver - указывает прослушиваемый сервером адрес и порт, Operators - перечисление зарегистрированных пользователей, Demon – показывает настройки требующиеся для генерируемого агента.
Далее запускаем серверную и клиентскую часть:
./havoc server --profile data/havoc.yaotl
./havoc client
Вводим учетные данные из файла data/havoc.yaotl и нажимаем Connect.
Нас встречает следующий интерфейс, познакомимся с некоторыми возможностями данного фреймворка.
Возможности
Teamserver Chat – если еще раз запустить клиента под другой уз, то представляется возможность общения через чат.
В Event Viewer показываются все логи, такие как подключение пользователей, создание новых листенеров, сессий от агентов.
Приступим к созданию агента: сперва необходимо сгенерировать листенер, который будет привязываться к нашему IP адресу. Переходим в меню View → Listeners и на открывшейся вкладке Listeners выбираем Add. Здесь нам необходимо заполнить поля Name любым именем, Hosts – адрес, на который будет обращаться агент, Host (Bind) – адрес, к которому привязывается листенер.
Из необязательных параметров можно отдельно добавлять различные Headers и User-Agent, так же можно создавать настройки для проксирования.
После успешного создания листенера, переходим к генерации агента. Для этого открываем меню Attack -> Payload. Возникает модальное окно, в котором выбираются листенер, архитектура и формат файла. Агент может быть сгенерирован в виде исполняемого файла exe, файла службы DLL или шеллкода. Для наших целей подойдет формат exe, выполняем генерацию и сохраняем на наш компьютер с любым названием. Я выбрал название agent.exe.
Для доставки агента на удаленную машину можно воспользоваться простым способом, а именно поднять питоновский сервер на своем хосте.
Затем заходим на удаленную машину и с помощью команды curl скачиваем и запускаем файл.
Как только запускается агент на удаленной машине, к нам сразу прилетает сессия. Для взаимодействия с ней необходимо кликнуть правой кнопкой мыши и нажать Interact, тем самым перейдем к командному интерпретатору.
Командой
shell whoami
убеждаемся, что это действительно наша целевая сессия и мы можем выполнять удаленные команды.С помощью
help
можно ознакомиться с возможными командами. Самые базовые – shell и powershell. Они необходимо для выполнения различных команд в Havoc.Удобным так же является графический просмотр процессов, в который можно перейти, кликнув правой кнопкой мыши по сессии и выбрав Explorer → Process Explorer. Такая же возможность есть с графическим представлением отображения содержимого каталогов (Explorer → File Explorer)
В статье мы рассмотрели лишь базовые возможности и функции Havoc. Для более подробного изучения с Havoc предлагаю ознакомиться с
Ссылка скрыта от гостей
.