В середине апреля 2026 года специалист по информационной безопасности обнаружил масштабную операцию по распространению вредоносного программного обеспечения, построенную на подделке популярных открытых проектов на GitHub. Злоумышленники создали 19 фейковых репозиториев, распределённых по 17 различным учётным записям. Каждый из этих репозиториев содержал небольшую программу-дроппер на Python, которая связывалась с сервером управления api.nailproxy.space, загружала нативный загрузчик для Windows и в конечном итоге развёртывала вредоносную нагрузку, соответствующую характеристикам известного стилера данных StealC второй версии. Важно отметить, что полная цепочка доставки через GitHub до этого момента не была описана в открытых источниках.
Описание
Как началось расследование
Автор расследования, являющийся мейнтейнером популярного проекта UNICORN Binance Suite, случайно наткнулся на подозрительный репозиторий во время рутинного поиска в Google по названию собственного проекта. В выдаче он обнаружил ресурс, который не принадлежал ему, но был назван так, чтобы ввести пользователей в заблуждение. Репозиторий существовал всего около месяца, не имел ни одного issue или pull request, но при этом демонстрировал подозрительно высокое количество звёзд и форков, что не соответствовало органическому росту. При изучении кода стало очевидно, что это не просто сторонняя обёртка, а вредоносный проект.
Первоначальная публикация результатов появилась на следующий день. Однако на тот момент ещё не было ясно, что именно происходит после того, как жертва запускает код. Полный анализ цепочки заражения и инфраструктуры оператора занял несколько дней.
Технические детали атаки
Цепочка заражения состоит из трёх этапов: Python-дроппер, встроенный в поддельные репозитории, нативный загрузчик для Windows и финальная вредоносная нагрузка. Если жертва клонирует фейковый репозиторий и запускает файл main.py, то код активирует декоратор, импортированный из модуля utils. Этот декоратор проверяет операционную систему, версию Python и архитектуру процессора (только x64 или x86; ARM-системы не заражаются). Затем выполняется рукопожатие с инфраструктурой кампании.
Скрытый код внутри файла compat.py содержит зашифрованные строки, которые после декодирования однобайтовой операцией XOR превращаются в адрес https://api.nailproxy.space. Дроппер отправляет POST-запрос к /api/v1/auth/session, получает одноразовый код и временную метку, подписывает их с помощью встроенного ключа HMAC-SHA256, затем запрашивает данные через /api/v1/data/sync. В ответ приходит зашифрованный алгоритмом AES-GCM блок данных. После расшифровки проверяется наличие MZ-заголовка (признак исполняемого файла Windows), и полученный файл сохраняется во временную папку под именем ~DF<random>.exe, запускается без отображения консольного окна и после запуска удаляется.
Примечательно, что четыре из пяти файлов из модуля utils оказались идентичными по содержимому во всех подтверждённых фейковых репозиториях. Лишь файл compat.py различался - но только в константах, при том же размере и назначении. Такая практика указывает на продуманную операционную дисциплину, а не на случайное копирование.
Анализ загрузчика
Расшифрованный файл представляет собой исполняемый файл Windows PE64 размером примерно 11,1 мегабайта. Он маскируется под системный процесс с именем sysconf.exe, имеет поддельные данные о версии и названии компании, имитируя продукцию Microsoft. Статический анализ не дал практически никаких результатов. Инструменты выявления сигнатур на основе правил YARA не сработали, строки были тщательно скрыты. Однако анализ при помощи capa показал наличие хеширования API по алгоритму FNV, обхода таблиц экспорта PE-файлов, признаков использования алгоритмов ChaCha20/Salsa20, многоуровневой операции XOR и архитектуры типа "команда/интерпретатор".
Такое сочетание указывает на кастомный или частный загрузчик, а не на массовые коммерческие образцы. При этом однозначная атрибуция данному семейству вредоносного ПО (например, Rhadamanthys) была бы некорректной без более веских доказательств.
Финальная нагрузка и атрибуция
Динамический анализ загрузчика оказался затруднительным из-за продвинутых методов обнаружения песочниц. Однако одна из систем - CAPE - смогла зафиксировать полную цепочку. После запуска sysconf.exe сбрасывает на диск DLL-библиотеку размером около 55 килобайт, затем запускает её через rundll32.exe, после чего инициирует браузер Chrome с параметрами, отключающими графическое ускорение, песочницу и расширения, создавая временный профиль. Эта техника характерна для обхода механизма App-Bound Encryption, внедрённого в последние версии Chrome. Вместо прямого расшифрования защищённых данных вредоносное ПО использует легитимный контекст самого браузера.
Сеть инфраструктуры разделена на две части. Этап доставки использует api.nailproxy.space для получения загрузчика. Этап же финальной эксфильтрации и управления использует IP-адрес 62.60.226[.]113:6673 и домен spellmarketplace[.]club. Интересно, что этот IP-адрес уже фигурировал в публичных отчётах ThreatFox в декабре 2025 года как инфраструктура, связанная со стилером StealC. Схема путей запросов - /<24-значный буквенно-цифровой идентификатор>/[h|g|u] - полностью совпадает с документированным поведением StealC второй версии.
Таким образом, хотя прямое сравнение кода финальной DLL с известными образцами StealC не проводилось (автор не смог получить уникальную сигнатуру YARA), совокупность данных - инфраструктурная корреляция, поведенческие признаки, метод обхода Chrome App-Bound Encryption и запуск через rundll32 - позволяет с высокой степенью уверенности утверждать, что финальная нагрузка соответствует StealC v2.
Что под угрозой у жертв
На основе наблюдаемого поведения и публичных отчётов о StealC v2 жертвы должны исходить из того, что скомпрометированы как минимум следующие категории данных: сохранённые учётные данные браузеров, файлы cookie и активные сессии, данные автозаполнения и истории посещений, данные расширений криптовалютных кошельков в браузере, файлы десктопных кошельков (при их наличии), данные сессий Telegram Desktop, токены и артефакты сессий Discord, а также локально сохранённые учётные данные для разработческих инструментов, облачных сервисов, VPN, FTP и средств удалённого доступа. Для целевой аудитории - разработчиков, трейдеров и пользователей криптовалют - такая комбинация представляет собой исключительно серьёзную угрозу.
Размер кампании
Поиск по коду GitHub с использованием трёх уникальных строк-комментариев из идентичных модулей utils выявил все те же 19 репозиториев, что подтверждает их публичную видимость. Ограничения поиска (только открытые репозитории, возможная задержка индексации, удалённые репозитории) не позволяют говорить о полной картине, но наиболее вероятно, что 19 репозиториев - это полный публичный набор на момент анализа.
Однако инфраструктура эксфильтрации указывает на то, что поддельные GitHub-репозитории являются лишь одним из каналов доставки. Обнаружен ещё один образец загрузчика, связанный с тем же доменом spellmarketplace.club, но доставленный не через репозитории. То есть операция, скорее всего, масштабнее, чем просто набор фейковых проектов.
Рекомендации для пострадавших
В отчёте автора содержатся чёткие указания для тех, кто запускал файл main.py или любой аналогичный из фейковых репозиториев на Windows. Машину следует считать скомпрометированной. Необходимо немедленно отключить систему от сети, сохранить доказательства (если требуется), затем полностью переустановить операционную систему, а не пытаться "вылечить" её. После этого следует сменить все пароли с другого чистого устройства, уделяя первостепенное внимание биржевым и банковским аккаунтам, электронной почте, GitHub/GitLab, облачным провайдерам и VPN. Все активные сессии нужно аннулировать. API-ключи (биржевые, облачные, CI/CD, GitHub, PyPI) отозвать и выпустить новые. Расширения и локальные файлы криптокошельков считать скомпрометированными - перевести средства на новые кошельки, созданные на доверенном оборудовании. Также необходимо проверить приложения Telegram и Discord, завершить все активные сессии. Если на заражённой машине использовались корпоративные учётные данные или ключи, следует немедленно уведомить работодателя или поставщика услуг.
Эта кампания наглядно демонстрирует, что даже авторитетные платформы вроде GitHub не застрахованы от использования для распространения вредоносного ПО. Разработчикам следует проявлять крайнюю осторожность при запуске кода из непроверенных источников, обращая внимание на неестественные показатели популярности и отсутствие реальной активности сообщества.
Индикаторы компрометации
IPv4 Port Combinations
- 62.60.226.113:6673
URLs
- https://api.nailproxy.space
- https://spellmarketplace.club
SHA256
- 041f48d92b7b410c93c83d8352e3b0c18ca2e10dfce8cbc38748ab862b08982e
- 155dc73761ebaab0e4f5c0e18cf09dbd5728ce61361db218a5727355ca8adc1a
- 251037ceebfbacd419b663ebcf0e01ec80a2c46dbfc85f66492c8585b481fb8c
- 37380d20800d196e3a20fc98fba80d1365a63acbf9dadad7debc48e157520edd
- 54111f7e5f7aa425704fb45bf79d4e354cfb959f2c22aee6cbb79730d5a6a3aa
- b3668182408c4078e20c04d03a04804bc9640238361af9a15d44c3950192eedc
- c27590c766583599eac98ed3e20c54e49c792be409f126577e7475294affac1f
- c5866b202eb5fc7009ee045952d893c1b373d965f9491f8502075de11c132d62