Уязвимость в шифровании ботнета Aeternum позволила расшифровать команды управления через блокчейн Polygon

botnet

Исследователи информационной безопасности обнаружили критическую уязвимость в механизме шифрования команд для ботнета Aeternum Loader, который использует блокчейн Polygon в качестве инфраструктуры командования и управления (C2). Ошибка в реализации криптографии позволила расшифровать историю всех команд, отправленных операторами вредоносного ПО, и выявить десятки активных каналов управления. Этот инцидент наглядно демонстрирует как инновационные, но плохо реализованные методы повышения устойчивости киберпреступных инфраструктур могут оборачиваться против их создателей.

Описание

В ходе анализа платформы управления Aeternum, которая была небрежно выставлена в открытый доступ, специалисты из CtrlAltIntel изучили её исходный код. Платформа, написанная на Next.js, позволяла операторам развертывать смарт-контракты в сети Polygon. Эти контракты, представляющие собой программы, работающие в распределённом реестре, использовались для хранения и передачи зашифрованных команд заражённым компьютерам (ботам). Такой подход теоретически устраняет необходимость в традиционных, уязвимых для блокировки C2-серверах, поскольку контракт существует в децентрализованной сети и не может быть удалён.

Однако ключевая уязвимость была обнаружена в алгоритме шифрования команд. Команды шифровались с использованием алгоритма AES-256-GCM, но ключ для шифрования и дешифрования формировался с помощью функции PBKDF2, где в качестве и соли, и пароля использовался адрес самого смарт-контракта в нижнем регистре. Это фундаментальная ошибка проектирования криптосистемы. Поскольку адрес контракта является публичной и неизменяемой информацией в блокчейне, любой наблюдатель, зная этот адрес, может самостоятельно вычислить ключ и расшифровать все команды, когда-либо записанные в этот контракт.

Закодированные RPC-конечные точки Polygon

Воспользовавшись этой слабостью, исследователи начали с одного известного контракта, адрес которого был извлечён из образца вредоносного ПО. Анализ публичного реестра 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
Комментарии: 0