Русский след — фальшивка? Касперский вскрыл 2-летний шпионаж Китая

leer en español

Русский след — фальшивка? Касперский вскрыл 2-летний шпионаж Китая

Внутри утилит PassiveNeuron обнаружилось больше улик, чем разработчики собирались оставить.

image

На протяжении последних двух лет специалисты «Лаборатории Касперского» наблюдали за активностью малоизвестной шпионской кампании, получившей название PassiveNeuron. Первые заражения серверов правительственных организаций фиксировались ещё в 2024 году, однако долгое время оставались неясны ни механизмы начального внедрения, ни принадлежность используемых вредоносных компонентов.

Повторный всплеск активности был зафиксирован в декабре 2024 года и продолжался до августа 2025-го, охватив государственные, финансовые и промышленные структуры в Азии, Африке и Латинской Америке. Новые случаи позволили исследователям восполнить пробелы в технической картине атаки и приблизиться к возможному определению её источника.

Подавляющее большинство скомпрометированных машин работали под управлением Windows Server. В одном из эпизодов злоумышленники получили удалённый доступ за счёт уязвимостей в Microsoft SQL. Несмотря на то, что конкретный способ проникновения установить не удалось, известно, что подобные сервера нередко взламываются через уязвимости самого SQL, SQL-инъекции в приложениях или подбор пароля администратора базы данных. Получив возможность удалённого исполнения команд, злоумышленники попытались внедрить ASPX web shell, но установленное на целевом сервере защитное решение заблокировало эту попытку.

Чтобы обойти защиту, атакующие меняли кодировку веб-оболочки с Base64 на шестнадцатеричную, заменяли PowerShell на VBScript и записывали скрипт построчно, но все эти варианты также были пресечены. Тогда они перешли к более сложной схеме загрузки вредоносных модулей.

На разных этапах атаки применялись три типа вредоносных компонентов: собственная модульная платформа Neursite на C++, загрузчик .NET-платформы NeuralExecutor и широко известный фреймворк Cobalt Strike. Во всех случаях наблюдалась цепочка из нескольких DLL-библиотек, загружаемых последовательно.

Первая стадия включала размещение библиотеки в системной директории Windows — её название имитировало легитимные компоненты, что обеспечивало автоматический запуск благодаря технике Phantom DLL Hijacking. Размеры файлов были искусственно увеличены за счёт мусорных данных, что затрудняло их обнаружение.

На старте DLL проверяла MAC-адреса всех сетевых адаптеров и продолжала выполнение только в случае совпадения с жёстко заданным значением — приём, исключающий работу вредоноса вне целевой машины. После этого происходила последовательная активация второго и третьего уровней загрузчиков, включая дешифровку содержимого и запуск shell-кода в отдельных процессах, таких как WmiPrvSE.exe. На финальном этапе в память загружался основной исполняемый модуль в нестандартном формате.

Наиболее мощным из задействованных инструментов оказался Neursite. Его конфигурация предусматривала детальную настройку коммуникации с C2-серверами: список адресов, прокси, заголовков, временных интервалов и даже расписания активности. Поддерживались TCP, SSL, HTTP и HTTPS, а также опция ожидания входящего подключения. Neursite позволял управлять файлами, запускать команды, работать с сокетами и использовать заражённую систему в качестве прокси для перемещения внутри сети.

Implant NeuralExecutor, в свою очередь, представлял собой .NET-загрузчик с открытым обфускатором ConfuserEx, способный устанавливать соединение по TCP, WebSocket, именованным каналам и HTTP(S). Его задача — принимать и выполнять дополнительные .NET-компоненты, полученные с управляющего сервера.

Попытки отнести PassiveNeuron к конкретной группировке осложняются наличием ложных признаков. В ранних версиях NeuralExecutor имелись русскоязычные строки с фразой «Супер обфускатор», но позже они исчезли. Зато в новых вариантах был применён метод Dead Drop Resolver — загрузка конфигурации из GitHub с использованием уникальных строк-разделителей и последующей расшифровкой через AES. Такой подход ранее встречался в кампаниях EastWind, связанных с китайскими APT31 и APT27.

Дополнительным аргументом в пользу китайской принадлежности стало обнаружение на одном из атакованных серверов вредоносной библиотеки imjp14k.dll с путём сборки, совпадающим с артефактами, описанными в отчётах Cisco Talos по активности APT41. Поведение этой DLL также соответствовало характеристикам, отмеченным в тех материалах.

Хотя окончательное определение группы, стоящей за PassiveNeuron, затруднено, совокупность приёмов и повторяющиеся технические приёмы, применённые в ходе атаки, позволяют с осторожностью предположить участие китаеязычных операторов. Кампания ориентирована исключительно на серверную инфраструктуру — уязвимую точку входа для APT-операций, особенно при наличии SQL-инъекций и слабой защиты от web shell-компонентов.