Содержание:
- Введение
- Профиль угрозы
- Цепочка заражения
- Кампания-1
- Анализ приманки:
- Технический анализ
- Отпечаток вредоносного ПО ROKRAT
- Кампания-2
- Анализ приманки
- Технический анализ
- Подробный анализ декодированного tony31.dat
- Заключение
- Seqrite Протекторы
- MITRE Att&ck:
- МНК
Введение:
Seqrite В лаборатории обнаружена кампания, в которой злоумышленники используют «국가정보연구회 소식지 (52호)» (National Intelligence Research Society Newsletter – Issue 52) в качестве приманки для заманивания жертв. Злоумышленники распространяют этот PDF-файл, выглядящий вполне легитимно, вместе со вредоносным LNK-файлом (ярлыком Windows) под названием 국가정보연구회 소식지(52호).pdf. LNK-файл обычно добавляется к тому же архиву или маскируется под связанный файл. После запуска LNK-файла происходит загрузка полезной нагрузки или выполнение команды, что позволяет злоумышленнику скомпрометировать систему.
Основными целями, по всей видимости, являются лица, связанные с Национальной ассоциацией разведывательных исследований, включая учёных, бывших государственных чиновников и исследователей, упомянутых в бюллетене. Вероятно, целью злоумышленников является кража конфиденциальной информации, обеспечение постоянного присутствия или шпионаж.
Профиль угрозы:
Наше расследование выявило причастность к кибератакам группировки APT-37, также известной как InkySquid, ScarCruft, Reaper, Group123, TEMP. Reaper или Ricochet Chollima. Эта группировка — поддерживаемая северокорейским государством группа кибершпионажа, действующая как минимум с 2012 года. Хотя её основная деятельность сосредоточена на целях в Южной Корее, её деятельность также затронула такие страны, как Япония, Вьетнам и различные страны Азии и Ближнего Востока. APT-37 особенно известна проведением сложных фишинговых атак.
Цели ниже Страна:
- Южная Корея
- Япония
- Вьетнам
- Россия
- Непал
- Китай
- Индия
- Румыния
- Кувейт
- Ближний Восток
Было замечено, что APT-37 нацелен на Северную Корею в ходе целенаправленных фишинговых кампаний с использованием различных ложных документов. К ним относятся такие файлы, как « 러시아 전장에 투입된 인민군 장병들에게 .hwp» ( Северокорейским солдатам, развернутым на поле боя в России.hwp ), « 국가정보와 방첩 원고 .lnk» ( National Intelligence and Counterintelligence Manuscript.lnk ), а также самый последний образец, который подробно анализируется в этом отчете.
Инфекционная цепь:


Кампания –1:
Анализ приманки:
Документ «국가정보연구회 소식지 (52호)» («Информационный бюллетень Национального общества исследований разведки — выпуск 52») — это ежемесячный или периодический внутренний информационный бюллетень, выпускаемый южнокорейской исследовательской группой, занимающейся вопросами национальной разведки, трудовых отношений, безопасности и энергетики.

В документе содержится информация о предстоящих семинарах, мероприятиях, темах исследований и организационных обновлениях, включая информацию о финансовых взносах и напоминания. В нём отражены текущие академические и политические дискуссии по вопросам национальной безопасности, труда и отношений между Северной и Южной Кореей, с учётом текущих событий и технологических достижений, таких как искусственный интеллект.
Злоумышленники использовали подставной документ в качестве инструмента для проведения целевых атак, распространяя его среди конкретных органов власти в рамках более масштабной фишинговой кампании. Эта тактика эксплуатировала доверие и позволяла получить несанкционированный доступ к конфиденциальным системам или информации.

Целевые государственные секторы:
- Национальная ассоциация разведывательных исследований (국가정보연구회)
- Университет Квангвун
- Корейский университет
- Институт стратегии национальной безопасности
- Центральный научно-исследовательский институт экономики труда
- Ассоциация энергетической безопасности и экологии
- Ассоциация содействия духу национального спасения Республики Корея
- Янцзихве (организатор мемориальной конференции)
- Стратегия интеграции Кореи.
Технический анализ:
После загрузки LNK-файла с именем 국가정보연구회 소식지 (52 호 ).pdf.lnk и его выполнения в нашей тестовой среде, мы наблюдали следующую цепочку выполнения с помощью Procmon.

