Инфостилер Remus использует смарт-контракты Ethereum для смены командных центров: новый метод обхода блокировок

Stealer

Вредоносные программы, нацеленные на кражу данных, продолжают эволюционировать, находя всё более изощрённые способы скрыть свои командные серверы. Очередной виток этой гонки продемонстрировала новая модификация известного инфостилера Lumma, получившая название Remus. Её ключевое отличие - использование технологии EtherHiding, которая позволяет получать адреса командных центров (C2) напрямую из блокчейна Ethereum. Это делает традиционные методы блокировки по IP-адресам малоэффективными: как только один сервер попадает в реестры, оператор просто обновляет данные в смарт-контракте, и вредонос автоматически перенаправляется на новый.

Описание

Специалисты по информационной безопасности уже отмечали, что Lumma долгое время оставался одним из самых популярных инфостилеров в теневой экономике. Однако исследователи из GenDigital недавно опубликовали отчёт, в котором подробно разобрали его более продвинутую версию - Remus. Аналитик, работавший с заражением, заметил, что структура логов нового образца очень напоминает Lumma. Дальнейшее изучение подтвердило: Remus действительно является форком Lumma, но с принципиально новым механизмом получения команд. Вместо жёстко зашитого адреса C2 или использования таких платформ, как Telegram и Steam, вредонос в некоторых случаях обращается к смарт-контракту на блокчейне Ethereum, считывает оттуда актуальный адрес и уже через него связывается с оператором.

Техника, которую исследователи назвали "EtherHiding", основывается на принципе dead drop resolver - резолвера через "мёртвые ящики". Вместо прямого соединения с вредоносным сервером программа сначала обращается к легальному публичному ресурсу: общедоступному репозиторию на GitHub, содержимому Google Docs, профилю в Steam или, в данном случае, к блокчейн-контракту. Этот ресурс содержит закодированный IP-адрес или домен, указывающий на реальный C2. Вредонос парсит полученные данные, расшифровывает их и затем подключается к командному центру. Преимущество для злоумышленников очевидно: даже если один C2 блокируют, достаточно просто обновить информацию в смарт-контракте, и все заражённые устройства автоматически переключатся на новый сервер.

В ходе исследования аналитик смог идентифицировать ключевые элементы инфраструктуры Remus. Используя данные из отчёта GenDigital, он нашёл конкретный смарт-контракт с адресом 0x999941b74F6bbc921D5174A5b29911562cd2D7CF. Через публичную RPC-точку (сервер для удалённого вызова процедур блокчейна) и функцию с идентификатором 0xc2fb26a6 удалось напрямую вызвать контракт и получить текущий активный домен командного центра. Им оказался адрес fightwa[.]biz:5902. При этом IP-адрес 185.53.179.128, на который указывал этот домен, уже фигурировал в первоначальном отчёте как хостинг для инфраструктуры Remus. Это подтвердило, что найденный адрес действительно принадлежит злоумышленникам и используется прямо сейчас.

Анализ истории транзакций контракта через сервис Etherscan позволил восстановить полную хронологию смены C2. Первый домен, blablatst12345[.]net, появился ещё 25 февраля 2026 года - вероятно, это был тестовый запуск. Затем, в течение нескольких часов, операторы несколько раз перезаписывали адрес, после чего остановились на chalx[.]live:5902. И только 25 апреля 2026 года контракт был обновлён до текущего fightwa[.]biz:5902. Такая последовательность характерна для отладки вредоносной сети: злоумышленники проверяли стабильность работы механизма, прежде чем запустить его в полноценную эксплуатацию.

Исследователь также попытался проследить цепочку финансирования контракта. Начальный перевод поступил с кошелька, который, в свою очередь, получил средства с криптовалютной биржи - этот след, как и ожидалось, затерялся среди множества легитимных транзакций. Отдельно привлёк внимание ENS-идентификатор (доменное имя в экосистеме Ethereum) designsofdefi.eth, который взаимодействовал с кошельком оператора. Однако дальнейший анализ показал, что это взаимодействие, скорее всего, связано с обычной деятельностью в сфере децентрализованных финансов (DeFi) и не является следствием ошибки в операционной безопасности атакующих.

Более широкий поиск по блокчейну не выявил других контрактов с аналогичной логикой, за исключением ещё одного, развёрнутого с того же финансирующего адреса, но пока не содержащего ни одной транзакции. Вероятно, это резервный контракт для будущих кампаний. Интересно, что часть C2-адресов из отчёта GenDigital вообще не была найдена в событиях блокчейна. Это означает, что Remus, по-видимому, всё ещё использует и другие методы получения команд, например через Telegram или Steam, либо разные группы операторов применяют различные реализации контрактов.

Главный практический вывод из этого исследования заключается в том, что сама структура смарт-контракта создаёт постоянную возможность для обнаружения. Каждый раз, когда оператор меняет адрес командного центра, он инициирует запись события DomainUpdated в блокчейне. Это событие имеет уникальный идентификатор, и его невозможно избежать при обновлении данных. Мониторинг логов Ethereum на предмет этого события позволяет автоматически выявлять любые новые контракты, использующие ту же схему, сразу после первой записи. Для специалистов по информационной безопасности это означает, что можно опережать злоумышленников, отслеживая изменения инфраструктуры в реальном времени, а не реагировать постфактум. Такой подход, основанный на анализе блокчейна, может стать эффективным дополнением к традиционным методам сбора индикаторов компрометации.

Индикаторы компрометации

  • Contract (active) : 0x999941b74F6bbc921D5174A5b29911562cd2D7CF
  • Contract (backup) : 0xf6896c4ddd2b821d5d2b3c18459acd9b5ec1ce21
  • Operator wallet : 0xBeCFC3F9EB36E6Ec0E54f7A6627DA7EF648f8F01
  • Funding wallet : 0xb21532dbd3b7d399719354933e981274f4105e10
  • C2 (active) : fightwa.biz:5902
  • C2 (historical) : chalx.live:5902
  • C2 (test) : blablatst12345.net
  • Function selector : 0xc2fb26a6
  • RPC endpoint : eth.llamarpc.com
  • DomainUpdated event : 0xfe4d94448068b38fa4f90d468459f31695b3816d3b780071c1ae1c8a969ef543

Комментарии: 0