Вредоносная программа Aeternum, обнаруженная в ходе последних исследований, использует публичный блокчейн Polygon для управления сетью заражённых устройств. Вместо традиционных серверов и доменов злоумышленники записывают команды прямо в смарт-контракты - самоисполняющиеся программы, которые хранятся в блокчейне и автоматически срабатывают при определённых условиях. Такой подход делает инфраструктуру ботнета крайне устойчивой к блокировкам, поскольку данные невозможно удалить или отключить стандартными методами.
Описание
Механика работы построена на том, что инфицированные устройства непрерывно опрашивают публичные узлы блокчейна, получая оттуда зашифрованные или открытые инструкции. После этого компьютер выполняет полученные команды: скачивает дополнительные файлы, запускает полезную нагрузку или собирает данные о системе. Для маскировки Aeternum применяет проверку виртуальных машин и антивирусных средств, что позволяет ему дольше оставаться незамеченным в корпоративных сетях.
Аналитики Palo Alto Networks Unit 42 изучили три разных образца вредоносного ПО, связанных с Aeternum. Первый представляет собой классический загрузчик, написанный на C++. Второй объединяет программу удалённого доступа XWorm, криптомайнер XMRig и модуль кражи данных. Третий образец - это исходный код на Python, который маскируется под установщик популярного инструмента для работы с базами данных DBeaver и нацелен на кражу криптовалютных кошельков. Все три варианта используют один и тот же метод обращения к смарт-контрактам Polygon, что подтверждает их принадлежность к единой кампании.
Загрузчик Aeternum, получивший имя Build.exe, при запуске распаковывается и копирует себя в папку пользователя. Затем он создаёт ярлык в автозагрузке Windows, чтобы закрепиться в системе и запускаться при каждом включении компьютера. После этого вредоносная программа обращается к блокчейну Polygon, отправляя запросы к нескольким адресам смарт-контрактов. Ответы содержат зашифрованные команды, которые загрузчик расшифровывает с помощью встроенного ключа. Примечательно, что шифрование реализовано с нарушением стандартов Национального института стандартов и технологий США: в качестве соли для пароля используется сам пароль, что делает защиту тривиально взламываемой.
Получив команду, загрузчик скачивает файлы с GitHub. В проанализированном случае это были легитимный установщик PuTTY и вредоносная библиотека DotNetZip. Вероятно, использование настоящего PuTTY нужно было для проверки работоспособности, однако злоумышленники могут в любой момент заменить файлы в репозиториях на вредоносные, сохранив те же имена. После запуска библиотеки она начинает собирать информацию о системе: модель процессора, объём оперативной памяти, сведения о диске и видеокарте. Собранные данные упаковываются в файл и отправляются через Telegram-бота, причём идентификатор чата и токен бота жёстко прописаны в коде. Никакого шифрования или обфускации на этом этапе не используется.
Второй образец, XBinderOutput_protected.exe, написан на Python и упакован с помощью PyInstaller. После запуска он проверяет, не выполняется ли код в виртуальной машине или под отладчиком, и только потом извлекает из себя вредоносную нагрузку. Эта нагрузка включает в себя клиент XWorm, позволяющий злоумышленникам удалённо управлять заражённым компьютером, и майнер XMRig, который добывает криптовалюту за счёт ресурсов жертвы. Конфигурация майнера загружается с сервиса Pastebin, где злоумышленники размещают настройки пула, кошелька и алгоритма. В конфигурации предусмотрены две особые опции: скрытный режим, который приостанавливает майнинг при запуске диагностических утилит, и режим завершения процессов, который убивает антивирусы и конкурирующие вычислительные программы. Таким образом майнер максимально использует ресурсы системы и избегает обнаружения.
Кроме того, XWorm отправляет на командно-контрольный сервер подробный отчёт о системе, включая имя компьютера, имя пользователя, характеристики процессора и скорость хеширования майнера. Данные шифруются простым блочным алгоритмом без вектора инициализации, что позволяет аналитикам восстановить всю украденную информацию. Наблюдаемые методы частично совпадают с поведением известного стилера ZingoStealer, однако точная атрибуция остаётся под вопросом.
Третий образец демонстрирует ещё более сложную схему. Вредоносный Python-скрипт, замаскированный под установщик DBeaver, содержит проверки, которые отсеивают аналитические песочницы: он сверяет список заблокированных имён пользователей и компьютеров, а также проверяет объём оперативной памяти, требуя не менее 8 ГБ. Дополнительно скрипт проверяет наличие так называемых потоков данных Zone.Identifier в папке "Загрузки", что позволяет убедиться, что файлы действительно загружены из интернета, а не созданы в чистой виртуальной среде. После успешной проверки вредонос создаёт ярлык в автозагрузке и внедряет свой код в легитимный системный процесс, обходя защитные механизмы Windows.
Ключевая особенность этого варианта - агрессивная кража криптовалютных данных. Скрипт содержит готовые процедуры для извлечения учётных данных из более чем 55 браузерных расширений для криптовалют и 10 популярных десктопных кошельков. Собранная информация отправляется через Telegram, а основной канал управления использует обфусцированные JSON-запросы с мусорными данными, чтобы затруднить выявление трафика. Для дополнительной устойчивости код включает запасной механизм: если основной домен управления заблокирован, вредоносная программа обращается к смарт-контракту на Polygon и получает оттуда новый адрес. Такой децентрализованный мёртвый ящик позволяет операторам оперативно менять инфраструктуру без потери контроля.
Анализ смарт-контрактов, использованных во всех трёх образцах, показывает, что за кампанией стоит один разработчик. Несмотря на разные адреса развёртывания и обновления компилятора, структура контрактов идентична и содержит одинаковые функции для чтения и обновления домена. Оператор, связанный с псевдонимом LenAI, регулярно обновляет записи в блокчейне, добавляя новые адреса командных серверов. Это говорит о том, что инфраструктура Aeternum активно развивается, а сами злоумышленники совершенствуют код с каждой новой версией.
Использование блокчейна в качестве канала управления становится заметным трендом в киберпреступности. Такие ботнеты, как Aeternum, практически невозможно отключить традиционными методами, ведь данные о командах хранятся в распределённом реестре. Для защиты от подобных угроз организациям следует регулярно обновлять программное обеспечение, использовать многофакторную аутентификацию и применять современные средства обнаружения вторжений, способные выявлять аномальные обращения к блокчейн-сервисам.
Индикаторы компрометации
IPv4
- 193.221.200.219
Domain
- download.sftp-api-group-wechat.com
- gulf.moneroocean.stream
- test-steve.cyou
- update.constant-path.xyz
- update-launcher.xyz
Domain
- http://sekirolegion.duckdns.org/api/endpoint.php
- https://api.noderpc.xyz/rpc-polygon-pos/public
- https://api.zan.top/polygon-amoy
- https://cdnjsdelivr.beer/
- https://endpoints.omniatech.io/v1/polygon-zkevm/testnet/public
- https://gateway.tenderly.co/public/polygon
- https://gateway.tenderly.co/public/polygon-mumbai
- https://github.com/lencod/
- https://github.com/Mash3Do/
- https://polygon.rpc.hypersync.xyz/
- https://polygon-amoy.gateway.tenderly.co
- https://polygon-amoy.therpc.io
- https://polygon-mainnet.g.alchemy.com/v2/demo
- https://polygon-mumbai.g.alchemy.com/v2/demo
- https://polygon-mumbai.gateway.tenderly.co
- https://polygon-mumbai-bor-rpc.publicnode.com
- https://polygon-pokt.nodies.app/
- https://polygontestapi.terminet.io/rpc
- https://polygon-zkevm.drpc.org
- https://polygon-zkevm-mainnet.public.blastapi.io
- https://public.stackup.sh/api/v1/node/polygon-mainnet
- https://public.stackup.sh/api/v1/node/polygon-mumbai
- https://rpc.polygonsupernet.public.arianee.net
- https://rpc.polygon-zkevm.gateway.fm
- https://rpc.poolz.finance/polygon
Contract Address
- 0x04E25a563f159308FC3E15fE9Ccc9D2CF623D0cc
- 0x16dA95799CB8aB203f83e01AFC030B1217198Da4
- 0x1D50703722729dD68e89D819F69eFc5Fb206bBe7
- 0x27c7c36981c1ed5cFA2DCDb4B43C27A6BaF6bEa8
- 0x4dcE7d4b1229F3705BDB70341484cF2EEE36432e
- 0x55b4F951d5Ac035C21B170C73C0A930a641b718C
- 0x6da31EB2A016074ffd5519326573E78E2677E4C8
- 0x737791081A398151195a753Fb49f9c1b8bc1fCDB
- 0x75cD25791A60ab3451E2d2feB5ec46c6f541C2B8
- 0x7D2D8A4A6E8D89cf5C151C4f68A521490D9779B0
- 0x8d2BaEc2687F59eE1EE7BFd322D33325f5E004ee
- 0xb0874252a7359AA701F3F144A1f03A6e0DA8aE6D
- 0xb3EF2D08Bf25a7daB9d8b98d64E564eA1f6Db924
- 0xb8fB2bfb182A172b29C365AD6CF743449975C418
- 0xbD6e817Cc510EC3DA5651B5a3AC595d34C0CF1af
- 0xC37fB924cF5996C9e676BBA399bDfc5F936B3572
- 0xC41342908f98E813862EDFe47Ac3af676F8098C9
- 0xc7199C1dbCd82c4E002327Aa3EC9158F434a6aCE
- 0xcaf2c54e400437da717cf215181b170f65187abf
- 0xCE476E6f4d83a7a086Cbcdf0FE2E8f221e47e81C
- 0xD69A36439FffD145ADAcacB94fDe6f8b3546a361
- 0xf9438b4E3200AE1611eD3d03310c803FDdf67672
- 0xfbC267200f9e5749045f32dbB55BB16615f1CE5F
- 0xFDB8b139EeacD17ea7c10c256eA77Ba6Dff18D7d
- 0xFdfB8c4e827c2d053749C8F2f2058548dde0d073
SHA256
- 1505eda3da68e2ff9919b55a31018bd30a991236f041aee835f3bc4e430ce505
- 4e24bbd0fabac6c3efcec943046afbfd332b2c0108a13becfda23a0e26f9ff5f
- 5bfb25b8255b61e5ffdf6804451534bcfa9f1dfd225e6c8cdcefb5f50d846898
- 81bb80d9c5a97dc41b65f6248c131963c91346eb4fb672836b3d53ae67564d9f
- ea1b6ff3a0c1a749b9f09d66789973321d63d8896b48f7345193bdad512950a2
- f2a326cff405299e4ebdfaac955c52fc7e496544eaa0921ecad4816cb3ae3a27