
В ходе одного из расследований мы наткнулись на группу серверов, где злоумышленники закрепились с помощью Go-агентов для C2-фреймворка Mythic. Всё выглядело стандартно: systemd-юниты, периодические колбэки, знакомая многим архитектура. Но когда мы попытались разобрать сами файлы, начались сюрпризы.
Исполнительные файлы были обфусцированы Garble и дополнительно упакованы UPX. Однако упаковщик оказался модифицированным: служебные заголовки оказались частично удалены или повреждены, и upx -d отказывался работать. После ручного восстановления мы всё-таки распаковали образцы, но исходных имён функций, пакетов и типов в коде практически не осталось — Garble сделал своё дело.
Первичные признаки указывали на агента Poseidon, который ранее уже встречался в атаках GOFFEE. Мы сверили находки с публичными версиями Poseidon и его форком Freyja — и поняли, это не они.
Перед нами оказалась самостоятельная ветка разработки. Мы назвали её COW — по внутреннему имени, сохранившемуся в некоторых образцах. В первой части мы расскажем:
- как восстановили происхождение COW и почему его основой стал именно Poseidon, а не Freyja;
- как нашли другие версии агента с новыми возможностями;
- как проследили развитие COW и сравнили его с публичными агентами Mythic.
Но обо всём по порядку...
Читать далее
Комментарии 0
Войдите, чтобы оставить комментарий