Файл LNK содержит встроенные скрипты PowerShell, которые извлекают и выполняют дополнительные полезные данные во время выполнения.

Этот скрипт ищет файлы .lnk, открывает их в двоичном режиме, считывает из них встроенные данные полезной нагрузки, извлекает содержимое нескольких файлов (включая замаскированный .pdf и дополнительные полезные данные), записывает их на диск (например, aio0.dat, aio1.dat и aio1+.3.b+la+t).
Этот блок считывает определенные двоичные фрагменты из смещений, указанных в файле .lnk:
- Смещение 0x0000102C: вероятно, поддельный PDF-файл (приманка)
- Смещение 0x0007EDC1: полезная нагрузка №1 (dat).
- Смещение 0x0015A851: строка (команды/скрипт)
- Смещение 0x0015AED2: другая полезная нагрузка (aio1+3.b+la+t)
Он хранит их как:
- $pdfPath – сохранен как .pdf-приманка
- $exePath = dat – возможно, двоичный загрузчик
- $executePath = aio1+3.b+la+t – финальная вредоносная нагрузка


Эта команда запускает пакетный скрипт ( aio03.bat ), который помещается в папку %TEMP%.
Согласно нашему анализу, атака начинается с вредоносного файла .lnk, содержащего скрытые полезные данные по определённым двоичным смещениям. При запуске PowerShell сканирует такие файлы .lnk, извлекает обманный PDF-файл и три встроенных полезных данных (aio1.dat, aio2.dat и aio1+3.b+la+t) и сохраняет их в %TEMP%. Затем запускается пакетный скрипт (aio03.bat), запускающий следующий этап, на котором PowerShell считывает и декодирует скрипт в кодировке UTF-8 из aio02.dat и запускает его в памяти с помощью Invoke-Command. Это приводит к выполнению aio1.dat, последнего полезного файла, завершая многоэтапную цепочку заражения.

Этот скрипт PowerShell ai02.dat представляет собой заключительный этап выполнения вредоносной программы в оперативной памяти и является наглядным примером выполнения без использования файлов с помощью PowerShell и внедрения рефлексивных DLL-библиотек.

Он пытается открыть файл aio01.dat (ранее помещенный в %TEMP%) и считывает его двоичное содержимое в массив байтов $exeFile.
$k='5′
для ($i=0; $i -lt $len; $i++) {
$newExeFile[$i] = $exeFile[$i] -bxor $k[0]
}
Полезная нагрузка зашифрована с помощью операции XOR с использованием однобайтового ключа (0x35, что соответствует символу ASCII '5'). Этот цикл декодирует зашифрованный двоичный файл в $newExeFile.
Файл aio02.dat содержит скрипт PowerShell, который выполняет в памяти финальную полезную нагрузку (aio01.dat). Он считывает зашифрованный с помощью XOR двоичный файл (aio01.dat) из каталога %TEMP%, расшифровывает его с помощью однобайтового ключа XOR (0x35) и использует функции Windows API (GlobalAlloc, VirtualProtect, CreateThread, WaitForSingleObject) для выделения памяти, создания исполняемого файла, внедрения декодированного двоичного файла и его выполнения — всё это без сохранения других файлов на диск.
Подробный анализ извлеченного EXE-файла:
Отпечаток вредоносного ПО ROKRAT
Функция формирует набор строк отпечатков хоста , содержащий:
- Архитектурный флаг (WOW64 или нет)
- имя компьютера
- Имя пользователя
- Путь к двоичному файлу вредоносного ПО
- BIOS / Информация о производителе

Анти ВМ
Эта функция часто проверяет, работает ли система в виртуальной машине , песочнице или аналитической среде. В нашем случае она используется со следующими компонентами:
«C:\\Program Files\\VMware\\VMware Tools\\vmtoolsd.exe»


Функция sub_40EA2C, вероятно, используется для проверки среды или привилегий. Она пытается создать и удалить файл .dat со случайным именем в системном каталоге Windows, что обычно требует прав администратора. Успешное выполнение этой операции предполагает, что программа запущена в реальной пользовательской среде с достаточными правами. Однако в случае неудачи это может указывать на использование ограниченной среды, например, песочницы или виртуальной машины, используемой для анализа вредоносного ПО.
Снимок экрана
Функция sub_40E40B, по-видимому, делает снимок экрана, обрабатывает изображение в памяти и, возможно, кодирует или передает данные изображения.

