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