Информационная безопасность всё чаще сталкивается с угрозами, где злоумышленники мастерски используют легитимные платформы и передовые технологии для скрытой доставки вредоносного кода. Новая многоэтапная кампания, активная с марта 2025 года, является наглядным примером такой эволюции. Один вьетнамскоязычный оператор создал разветвлённую сеть из более чем 600 вредоносных репозиториев на GitHub, маскируя их под взломанные расширения для популярных SaaS-сервисов, читы для игр и инструменты для разработчиков. Финальной целью атаки является кража учётных данных и данных аутентификации с помощью программы-стилера StealC, причём управление инфраструктурой злоумышленник осуществляет через смарт-контракты в блокчейне Polygon. Эта долгосрочная и технически изощрённая операция демонстрирует, насколько сложными стали методы уклонения и какую угрозу представляют легитимные платформы для распространения вредоносных программ.
Описание
Кампания, которую Bitdefender отслеживает как Gen:Heur.FakeGit.1, а ESET классифицирует семейством Lua/Agent, построена вокруг использования языка Lua и среды выполнения LuaJIT. Жертва, привлечённая обещанием бесплатного взломанного расширения для Jira, Asana, Todoist или другого популярного сервиса, скачивает ZIP-архив. Внутри находится троянизированный исполняемый файл "luajit.exe" (или один из его вариантов с именами вроде "gcc.exe" или "init.exe"), библиотека "lua51.dll" и скрипт полезной нагрузки с безобидным именем, например, "tcp.log". Запуск через прилагаемый "Launcher.cmd" запускает цепочку загрузки. Первым делом загрузчик скрывает консольное окно, а затем, что наиболее интересно, обращается к публичному смарт-контракту в сети Polygon Mainnet, чтобы получить текущий IP-адрес своего центра управления. Этот метод, известный как EtherHiding, позволяет оператору динамически менять инфраструктуру, просто отправляя транзакцию в блокчейн, не трогая уже развёрнутые вредоносные файлы.
После установления связи с C2 загрузчик обращается к специальным репозиториям на GitHub, которые выполняют роль «мёртвых точек» (dead drop) - хранилищ зашифрованных данных. Оттуда он загружает два блока, которые проходят многослойную цепочку дешифрования: преобразование из hex, операция XOR, декодирование base64url и, наконец, расшифровка AES-256-ECB. Малый блок содержит обновлённую Lua-полезную нагрузку для «горячего» патчинга, а большой - PE-криптер (программу для шифрования исполняемых файлов). Криптер, в свою очередь, использует встроенные константы для генерации AES-ключа, дешифрует свой ресурсный раздел и внедряет в память финальную полезную нагрузку - информацию StealC. Этот стилер занимается сбором данных из браузеров (Chrome, Brave, Edge, Firefox), почтовых клиентов (Outlook, FoxMail), менеджеров сессий вроде WinSCP и игровых клиентов, таких как Steam. Собранная информация отправляется на отдельный сервер командования и управления.
Особое внимание оператор уделил маскировке. Репозитории на GitHub создаются как на специально заведённых аккаунтах, так и на взломанных учётных записях реальных разработчиков. В новом отчёте исследователей подробно описано, как в аккаунтах с легитимными проектами появляется единственный вредоносный репозиторий, что повышает доверие к нему. Описание (README) генерируется с помощью ИИ, а все ссылки в нём, включая пункты «Documentation» и «Support», ведут на один и тот же вредоносный ZIP-архив. Для убедительности некоторые репозитории даже содержат ссылку на легитимное видео на YouTube, объясняющее, как установить распакованное расширение в Chrome. Внутренняя структура архива также стандартизирована: извлечённые файлы всегда помещаются в папку с уникальным, редко встречающимся английским словом, таким как «altisonous», «cadetcy» или «rectifiable». Этот список из 47 слов может служить чётким индикатором компрометации для поиска неизвестных репозиториев.
Эволюция полезной нагрузки показывает прогресс оператора. Если в марте 2025 года использовалась чистая, немодифицированная среда выполнения LuaJIT, то к маю она была заменена троянизированной версией. К февралю 2026 года появилась вторая волна с новым смарт-контрактом и обновлёнными бинарными файлами. За год оператор прошёл через 16 различных поколений обфускатора Lua-скриптов, что привело к значительному снижению уровня детектирования: если первые скрипты обнаруживали 27 из 76 антивирусных движков на VirusTotal, то три из шести текущих вариантов не детектируются вообще. Инфраструктура кампании базируется в основном на хостинг-провайдерах с либеральной политикой модерации, причём 37 из 48 IP-адресов C2 принадлежат одному автономному номеру ASN 207957 (Serv.host Group Ltd).
Для специалистов по безопасности эта кампания служит напоминанием о нескольких ключевых рисках. Во-первых, платформы для совместной работы, такие как GitHub, становятся популярным вектором распространения угроз, а доверие к ним ослабляет бдительность пользователей. Во-вторых, использование блокчейна для управления инфраструктурой значительно усложняет её нейтрализацию традиционными методами вроде изъятия доменных имён. В-третьих, многоэтапная цепочка с несколькими слоями шифрования и «мёртвыми точками» затрудняет статический анализ. В качестве мер защиты эксперты рекомендуют предприятиям ужесточить политики загрузки и выполнения непроверенного ПО, особенно исполняемых файлов, связанных со средами выполнения скриптов. Не менее важно обучать сотрудников, в том числе разработчиков, рискам, связанным с использованием взломанного или пиратского ПО, даже если оно распространяется через, казалось бы, надёжные каналы. Мониторинг сетевого трафика на предмет необычных подключений к публичным блокчейн-нодам или репозиториям кода также может помочь в выявлении подобных сложных угроз на ранней стадии.
Индикаторы компрометации
IPv4
- 144.31.219.13
- 144.31.219.15
- 150.241.108.62
- 151.243.113.15
- 151.243.113.70
- 158.78.56.52
- 185.170.153.173
- 185.170.153.239
- 185.170.153.243
- 185.170.154.101
- 185.184.122.38
- 185.184.123.138
- 193.23.200.78
- 193.233.126.91
- 213.176.72.200
- 213.176.72.204
- 213.176.72.209
- 213.176.73.151
- 213.176.73.163
- 217.119.129.110
- 45.149.235.146
- 58.64.137.69
- 64.188.98.20
- 77.105.164.45
- 78.40.209.225
- 80.66.85.195
- 84.21.189.135
- 89.169.12.115
- 89.169.12.119
- 89.169.12.160
- 89.169.12.173
- 89.169.12.179
- 89.169.12.241
- 89.169.12.42
- 89.169.12.78
- 89.169.13.215
- 89.169.13.30
- 91.196.32.114
- 91.196.32.121
- 91.196.33.27
- 91.196.33.33
- 91.196.33.38
- 91.196.34.17
- 91.196.34.40
- 93.123.39.246
- 93.123.39.74
- 94.156.154.194
- 94.156.155.34
- 95.164.53.153
- 95.164.53.26
Domains
- aproxy.app
- layer1.icu
URLs
- http://213.176.72.200/3d9c1a1d0dc9436eb7b7.php
- http://217.119.129.110/3d9c1a1d0dc9436eb7b7.php
SHA256
- 0476281e2ed8cca25b881092334c2aa7bca82c4be9819fcb9cefe8027e532f1e
- 1f546f1b4b2cd404fdd2ba9b52223ecf935ad26588993f703bef69db4c94034e
- 2ad929f97ae428864a4e74c8f44c9aa392f8e044ae960b6906ffac9bfcb2a43c
- 2c5d4e26385d968570ffe8c602e431bd7fc88c3f637d0b1736ee7326c754b9ab
- 2d92df6beff6ccdb68272adedc1673ea12c1a19efecb77a16f9161ecda56ae8b
- 2ea6200c846af534a07338a803acf7f49520abf59b2ae82a701a24e7fada0b97
- 365d1b01cd5e605f6e7d39b192aaf56040176f2bce6eaec0fc11584850793a83
- 37f60b7923dae8ab38bb72ccfe94bf06c3266202d4881e9d2e0ac28abcd85b25
- 4508b938d16e16585d4065d10ba5890f380a9d7e82d1ae0246bae41937d17add
- 5343326fb0b4f79c32276f08ffcc36bd88cde23aa19962bd1e8d8b80f5d33953
- 57cc3f7b14c761fcc4a3713a58c1161356fed27fb0cbc04d56bbe6a3ee43f605
- 61ab1d22949eac0582e989ae065ec4caee9ac99998276317edda96735cd311fb
- 61f5e68f1dc91eee925af875bf511de0de1483a8e663567c22ca4bc568808341
- 63c8cedc49339dd788dbc25f851dfce5219045aef80dd9bd17343948fb73f954
- 7625f9ae947f8cb3d7ed463694db72bd3eb07d1792e1a85232b1933370b9562b
- 772ce19206d35699b4d2693c59f8c0bd1a927f287f8bf98bd14d65f1ff248828
- 88ec32a311b56441cfe6126b7780f073f36dfb8808de0dab9219d1a0be9c01ac
- 89730887d1ac7aab9e37d590081a5c9c56fa3f79b24960bff3f9cdabb0486424
- 8b5d6ff49034626532fbf5d2b9f4ffeee53facde63252e3c8aaa89f05029b8d4
- 8cede35b80b1deaf732c2b178d908f91b3e7a0c114d06dfae9075b8a9bf78b8f
- a3bc1a47f6bd9782dc594ef10feef0ee8c422a1cd06a5ddc429c61fdfa81b567
- a3e6236fa517f863ea551e17fcedcfc22df23e044dcd4863e6ddf3ef00966596
- a563a7df740bce2bda1231cebb4ed136813df43361de17c224b97af9941ee0c4
- ac5885b78810a7bf987ff6674f6717059e227df9c969b9fb46d00b2c0de1ba74
- acdd9ac3d55c4b1e12a239331145665d9eddf84a7a34fccac164f8afd006f875
- b0ca436fef7c39e0f6ebd93989d38b9a58eb4d1cf83ab45d7b07d70794a59e6d
- b4f46436037bf0c12eb047d87999c956b09c5cf58d03221190f21e5ce7f97a81
- c7a657af5455812fb215a8888b7e3fd8fa1ba27672a3ed9021eb6004eff271ac
- ca42898e885979196647b6e5c469461a25870c1f15ef5910d531f37f8f3f147f
- ce1e33483d353200a266b3bc383ccf500e5a760c6dcd8218747260f5bbe39509
- dce5fc61e153377bb42b53b7dfca841399dd5c94d5fdf2631617a6df8c7cded1
- e2e3768af9e40610b030644486f7434c892bf6ff273732c96f43c9e9401d3aca
- e33f444edb92a0d5f01b040dd06520092c0d52a431bbb4e6c2f9e6e71265098c
- ead242a036f033f0829afa33768814be168ae29431d9de479e63a80c4cf9f431
- ebb0c76a03b8bb0ba246b8b31143f4462b4c3b0b3b5d581c499b4c3a484fd792
- ef224f48255771d28b15169d60c8b0a925875dba15b3bd245c0b34d77290120d
- f3e34c9e36f3be065d80d456281d31dd1cc85eb4980db7fa8c1b0eb6f29c25d8
Blockchain contracts (Polygon Mainnet)
- 0xd68910ED4D4A5A9bAdF9ec95604CAE0f3378479B
- 0x2cbd2464dd749f5c0034fc9cddc6db2d53dea400
- 0x1823A9a0Ec8e0C25dD957D0841e3D41a4474bAdc