Новая кампания с Python-вредоносом NarwhalRAT: фишинг, многоступенчатая атака и скрытый канал через pCloud

APT

Исследователи Genians Security Center обнаружили новую волну атак, нацеленных в первую очередь на пользователей из Южной Кореи. Злоумышленники применяют сложный многоступенчатый вредонос на основе Python, который получил название NarwhalRAT. Этот инструмент сочетает в себе функции шпионажа и удаленного управления и, по мнению аналитиков, демонстрирует высокое сходство с методами работы группировки APT37.

Описание

Вектор начального проникновения - целевые фишинговые письма, которые маскируются под уведомления от команды учётных записей Microsoft или под рекомендации по кибербезопасности. Тема письма звучит как "[Срочно] Уведомление о проверке безопасности в связи с повторной генерацией одноразовых паролей". Отправитель указан как "Microsoft Account Team", но реальный домен отправителя с корпоративным не связан. В письме содержится просьба ознакомиться с прикреплённым "руководством по безопасности". Однако вложенный ZIP-архив на самом деле содержит не документ HWP (корейский текстовый формат), а вредоносный LNK-файл (ярлык Windows). После открытия архива и клика по ярлыку запускается цепочка заражения.

Первый этап исполнения построен на обфускации команд через подстановку символов из переменной окружения. Внутри LNK-файла прописана команда, которая через cmd.exe и PowerShell запускает скопированную утилиту curl.exe для загрузки двух файлов с промежуточного сервера webhostingkorea[.]com. Первый файл - легитимный HWP-документ, который открывается перед пользователем как отвлекающий манёвр. Второй - BAT-файл с именем KHjWFcsE.bat, содержащий аналогичную обфускацию.

BAT-скрипт загружает официальный дистрибутив Python 3.10 с сайта python.org, распаковывает его в каталог C:\Users\Public\AccountPictures\UserInerfacePicture, переименовывает Pythonw.exe в userscreen.exe и удаляет Python.exe. Затем скачивается дополнительный файл config.cat, который на самом деле является скомпилированным Python-байткодом (.pyc), замаскированным под каталог безопасности Windows. Для закрепления в системе создаётся задача в планировщике с именем MicrosoftUserInterfacePicturesUpdateTackMachine, которая каждую минуту запускает userscreen.exe для выполнения config.cat.

При исполнении config.cat подключается к серверу управления (C2, командному центру) webhostingkorea[.]com и получает команду на загрузку следующей стадии - файла AccountConfig.cat размером около 7,5 МБ. Этот файл также является Python-байткодом, содержащим зашифрованный PE-исполняемый файл. Расшифровка происходит с помощью кастомной функции на основе SHA-256 и XOR, после чего в память загружается сам NarwhalRAT.

Ключевая особенность NarwhalRAT - использование техники fileless (бесфайлового) выполнения. Вредонос не записывает финальную полезную нагрузку на диск. Вместо этого с помощью библиотеки ctypes вызываются Windows API VirtualAlloc (выделение памяти с правами чтения, записи и исполнения), RtlMoveMemory (копирование кода в эту память) и CFUNCTYPE (запуск кода как функции). Всё происходит внутри процесса Python, что затрудняет обнаружение файловыми сканерами.

После запуска вредонос проверяет среду на наличие признаков виртуальных машин (VMware, VirtualBox, Parallels). Если окружение признаётся изолированным для анализа, активность сворачивается. Затем создаётся мьютекс с именем i5zJH9FL10cVd3sSW9eyWWErPJ для предотвращения повторного запуска. Рабочий каталог %APPDATA%\naverwhale маскируется под папку браузера Naver Whale, популярного в Корее. Папке присваиваются атрибуты "Скрытый" и "Системный".

Специалисты Genians обнаружили, что NarwhalRAT использует двухуровневую архитектуру C2. Основные серверы - корейские сайты daehoat[.]com и novel21[.]co.kr. Вредонос также содержит код для работы с API pCloud (облачного сервиса), где через параметры folderid и auth реализована техника "Dead-drop Resolver" (метод, при котором реальный адрес C2-сервера не зашит в коде, а доставляется через легитимный облачный сервис, что затрудняет блокировку). Это обеспечивает операционную устойчивость: даже при блокировке основного канала команды продолжают поступать через pCloud.

Управление вредоносом осуществляется через более чем 30 префиксных команд. Среди них: startkcap (запуск кейлоггинга), startscap (захват экрана), usb2local (копирование файлов с USB-накопителей на локальный диск), cmd и cmdadm (удалённое выполнение команд), а также команды для записи микрофона, изменения настроек C2 и самоуничтожения. При этом ведётся фильтрация окон: из сбора исключаются процессы ApplicationFrameHost.exe, TextInputHost.exe, а также окна KakaoTalk, Microsoft Text Input Application и MSCTFIME UI. Это снижает шум и повышает точность слежки.

Конфигурация вредоноса (пароль связи, адреса серверов, флаги активности функций) шифруется алгоритмом AES-128 с использованием ключа, производного от строки "!221aeAescde##2aefseseppl^12". Зашифрованный файл сохраняется в каталоге %LOCALAPPDATA%\Microsoft\Internet Explorer под случайным именем с расширением .ent. При перезапуске системы NarwhalRAT восстанавливает свою конфигурацию из этого файла.

Сходство атаки с предыдущей кампанией, описанной Genians в мае 2025 года, очень велико. В обоих случаях использовались одинаковые HWP-документы-приманки с одним и тем же последним автором "Lailey", совпадающая структура LNK-обфускации, BAT-скрипты с подстановкой переменных, Python-загрузчик, маскировка под .cat и планировщик задач. Поэтому эксперты связывают новую активность с группой APT37.

Последствия такой атаки для организации крайне серьёзны: утечка конфиденциальных данных (переписка, файлы с USB, скриншоты), компрометация учётных записей и возможность удалённого выполнения произвольных команд. Из-за бесфайловой загрузки вредонос может долго оставаться незамеченным. Основная рекомендация - усиление политик EDR (систем обнаружения и реагирования на конечных точках), способных анализировать цепочки поведения: запуск LNK → cmd → PowerShell → нестандартное использование curl.exe и tar.exe → создание задач в планировщике → подозрительное выделение RWX-памяти → исходящие соединения с pCloud и корейскими доменами. Только комплексный мониторинг событий позволит своевременно выявить подобные многоступенчатые атаки.

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

IPv4

  • 121.254.222.10
  • 121.254.222.80
  • 211.239.157.126
  • 218.150.78.198
  • 218.150.78.231
  • 61.100.9.206

Domains

  • crwellfood.com
  • daehoat.com
  • fe01.co.kr
  • novel21.co.kr
  • webhostingkorea.com

MD5

  • 3715092aa00f380cefe8b4d2eddb7d08
  • 7cef19f9c4480adac0cd4702ff98f46c
  • 7eb9cee1f696727752169f25cf79a338
  • b6b0602310bb2d4360c52685119aac1b

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