Исследователи информационной безопасности обнаружили критическую уязвимость в механизме шифрования команд для ботнета Aeternum Loader, который использует блокчейн Polygon в качестве инфраструктуры командования и управления (C2). Ошибка в реализации криптографии позволила расшифровать историю всех команд, отправленных операторами вредоносного ПО, и выявить десятки активных каналов управления. Этот инцидент наглядно демонстрирует как инновационные, но плохо реализованные методы повышения устойчивости киберпреступных инфраструктур могут оборачиваться против их создателей.
Описание
В ходе анализа платформы управления Aeternum, которая была небрежно выставлена в открытый доступ, специалисты из CtrlAltIntel изучили её исходный код. Платформа, написанная на Next.js, позволяла операторам развертывать смарт-контракты в сети Polygon. Эти контракты, представляющие собой программы, работающие в распределённом реестре, использовались для хранения и передачи зашифрованных команд заражённым компьютерам (ботам). Такой подход теоретически устраняет необходимость в традиционных, уязвимых для блокировки C2-серверах, поскольку контракт существует в децентрализованной сети и не может быть удалён.
Однако ключевая уязвимость была обнаружена в алгоритме шифрования команд. Команды шифровались с использованием алгоритма AES-256-GCM, но ключ для шифрования и дешифрования формировался с помощью функции PBKDF2, где в качестве и соли, и пароля использовался адрес самого смарт-контракта в нижнем регистре. Это фундаментальная ошибка проектирования криптосистемы. Поскольку адрес контракта является публичной и неизменяемой информацией в блокчейне, любой наблюдатель, зная этот адрес, может самостоятельно вычислить ключ и расшифровать все команды, когда-либо записанные в этот контракт.
Воспользовавшись этой слабостью, исследователи начали с одного известного контракта, адрес которого был извлечён из образца вредоносного ПО. Анализ публичного реестра Polygon показал, что идентичный байт-код смарт-контракта был использован для развёртывания ещё сотен аналогичных контрактов. Автоматизированный скрипт, взаимодействующий с API обозревателя блоков Etherscan, позволил проанализировать 394 адреса. Из них 81 контракт содержал журналы событий, а 37 использовали ту же ошибочную схему шифрования, что и первоначальный образец.
В результате было успешно расшифровано 209 открытых команд C2, отправленных в период с октября 2025 по февраль 2026 года. Команды следовали строгому формату и содержали флаги "all" (для выполнения на всех заражённых системах) или "hwid" (для целевой системы с определённым идентификатором, основанным на хеше MD5 серийного номера диска C:). Расшифрованные инструкции включали в себя:
- Загрузку и выполнение полезной нагрузки с указанных URL, включая файлы с расширениями ".exe" и ".dll".
- Установку механизмов закрепления в системе (persistence) через автозагрузку Windows с заданным именем.
- Выполнение «проверочных» HTTP-запросов (ping) на сервисы вроде Grabify или IPLogger, что, вероятно, использовалось для сбора IP-адресов жертв и проверки работоспособности ботнета.
Анализ активности создателей контрактов выявил наиболее активный адрес ("0xcaf2...7abf"), который, как полагают исследователи, принадлежит разработчику Aeternum Loader, известному под псевдонимом LenAI. Этот адрес был связан с развёртыванием 32 контрактов и отправкой 94 команд. Любопытно, что тот же адрес и идентичный байт-код контракта также использовались в кампаниях другого вредоносного ПО - ErrTraffic/ClickFix, что указывает на общий источник разработки.
Это расследование подчёркивает важный парадокс: использование публичных блокчейнов для C2-инфраструктуры, с одной стороны, повышает её устойчивость к ликвидации, но, с другой стороны, делает всю мета-информацию и, как оказалось, при плохой реализации - сами команды, доступными для глобального наблюдения. Для специалистов по безопасности это открывает новые возможности для проактивного мониторинга угроз. Теперь, зная сигнатуру байт-кода вредоносного смарт-контракта или алгоритм формирования ключа, можно сканировать блокчейн на предмет появления новых инстансов и даже в реальном времени отслеживать команды, отправляемые операторами ботнета.
Для защиты от подобных угроз организациям следует сосредоточиться на классических, но эффективных мерах. Во-первых, строгие политики исходящего веб-трафика и использование прокси-серверов с фильтрацией могут блокировать обращения ботов к публичным RPC-нодам блокчейна, которые необходимы для чтения контрактов. Во-вторых, решения класса EDR должны быть настроены на обнаружение аномальной активности, такой как создание исполняемых файлов в автозагрузке или фоновые HTTP-запросы к подозрительным доменам. Наконец, хэши расшифрованных вредоносных полезных нагрузок и домены, используемые для их размещения, должны быть немедленно внесены в чёрные списки систем защиты. Инцидент с Aeternum Loader служит напоминанием, что даже самые изощрённые техники злоумышленников часто содержат критические ошибки, которые могут быть использованы защитниками для контропераций.
Индикаторы компрометации
Domains
- berlof.shop
- bootstrap-css-framework.cfd
- captcha-cds.cfd
- captcha-cds.click
- cdn-clodflare-fotns.cfd
- cloud-safe.cfd
- ferlik.shop
- fontawesome-cdn.cfd
- fonts-fontawesome.cfd
- nascdn-js.click
- nascdn-js.life
- rpc-framework-check.cfd
- sdn-cloudflare-js.cfd
- sdn-cloudflare-js-botstrup.cfd
- sdn-cloudflare-js-css.cfd
- sdn-cloudflare-js-css.click
- servupdt.com
- winupdate.cfd
- winupdateconf.cfd
URLs
- 155.138.193.225/calc.exe
- cdn-server-styles.cfd/
- clouddefenderai.com/7a9c4f2e8b1d6h3g5k0m9n2p4q7r8s1t
- github.com/caldop/test/raw/refs/heads/main/Logs.exe
- github.com/caldop/test/raw/refs/heads/main/rat1411empty.exe
- github.com/DIGLKAYT/test/raw/refs/heads/main/STEALLER.exe
- github.com/lencod/lencod/raw/refs/heads/main/Dll2.dll
- github.com/lencod/lencod/raw/refs/heads/main/putty.exe
- github.com/ooocyber_bunerkdl/ttt/raw/refs/heads/main/123.exe
- github.com/ooocyber_sabanoms/puttytest/raw/refs/heads/main/putty.exe
- github.com/pafke123/a/releases/download/z/Build.exe
- github.com/pafke123/aa/raw/d3cd0602a7211e54f59e1b674f6d4fc35e097bc4/limero.dll
- l.station307.com/7JjDE5knnozgYoubgCLxsk/rat1411empty.exe
- l.station307.com/J12VDRxm1rpS2SPZwmoSK8/Logs.exe
- mega.nz/file/j8wAiL5C#SaSUZoLwnhFxPNWaeInDx0x5Teh2lpGmSMpcdK-b_yI
- rpc-framework-check.cfd/1.ps1
- rpc-framework-check.cfd/123.exe
- rpc-framework-check.cfd/putty.exe
- wdfiles.ru/2atSW
- zalupan.kozow.com:3000/files/zalupan2.exe
