В октябре 2025 года специалисты Elastic Security Labs обнаружили в телеметрии ранее неизвестную вредоносную программу для Windows. Этот многофункциональный бэкдор (backdoor), получивший название NANOREMOTE, демонстрирует черты сходства с вредоносным ПО, описанным в отчете REF7707, и имеет явное родство с имплантом FINALDRAFT.
Описание
Основной особенностью NANOREMOTE является использование API Google Drive для передачи данных между скомпрометированной системой и злоумышленниками. Этот канал обеспечивает кражу данных и размещение дополнительных вредоносных модулей (payload), оставаясь при этом сложным для обнаружения. Программа включает систему управления задачами для передачи файлов, поддерживающую постановку заданий на загрузку и выгрузку в очередь, их приостановку, возобновление, отмену, а также генерацию токенов обновления.
Атака начинается с загрузчика WMLOADER, который маскируется под программу безопасности Bitdefender. После выполнения он расшифровывает и выполняет в памяти шелл-код, который, в свою очередь, находит файл "wmsetup.log", дешифрует его с помощью AES-CBC и запускает основную нагрузку - бэкдор NANOREMOTE.
NANOREMOTE представляет собой 64-битный исполняемый файл Windows, написанный на C++ без обфускации. Он обладает широким набором функций для разведки, выполнения команд и файловых операций. Связь с командным сервером (C2) осуществляется по HTTP с использованием сжатия Zlib и шифрования AES-CBC. Бэкдор поддерживает 22 команды, включая сбор информации о системе, выполнение произвольных команд, перемещение файлов и работу с дисками.
Особого внимания заслуживает функционал для скрытной загрузки исполняемых файлов (PE) как с диска, так и непосредственно из памяти. Для этого NANOREMOTE использует открытую библиотеку libPeConv. Кроме того, в коде применяется библиотека Microsoft Detours для перехвата системных функций, связанных с завершением процессов, что повышает устойчивость вредоносной программы.
Ключевой угрозой является механизм передачи файлов через Google Drive API. NANOREMOTE может аутентифицироваться с использованием нескольких учетных записей Google, конфигурация которых передается через переменную окружения "NR_GOOGLE_ACCOUNTS". Зашифрованный трафик к доверенному облачному сервису позволяет злоумышленникам незаметно выгружать данные и загружать дополнительные инструменты, маскируя свою активность под легитимный трафик.
Анализ кода выявил значительное сходство между NANOREMOTE и ранее известным имплантом FINALDRAFT. Обнаружено повторное использование кода для генерации уникального идентификатора машины на основе GUID и хеш-функции FNV, а также сходство в логике HTTP-запросов. Важным доказательством связи является то, что один и тот же загрузчик WMLOADER с идентичным AES-ключом может использоваться для дешифровки как NANOREMOTE, так и FINALDRAFT.
Это указывает на общую кодовую базу и среду разработки, что позволяет связать NANOREMOTE с группой угроз, занимающейся кибершпионажем. Использование легитимных облачных сервисов и открытых библиотек усложняет задачу защитникам, полагающимся на сигнатуры и базовый анализ сетевого трафика. Эксперты Elastic отмечают, что их решение Elastic Defend способно предотвратить данную цепочку атак с помощью поведенческих правил, классификатора машинного обучения и функций защиты памяти.
Индикаторы компрометации
SHA256
- 35593a51ecc14e68181b2de8f82dde8c18f27f16fcebedbbdac78371ff4f8d41
- 57e0e560801687a8691c704f79da0c1dbdd0f7d5cc671a6ce07ec0040205d728
- 999648bd814ea5b1e97918366c6bd0f82b88f5675da1d4133257b9e6f4121475
- b26927ca4342a19e9314cf05ee9d9a4bddf7b848def2db941dd281d692eaa73c
- fff31726d253458f2c29233d37ee4caf43c5252f58df76c0dced71c4014d6902
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | rule Windows_Trojan_NanoRemote_7974c813 { meta: author = "Elastic Security" creation_date = "2025-11-17" last_modified = "2025-11-19" license = "Elastic License v2" os = "Windows" arch = "x86" threat_name = "Windows.Trojan.NanoRemote" strings: $str1 = "/drive/v3/files/%s?alt=media" ascii fullword $str2 = "08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X" ascii fullword $str3 = "NanoRemote/" wide $str4 = "[+] pwd output:" wide $str5 = "Download task %s failed: write error (wrote %llu/%zu bytes)" $seq1 = { 48 83 7C 24 28 00 74 ?? 4C 8D 4C 24 20 41 B8 40 00 00 00 BA 00 00 01 00 48 8B 4C 24 28 FF 15 ?? ?? ?? ?? 85 C0 } $seq2 = { BF 06 00 00 00 89 78 48 8B 0D ?? ?? ?? ?? 89 48 ?? FF D3 89 78 78 8B 0D ?? ?? ?? ?? 89 48 7C FF D3 89 78 18 8B 0D } condition: 4 of them } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | rule Windows_Trojan_WMLoader_d2c7b963 { meta: author = "Elastic Security" creation_date = "2025-12-03" last_modified = "2025-12-03" license = "Elastic License v2" os = "Windows" arch = "x86" threat_name = "Windows.Trojan.WMLoader" reference_sample = "fff31726d253458f2c29233d37ee4caf43c5252f58df76c0dced71c4014d6902" strings: $seq1 = { 8B 44 24 20 FF C0 89 44 24 20 81 7C 24 20 01 30 00 00 } $seq2 = { 41 B8 20 00 00 00 BA 01 30 00 00 48 8B 4C C4 50 FF 15 } condition: all of them } |