Команды РОКРАТ
Каждая команда идентифицируется одним символом. Некоторые команды требуют аргументов, которые указываются сразу после символа идентификатора команды. После определения правильной команды код анализирует операторы в соответствии с типом команды. В следующей таблице перечислены команды, обнаруженные нами в ROKRAT, а также их ожидаемые аргументы и действия:

Команда 1–4
Шелл-код извлекается с сервера C2 и выполняется через CreateThread. Статус выполнения — «Успешно» или «Ошибка» — регистрируется в файле r.txt. Параллельно с этим собирается подробная информация о системе компьютера жертвы и передаётся обратно на командный сервер (C&C).

Команда 5–9
Вредоносная программа сначала инициализирует данные облачного провайдера, что, вероятно, является частью настройки связи с командным сервером (C2). Затем она загружает PE-файл (Portable Executable) с C2-сервера. Загруженный файл сохраняется под именем KB400928_doc.exe, соответствующим соглашению об именовании, использованному на предыдущих этапах. После локального сохранения файла вредоносная программа немедленно запускает его.

Команда C – Эксфильтрация файлов
Поиск файлов по указанному пути к файлу или каталогу на основе предоставленных расширений — всех файлов, распространенных типов документов (например, doc, xls, ppt, txt, m4a, amr, pdf, hwp) или пользовательских расширений. Найденные файлы затем загружаются на сервер управления и контроля.

Команда E – Выполнить команду
Выполняет указанную команду с помощью cmd.exe, позволяя удаленно выполнять произвольные системные команды.

Команда H – Перечисление файлов на дисках
Собирает информацию о файлах и каталогах с доступных дисков, выполняя команду dir /A /S : >> «%temp%\\_.TMP», которая рекурсивно выводит список всех файлов и папок и сохраняет вывод во временном файле.

Команда «i» — отметить данные как готовые к эксфильтрации
Собранные данные готовы к отправке на сервер управления и контроля (C2).
Команда «j» или «b» — прекращение выполнения вредоносного ПО
Запускает процедуру завершения работы, в результате чего вредоносная программа останавливает все операции и завершает свой процесс.
C2C-соединение
RokRat использует облачные сервисы, такие как pCloud, Yandex и Dropbox, в качестве каналов управления и контроля (C2). Он может извлекать украденные данные, извлекать дополнительные полезные данные и выполнять удаленные команды с минимальным обнаружением.
| Разработчик | Функция | Запутанный URL |
| Dropbox | список_папок | hxxps://api.dropboxapi[.]com/2/files/list_folder |
| загружать | hxxps://content.dropboxapi[.]com/2/files/upload | |
| скачать | hxxps://content.dropboxapi[.]com/2/files/download | |
| удалять | hxxps://api.dropboxapi[.]com/2/files/delete | |
| pCloud | списокпапок | hxxps://api.pcloud[.]com/listfolder?path=%s |
| загрузитьфайл | hxxps://api.pcloud[.]com/uploadfile?path=%s&filename=%s&nopartial=1 | |
| получитьфайлссылку | hxxps://api.pcloud[.]com/getfilelink?path=%s&forcedownload=1&skipfilename=1 | |
| удалить файл | hxxps://api.pcloud[.]com/deletefile?path=%s | |
| Яндекс.Диск | список папок (ограничение) | hxxps://cloud-api.yandex[.]net/v1/disk/resources?path=%s&limit=500 |
| загружать | hxxps://cloud-api.yandex[.]net/v1/disk/resources/upload?path=%s&overwrite=%s | |
| скачать | hxxps://cloud-api.yandex[.]net/v1/disk/resources/download?path=%s | |
| навсегда удалить | hxxps://cloud-api.yandex[.]net/v1/disk/resources?path=%s&permanently=%s
|
Кампания –2:
Анализ приманки:
Злоумышленники используют этот документ, представляющий собой заявление Ким Ё Чжон, заместителя директора департамента Центрального комитета Трудовой партии Кореи (Северная Корея), датированное 28 июля и переданное Центральным телеграфным агентством Кореи (ЦТАК).

