
Открытая реализация Malleable C2 от Cobalt Strike
Открытая реализация Malleable C2 от Cobalt Strike
OpenMalleableC2 — это не зависящая от фреймворка библиотека, реализующая формат профилей Malleable C2 от Cobalt Strike для HTTP-трансформаций. Она позволяет исследователям безопасности и командам Red Team легко внедрять изменяемую C2-коммуникацию в собственные инструменты и C2-фреймворки.
Библиотека поддерживает полное использование профилей Malleable C2 для отправки произвольных данных через HTTP прозрачным и (надеюсь) стабильным способом.
Существует множество C2-фреймворков с открытым исходным кодом, которые имеют различные степени настройки HTTP-трафика. Однако даже более развитые фреймворки, такие как Mythic, Havoc, Adaptix и другие, всё ещё уступают в глубине настройки HTTP-трафика, которую позволяет Malleable C2 от Cobalt Strike, особенно в части встраивания данных обратного вызова в внешне безобидные HTTP-запросы. Цель этого проекта — дать инструментам с открытым исходным кодом возможность воспользоваться как глубиной настройки системы Malleable C2, так и существующими ресурсами, зависящими от неё (например, профилями, инструментами для их генерации и т.д.).
В основном всё работает, но я не гарантирую стабильность на данный момент. Сообщайте об ошибках, если найдёте :)
Приведённый пример представляет собой простого агента и сервер «пинг-понг», демонстрирующие типичный обратный вызов Beacon. Агент отправляет GET-запрос для проверки заданий, а затем POST-запрос для отправки результатов обратно на сервер.
В этом примере задания — это просто случайные строки-заполнители, которые агент получает, переворачивает и отправляет обратно в качестве результата. Сервер проверяет, что перевёрнутая строка верна, и отправляет соответствующий ответ.
Запуск примера «пинг-понг»:
# Запуск Python-сервера
python Server\Python\examples\pingpong_server.py profiles\gmail.profile
# Или запуск Go-сервера
cd Server\Go
go run .\cmd\pingpong-server ..\..\profiles\gmail.profile
# Запуск агента (в другом терминале)
.\Client\C\examples\pingpong_agent.exe profiles\gmail.profile
Сборка примера на C:
cd Client\C\examples
build.bat
Структура репозитория:
Client\C\lib Библиотека для клиента на C
Client\C\examples Пример агента «пинг-понг» на C
Server\Python\lib Библиотека для сервера на Python
Server\Python\examples Пример сервера «пинг-понг» на Python
Server\Go\openmalleable Библиотека для сервера на Go
Server\Go\cmd\pingpong-server Пример сервера «пинг-понг» на Go
Пример вывода:
pingpong_server.py:
