Злоумышленники нацелились на Бразилию: поддельные электронные счета доставляют фреймворк Havoc

security

В начале мая 2026 года, когда Бразилия переживает очередной напряжённый период налоговой отчётности, специалисты по информационной безопасности зафиксировали новую волну атак. Злоумышленники маскируют свои вредоносные вложения под официальные электронные счета - Nota Fiscal eletrônica (далее - NF-e). Этот документ, известный каждому бразильскому бухгалтеру, обычно приходит в виде ZIP-архива с длинным цифровым номером. Преступники скопировали эту привычку: их вложение выглядит как обычный счёт от поставщика. За безобидной оболочкой скрывается фреймворк Havoc - инструмент, изначально созданный для тестов на проникновение, но в руках атакующих превращённый в средство удалённого управления. С его помощью злоумышленники могут наблюдать за экраном жертвы, выполнять произвольные команды и пытаться получить доступ к другим компьютерам в сети.

Описание

Исследователи из LevelBlue SpiderLabs обнаружили детальную цепочку заражения. Приманкой служит ZIP-архив с именем вроде NFE-43250902055205000108550010000269881023835318-1.zip. Длинное число - стандартный ключ доступа к реальному электронному счёту, который состоит из 44 цифр. Преступники выбрали код, выглядящий правдоподобно: он включает код штата (43 - Риу-Гранди-ду-Сул) и похожий на настоящий идентификатор компании. В налоговый сезон бухгалтеры ежедневно открывают подобные файлы, поэтому подозрений такое вложение не вызывает. Однако внутри архива нет ни PDF-файла (так называемого DANFE), ни подписанного XML, которые всегда присутствуют в настоящем NF-e. Вместо этого там лежат всего два файла: короткий VBScript и установочный пакет MSI.

Скрипт скрывает свои намерения с помощью разбивки строк. После деобфускации он запускает скрытую команду cmd, которая загружает MSI из облачного хранилища Google Cloud Storage при помощи утилиты curl. Затем пакет запускается тихо, с ключами /quiet /norestart, и сразу удаляется. Ссылка на вредоносный установщик выглядит так: hxxps://storage[.]googleapis[.]com/nodesdownload/update.msi. Сервис VirusTotal зафиксировал независимые случаи появления этого архива 2 и 7 мая 2026 года. Первый раз его вручную загрузили из Сан-Паулу, второй раз файл подхватил краулер, анализирующий URL.

Сам установщик имитирует обновление Microsoft. Если открыть его свойства в Windows, там указано: "Microsoft Endpoint DLP Module", автор - "Microsoft Corporation", такое же название в комментариях. Это сделано для того, чтобы пользователь, мельком глянув на свойства, почувствовал себя в безопасности. Но подпись у MSI отсутствует, а собран он с помощью WiX Toolset 3.14.1.8722 - обычного инструмента для создания установщиков, а не реального продукта Microsoft. Внутри пакета находятся два файла: mpextms.exe (настоящий подписанный Microsoft-исполняемый файл) и endpointdlp.dll - загрузчик, созданный атакующими. Именно эта библиотека делает всю грязную работу. Она экспортирует тринадцать функций, но реально выполняет только одну - DlpInitialize, которая записывает ключ сохранения доступа в реестр. Остальные двенадцать сразу возвращают ноль. Для сравнения: настоящая библиотека Microsoft endpointdlp.dll экспортирует около сотни функций.

Загрузчик содержит в себе конфигурацию в открытом виде. Там указаны адрес сервера управления (194[.]59[.]31[.]192), пути для отправки запросов ( /stage/ - GET, затем /api/v2/telemetry/diag - POST), пользовательский агент Microsoft-Delivery-Optimization/10.1 и именованный мьютекс. Среди мусора обнаружена строка phantom.local - скорее всего, метка, которую оператор забыл убрать при сборке. При запуске в изолированной среде библиотека действовала строго по этой конфигурации: отправляла GET-запрос с 32-значным шестнадцатеричным кодом, затем POST с данными телеметрии. В память загружался код, соответствующий правилам YARA для семейства Havoc. Файл на диске оставался всего лишь загрузчиком, а настоящий агент (так называемый демон) поступал по сети.

Всего исследователи нашли девять вариантов этого загрузчика. Анализ показал, что они сделаны одним и тем же инструментом. У восьми из девяти одинаковые строки в описании версии: "Microsoft Defender Endpoint DLP", "Microsoft Corporation", "4.18.26100.1". Девятый использует маскировку под продукт Nuance Communications. Все загрузчики импортируют одни и те же 26 функций из четырёх библиотек KERNEL32, USER32, ADVAPI32, ole32. Два варианта размером 1,2 МБ различаются всего на 69 байт - это результаты одной сборки, но с разными начальными значениями. Другие два различаются на один байт - флаг ASLR отключён в более поздней версии. Такое совпадение возможно только при использовании одного билдера.

Тот же самый загрузчик endpointdlp.dll доставлялся и через другие каналы. Например, через параллельную кампанию с файлом update.zip, который располагался на трёх доменах, зарегистрированных в Малайзии. Каждый URL содержал персональный токен отслеживания вида ?tk=<hex32>. Этот ZIP-файл вёл себя к серверу thomphon[.]com. Кроме того, компания Packetwatch описывала похожий случай, когда загрузчик помещался в TAR-архив вместе с готовым демоном. Общий знаменатель - один и тот же загрузчик, который поставляется разными путями, но, вероятно, от одного источника.

Когда загрузчик успешно связывается с сервером управления, он получает полноценного агента Havoc. Этот агент полностью находится в памяти и никогда не пишется на диск. Его конфигурация также хранится в открытом виде в теле бинарного файла. Среди семи найденных агентов два размером 102 400 байт различаются всего на 16 байт: один адрес сервера 143[.]198[.]183[.]46, а другой - 192[.]168[.]12[.]228 (внутренний тестовый адрес). Остальные девять байт - это изменённые контрольная сумма и время сборки. Очевидно, что оператор тестировал одну сборку и одновременно выпустил боевую.

В конфигурациях демонов прослеживаются три профиля. "Лабораторный чистый" - внутренний адрес C2, без джиттера и защиты памяти, все проверки отключены. "Стандартный" - боевой адрес 143[.]198[.]183[.]46, 15% джиттер, включён режим шифрования памяти Ekko, большинство защит выключены. "Боевой" - сервер 194[.]62[.]55[.]81:80 без TLS, включены все антифорензические флаги: подмена стековых кадров, косвенные системные вызовы, отключение антивирусного сканера AMSI и трассировки событий ETW, загрузка через прокси. Вместо стандартного процесса notepad.exe для маскировки используется RuntimeBroker.exe.

Возможности агента внушительны. Трафик шифруется с помощью AES, ключ обменивается при первом контакте. Интервал между сигналами - две секунды с 15% случайностью (джиттер). Между сеансами связи код зашифрован - сканер памяти в этот момент видит только случайные байты. С помощью косвенных системных вызовов агент обходит хуки, которые устанавливают средства обнаружения (EDR). Подмена стековых кадров мешает криминалистическому анализу стека вызовов. А отключение AMSI и ETW лишает Windows встроенной возможности сигнализировать о подозрительной активности.

Для закрепления в системе загрузчик добавляет значение в реестр: HKCU\Environment\UserInitMprLogonScript. Оно указывает на путь к mpextms.exe, который при входе в систему запускается до появления рабочего стола. Подписанный Microsoft-файл загружает библиотеку endpointdlp.dll, и цикл повторяется. Никаких запланированных задач или ключей автозагрузки. Большинство средств защиты не отслеживают этот ключ реестра так тщательно, как стандартные точки сохранения, хотя любое непустое значение UserInitMprLogonScript должно вызывать подозрение.

Это не единичный случай. Ранее компания Trend Micro описала вредонос Banana RAT, который также использует поддельные счета NF-e, но доставляет другой троян. Новая кампания отличается тем, что на диск попадает только загрузчик, а сам агент загружается отдельно. Такой подход затрудняет обнаружение: если сервер управления временно недоступен, жертва не теряет контроль, а криминалисты на диске видят только легитимный Microsoft-файл и библиотеку, которая при поверхностном анализе может показаться безобидной.

Для защиты специалистам по безопасности стоит обратить внимание на несколько признаков. Первый - сетевой трафик с пользовательским агентом Microsoft-Delivery-Optimization/10.1, который не характерен для реальных обновлений Windows. Второй - любые записи в реестр UserInitMprLogonScript - их почти не бывает в легитимных сценариях. Третий - проверка подлинности цифровых подписей для всех бинарных файлов, которые якобы принадлежат Microsoft, но загружены из непроверенных архивов. Обнаружение самого загрузчика возможно по его характерным строкам версии и нулевой подписи, а также по импортируемым функциям. Однако главный урок этой атаки в другом: злоумышленники прекрасно адаптируются к региональным особенностям, используя доверенный рабочий процесс налоговой отчётности, и рассчитывают на то, что бдительность на время снижается. Ответом должен стать не поиск одной единственной приманки, а контроль за поведением системы на всех этапах - от входящего письма до неожиданного сетевого соединения.

Индикаторы компрометации

IPv4

  • 143.198.183.46
  • 194.62.55.81

IPv4 Port Combinations

  • 194.59.31.192:8443

Domains

  • thomphon.com

URLs

  • https://49xb5hoiqsr.com/dl/update.zip?tk=
  • https://e4wxbrg5277.com/dl/update.zip?tk=
  • https://jh038x18gy9.com/dl/update.zip?tk=
  • https://storage.googleapis.com/nodesdownload/update.msi
  • https://tr.ee/lAZ5yi

SHA256

  • 00d979bdb1b29b2859f2120580f101f40e8e13de0b3b7bc29675e2c31098a03c
  • 0743154262c5ccf24794168ee331feeefc6539386715307ee44d5d9b6b321077
  • 1d09357b6a096fdc35cd5c873eed15665d6b3c879d20c8cf01e6bca0005512cf
  • 1fc515870c681bf3e1b7947e2248bbcfe9918db2978117e91134de20bd42fd6a
  • 2cd88d5280a61714836f5f07a16df190911c5b952af2998dbbcda910b3b1c494
  • 31f27fdc14505e0cebe360579e1ba0326762cbe0948e50b5f920da51fdef1b51
  • 3578e1588846a805ee806fa6151b5801d0acb88879a93d378300e2ee7665736e
  • 389a6a2007e4f06d16beac0ec2cb01391f80ad5e392343386cae3ceb82ec1502
  • 6b22df0de0a40ff372973639c8a1974cfb75084b8e3b85f9ab9038e0acce43c0
  • 6dc41555455860b8584d761303a7ae5487117944e2a24d74fa3e91ad8f840077
  • 7d4fb94f6b4623690daea67ed52e97705cb102f443988ff605f2a9c4898244dc
  • 9eefc66d1fca7f18a91f49affb569b41bcde043f91567e7f5cc9f2016aeddf8c
  • ae8cded2822c56dd85f52bba09d9285cb2db3e6317227530b848ea143afb067c
  • afd5f1ed45a9867daf3bc64152cef460a06b164c8183e490db39146d4749a82c
  • c958de72460256c9c1cceef527d880862e8bc29e3ae4e2d478af97dcafd41180
  • ced6b0f4441085bb9c54a32da9ab4ba14c6e21daf6e34fd61d54923f87baacd0
  • d24216d0b82747e9406a696da76960183926145f9621947e34a772137f5e22a6
  • d2c637235d62ad766f961f9b8563f6a0e6db2ec0a343470385991b4df826afbc
  • eca5c297008e7c07a5c6fc9070c03121d702ef093b4a8e508b712040d87fed36
  • f2357e70f359803d42298d016c7e1631e9fba6c7e01e5df1eb8fb9ff7eb3df4e
  • fb3630822b70bacb56aa4cec29b5a0e3e9acb3920809e70310a4003385a6d34a

YARA

Комментарии: 0