Это заявление знаменует собой резкое и официальное неприятие Северной Кореей любых попыток примирения со стороны Южной Кореи, особенно при президенте Ли Чжэ Мёне. В заявлении резко критикуются попытки Юга улучшить межкорейские отношения, которые называются бессмысленными и лицемерными, и утверждается:

Северная Корея также не выразила заинтересованности в каком-либо будущем диалоге или предложениях со стороны Южной Кореи, заявив, что страна больше не будет участвовать в переговорах или сотрудничестве.
В заключение заявления подтверждается враждебная позиция Северной Кореи по отношению к Южной Корее и подчеркивается, что эпоха национального единства закончилась, и будущие отношения будут основаны на конфронтации, а не на примирении.
Целевая правительственная организация:
- Правительство Южной Кореи (李在明政府 - администрация Ли Джэ Мёна)
- Министерство объединения (統一部)
- Трудовая партия Кореи (朝鮮労働党中央委員会)
- Центральное информационное агентство Кореи (KCNA / 朝鮮中央通信)
- Юг – Военный альянс Южной Кореи (韓米同盟)
- Азиатско-Тихоокеанское экономическое сотрудничество (АТЭС)
Технический анализ:
При анализе второго LNK-файла, который мы обнаружили во время поиска на Virus Total, мы обнаружили ту же цепочку выполнения, что и ранее при запуске файла.

LNK-файл помещает в каталог %TEMP% файл-обманку с именем file.doc и создаёт следующие артефакты. После помещения этих файлов LNK-файл удаляет себя из родительского каталога, чтобы избежать обнаружения и затруднить криминалистический анализ.
Как и в предыдущей кампании, здесь используется тот же набор файлов. Однако на этот раз файлы были переименованы — вероятно, случайным образом или произвольно — чтобы избежать обнаружения или затруднить анализ.

Заглянув в файл Bat, который называется tony33.bat,

Похоже, что этот файл сильно запутан и содержит код выполнения PowerShell. После декодирования его содержимое можно увидеть на снимке экрана ниже.

Файл tony32.dat содержит полезную нагрузку PowerShell, закодированную в формате Base64, которая служит основным вредоносным компонентом атаки. Сопутствующий загрузчик .bat/PowerShell предназначен для чтения этого файла из временного каталога системы, двукратного декодирования его содержимого: сначала преобразование исходных байтов в строку UTF-8, затем обратное декодирование этой строки в кодировке Base64 в исполняемый код PowerShell, и, наконец, выполнение декодированной нагрузки непосредственно в памяти. Эта техника выполнения без файла позволяет злоумышленникам запускать вредоносный код без записи конечного скрипта на диск, что затрудняет обнаружение и блокировку этой активности традиционными решениями безопасности.
При анализе и декодировании файла tony32.dat мы обнаружили, что файл содержит строку, закодированную в формате Base64, как показано ниже:

После расшифровки строки мы увидели, что файл представляет собой загрузчик, осуществляющий внедрение данных в память — он считывает зашифрованный с помощью XOR двоичный файл из tony31.dat, расшифровывает его и выполняет непосредственно в памяти, используя вызовы API Windows.

