Вредоносный Go-модуль маскировался под сканер DNS и поддоменов, а на деле загружал вредоносное ПО для Windows
Кампания «Operation Muck and Load» охватила 222 репозитория GitHub на 190 аккаунтах — опубликовано свыше 700 заражённых версий пакета
Адреса загрузки скрыты на Pastebin, YouTube, Telegram и других открытых площадках и обновляются без изменения кода первой ступени
Среди финальных нагрузок — трояны AsyncRAT, Quasar и Remcos, инфостилер Vidar и майнер Monero XMRig
Специалисты по безопасности цепочек поставок из компании Socket обнаружили Go-модуль, который выдавал себя за сканер DNS и поддоменов, а на деле служил загрузчиком вредоносного ПО для Windows. Пакет — dnsub-scanning-tool — был построен на основе кода легитимного открытого проекта dnsub, что и обеспечивало ему правдоподобное README и видимость рабочего инструмента. Первая версия появилась 24 января 2026 года, и с тех пор модуль накопил более 1 200 версий, из которых свыше 700 оказались вредоносными. Расследование вывело исследователей на сеть из 222 репозиториев GitHub, принадлежащих 190 учетным записям. Кампанию в Socket назвали «Operation Muck and Load» и сообщили о модуле команде безопасности Go, которая заблокировала его в прокси-сервере модулей.
Источник изображения - Getty Images
Раздутая история версий
Go присваивает псевдо-версию на основе временной метки и хеша коммита любому коммиту без семантического тега. В Socket связывают взрывной рост числа версий модуля с собственным рабочим процессом злоумышленника в GitHub Actions: коммиты с привязкой ко времени регулярно разрешались как новые версии, из-за чего история релизов рядового сканера-утилиты раздулась до сотен записей.
Единый почерк за сотнями аккаунтов
Во всех подтвержденных репозиториях исследователи нашли один и тот же рабочий процесс: он выставляет Git-адрес ischhfd83@rambler.ru, подставляет в качестве видимого имени коммита текущего владельца репозитория, а затем каждую минуту принудительно перезаписывает файл лога. Такая схема создавала видимость активности от имени владельцев одноразовых аккаунтов, но оставляла один и тот же повторяющийся отпечаток. Репозиторий засчитывался в статистику Socket только при совпадении обоих признаков — адреса и рабочего процесса, — что и дало минимум 222 подтвержденных случая.
Как срабатывает заражение
Файл main.go модуля запускает скрытую команду PowerShell, которая обращается к muckcoding.com, сохраняет полученные данные в файл api.db, декодирует его штатной утилитой certutil и запускает результат с обходом политики выполнения скриптов. Расшифрованный скрипт представляет собой многоуровневый загрузчик на Base64 и XOR-шифровании; в одном из слоев обнаружен комментарий на турецком языке, который переводится как «запускай напрямую, дополнительных шагов не требуется».
Тайники вместо жёсткого адреса
Вместо того чтобы зашивать в код постоянный адрес загрузки, резолвер вредоноса извлекает текст с публичных платформ, ищет в нём строку-маркер «LastW» и расшифровывает идущий за ней блок заранее заданным ключом — так восстанавливается фактический адрес полезной нагрузки. Такая схема позволяет злоумышленнику обновлять точку доставки, не трогая код загрузчика первой ступени, даже если защитники удалят конкретную запись.
Площадки, которые используются как тайники:
- Pastebin и паста-сервис Rlim — основные хранилища
- YouTube — резервный канал
- Instagram*
- Telegram
- Google Docs
- GitCode
Итоговая нагрузка
Восстановленный адрес ведёт на защищённый паролем архив 7-Zip, размещённый как файл релиза на GitHub. Загрузчик распаковывает его в каталог, названный так, чтобы напоминать легитимную установку Microsoft Photos, и запускает оттуда файл Microsoft.exe в скрытом окне. Расшифрованные стадии соответствуют сигнатурам RAT-троянов AsyncRAT, Quasar и Remcos, а также поведению инфостилеров.
В проанализированном наборе Socket подтвердила как минимум 14 уникальных вредоносных файлов:
- троянские загрузчики и дропперы
- инфостилер Vidar
- шпионские нагрузки
- майнеры Monero на базе XMRig
Один и тот же файл Loader.exe оказался побайтово идентичным сразу в четырёх разных репозиториях — признак централизованной сборки, а не самостоятельной работы разных авторов.
Приманки для разработчиков и геймеров
Темы репозиториев-приманок рассчитаны на разную аудиторию: интеграции с MetaMask и Trust Wallet, утилиты для работы с seed-фразами, автоматизация для Binance и PayPal, боты для Telegram и Discord, а также читы для PUBG, Valorant и Escape from Tarkov. Один из репозиториев, nrevv1lad/Pubg-DESYNC-Menu, выдавал себя за внешний чит с инструкцией по установке, но в дереве исходников содержал файл Loader.exe, связанный с Vidar.
Продолжение прошлогодней кампании
В Socket с высокой степенью уверенности считают, что «Operation Muck and Load» — продолжение кластера, который компания Sophos описывала в июне прошлого года. Тогда исследователи Sophos Мэтт Уикси и Эндрю О'Доннелл отследили 141 репозиторий GitHub, 133 из которых оказались бэкдорены, до того же адреса ischhfd83@rambler.ru. Sophos также зафиксировала псевдоним злоумышленника «Muck» — сейчас он закреплён в доменах muckcoding.com и muckdeveloper.com.
Ни GitHub, ни команда Go пока не прокомментировали ситуацию сверх факта блокировки модуля в прокси-сервере. Для тех, кто подключает сторонние Go-модули в собственные проекты, история — лишний повод проверять репозиторий не только по количеству звёзд и версий, но и по реальной активности аккаунта-владельца: массовые автогенерируемые коммиты и раздутая история релизов сами по себе — тревожный признак.
* Instagram принадлежит компании Meta Platforms Inc., деятельность которой признана экстремистской и запрещена на территории Российской Федерации.