$exePath = $env:temp + '\tony31.dat';
$exeFile = Get-Content -path $exePath -кодирующий байт;
Загружает tony31.dat в виде необработанных байтов из системной папки Temp.
$xK = '7';
для ($i=0; $i -lt $len; $i++) {
$newExeFile[$i] = $exeFile[$i] -bxor $xk[0];
Каждый байт декодируется с помощью XOR-кода 0x37 (ASCII '7').
$buffer = $b::GlobalAlloc(0x0040, $byteCount + 0x100);
$a90234sb::VirtualProtect($buffer, $byteCount + 0x100, 0x40, [ref]$old);
Выделяет буфер памяти с правами на исполнение.
- dat = Зашифрованный вредоносный исполняемый файл (XOR с «7»)
- Скрипт полностью расшифровывает его в памяти (файл не сбрасывается на диск)
- Использует прямые вызовы Windows API для выделения и выполнения памяти (безфайловое выполнение).

Подробный анализ декодированного tony31.dat:
При анализе извлеченного Exe-файла мы обнаружили, что эта вредоносная программа действует как дроппер/лаунчер, загружая файл с именем abs.tmp во временный каталог и загружая рекламу или дроппер с именем abs.tmp и загружая его содержимое.
Затем он выполняет полезную нагрузку через PowerShell и удаляет промежуточный файл, чтобы замести следы.
Эксфильтрация данных
Вредоносное ПО не всегда проникает в системы силой — иногда оно действует незаметно, собирая конфиденциальные данные и исчезая бесследно. В данном случае две функции, sub_401360 и sub_4021F0, работают в тандеме, выполняя скрытую процедуру извлечения данных.
Первая функция сканирует определенный временный каталог на компьютере жертвы (C:\Users\ \AppData\Local\Temp\{502C2E2E-…}), идентифицирующий все файлы, не являющиеся каталогами. Каждый обнаруженный путь к файлу затем передаётся второй функции, которая открывает файл, считывает его содержимое в память и упаковывает его в HTTP-запрос multipart/form-data в стиле браузера.
Запрос, замаскированный под загрузку PDF-файла, включает имя компьютера жертвы и временную метку и отправляется на жестко запрограммированный сервер C2 по адресу:
hxxp://daily.alltop.asia/blog/article/up2.php

После успешного извлечения файл удаляется из локальной системы, что фактически уничтожает улики и затрудняет восстановление. Этот рабочий процесс «сканирование → кража → удаление» разработан с учётом скрытности: сетевой трафик имитирует легитимную загрузку файла Chrome, добавляя строку WebKitFormBoundary и поддельный MIME-тип (application/pdf) для обхода базовых фильтров контента.
Украденные файлы могут включать кэшированные документы, токены аутентификации, загруженный контент или промежуточные файлы других вредоносных программ. Для обнаружения подобной активности специалистам по безопасности следует отслеживать исходящие HTTP-запросы POST к незнакомым доменам, отмечать несоответствия между расширениями файлов и типами MIME, а также отслеживать массовые удаления во временных каталогах.

Подключается к C2C и пытается загрузить полезную нагрузку.

Захваченный пакет подтверждает, что функции sub_4020D0 и sub_401F80 реализуют следующее: вредоносная программа создает HTTP-запрос GET к своему серверу C2 на daily.alltop.Asia, указывая на /blog/article/d2.php?downfname= &crc32= где имя файла специфично для жертвы (например, abs.tmp), а значение CRC равно нулю, после чего он отправляется с реалистичными заголовками, похожими на заголовки браузера, включая поддельные Chrome User-Agent, Accept, Language и Keep-Alive, чтобы слиться с обычным трафиком. Этот запрос отправляется через WinINet, ответ (обычно короткая команда или подтверждение) опционально сохраняется в буфере, код ненадолго засыпает, а затем отправляется второй запрос к /blog/article/del2.php?delfname= Не читая ответ, фактически отдавая серверу команду удалить подготовленный файл и уменьшить количество улик. Вместе эти функции реализуют лёгкий шаблон маяка загрузки и очистки, который использует легитимный HTTP-сеанс для маскировки вредоносного взаимодействия с командным сервером.

C2C: hxxp://daily.alltop.asia/blog/article/d2.php?downfname=abs.tmp&crc32=0
После загрузки полезной нагрузки он пытается сохранить ее под безопасным именем файла, например `abs.tmp.
После создания файла программа открывает его с помощью CreateFileW, проверяет его размер и выделяет буфер, отклоняя файлы размером более 128 МБ. Затем она считывает содержимое файла в память.
Если файл содержит данные, он вызывает `sub_402620`, который, вероятно, выполняет проверку или DE-обфускацию, например проверку на наличие магических байтов, проверку контрольной суммы или расшифровку полезной нагрузки.

После успешной проверки программа формирует командную строку PowerShell. Она инициализирует структуру `STARTUPINFOA` и обнулённую структуру `PROCESS_INFORMATION`.
Командная строка начинается с `"powershell "` и добавляет закодированную или упакованную полезную нагрузку, извлечённую из файла с помощью `sub_401280(&CommandLine[11], nSize[1], v15, nSize[1])`. Эта функция, вероятно, встраивает полезную нагрузку, используя такие методы, как кодирование Base64 или встроенный скрипт с `-EncodedCommand`.
Наконец, программа выполняет команду PowerShell через `CreateProcessA`, ждет 2 секунды (`Sleep(0x7D0)`) и удаляет `abs.tmp`, используя `DeleteFileW` для очистки следов.
Вывод:
Анализ этой кампании показывает, как APT37 (ScarCruft/InkySquid) продолжает использовать тщательно продуманные целевые фишинговые атаки, задействуя вредоносные загрузчики LNK, бесфайловое выполнение PowerShell и скрытые механизмы эксфильтрации данных. Злоумышленники целенаправленно атакуют правительственные структуры Южной Кореи, научно-исследовательские институты и академические учреждения с целью сбора разведывательной информации и долгосрочного шпионажа.
Мы назвали эту кампанию «Операция ХанКук Фантом» по двум причинам: термин «ХанКук» ( 한국 ) напрямую означает Корею в Корее, а «Фантом» отражает скрытные и уклоняющиеся методы, используемые на протяжении всей цепочки заражения, включая выполнение действий в оперативной памяти, замаскированные приманки и скрытые процедуры утечки данных. Это название отражает как стратегическую направленность , так и скрытный характер операции.
В целом операция HanKook Phantom демонстрирует постоянную угрозу, исходящую от субъектов, спонсируемых северокорейским государством, что подтверждает необходимость упреждающего мониторинга, предварительного обнаружения доставки на основе LNK и бдительности в отношении неправомерного использования облачных сервисов для командования и управления.
Seqrite Степень защиты:
- Троян.49901.GC
- троян.49897.GC
MITRE Att&ck:
| Первоначальный доступ | T1566.001 | Вложение для фишинга |
| Типы | T1059.001 | Интерпретатор команд и сценариев: PowerShell |
| T1204.001 | Казнь пользователя: вредоносная ссылка | |
| T1204.002 | Пользовательское выполнение: вредоносный файл | |
| Настойчивость | T1574.001 | Поток выполнения перехвата: DLL |
| T1547.001 | Выполнение автозапуска при загрузке или входе в систему: ключи запуска реестра / папка автозагрузки | |
| Повышение привилегий | T1055.001 | Внедрение процесса: внедрение библиотеки динамической компоновки |
| T1055.009 | Внедрение процесса: память процесса | |
| T1053.005 | Запланированная задача/задание: Запланированная задача | |
| Уклонение от защиты | T1140 | Деобфускация/декодирование файлов или информации |
| T1070.004 | Удаление индикатора: удаление файла | |
| T1027.009 | Замаскированные файлы или информация: встроенные полезные нагрузки | |
| T1027.013 | Зашифрованные файлы или информация: зашифрованный/кодированный файл | |
| Доступ к учетным данным | T1056.002 | Захват ввода: Кейлоггинг: Захват ввода в графическом интерфейсе |
| Дискавери | T1087.001 | Обнаружение учетной записи: локальная учетная запись |
| T1217 | Обнаружение информации о браузере | |
| T1083 | Обнаружение файлов и каталогов | |
| T1082 | Обнаружение системной информации | |
| | T1123 | Аудиозапись |
| T1005 | Данные из локальной системы | |
| T1113 | Захват экрана | |
| Управление и контроль | T1102.002 | Веб-служба: двунаправленная связь |
| эксфильтрации | T1041 | Эксфильтрация через канал C2 |
| Влияние | T1529 | Выключение/перезагрузка системы |
МНК:
| MD5 | Название файла |
| 1aec7b1227060a987d5cb6f17782e76e | aio02.dat |
| 591b2aaf1732c8a656b5c602875cbdd9 | aio03.bat |
| d035135e190fb6121faa7630e4a45eed | aio01.dat |
| cc1522fb2121cf4ae57278921a5965da | *.zip |
| 2dc20d55d248e8a99afbe5edaae5d2fc | tony31.dat |
| f34fa3d0329642615c17061e252c6afe | tony32.dat |
| 051517b5b685116c2f4f1e6b535eb4cb | tony33.bat |
| da05d6ab72290ca064916324cbc86bab | *.LNK |
| 443a00feeb3beaea02b2fbcd4302a3c9 | 북한이탈주민의 성공적인 남한정착을 위한 아카데미 운영.lnk |
| f6d72abf9ca654a20bbaf23ea1c10a55 | Файл 국가정보와 방첩 원고.lnk |
Авторы:
Диксит Панчал
Картик Дживани
Соумен Бирма



