В ходе анализа недавней атаки кибершпионов XDSpy, направленной на российскую и приднестровскую компании, был обнаружен еще один инструмент, получивший название XDSpy.CHMDownloader. Напомним, что 26 июля злоумышленниками было отправлено письмо с темой: “Договоренности, по поручению начальника”. В этот же день на платформу VirusTotal были загружены RAR-архивы через Web-интерфейс из России и Молдовы, предположительно, организации из этих стран и были целями рассылок.
RAR-архив содержит CHM-файл (HTMLHelp (Microsoft Compiled HTML Help)). Например, архив “dogovorennosti_19-07-2024.rar” содержит файл “dogovorennosti_19-07-2024.chm”:
XDSpy.CHMDownloader
CHM-файл является вредоносной программой класса загрузчик (downloader), классифицируемый нами как XDSpy.CHMDownloader.
В CHM-файле находятся служебные файлы, HTM-файл, содержащий вредоносный код, а также файл-приманка в виде изображения JPG. Пример содержимого CHM-файла:
При запуске CHM-файла демонстрируется следующее окно, содержащее информацию о том, что некий документ якобы содержит конфиденциальные данные. Чтобы продолжить исполнение вредоносной программы, пользователю необходимо разрешить выполнение элементов ActiveX.
Функциональные возможности XDSpy.CHMDownloader:
Демонстрация файла-приманки, являющегося JPG-изображением (пример: umUArAREhh.jpg).
Создание Batch-файла в каталоге %Windows%Tasks (пример: «C:WindowsTaskspeKbAEesxt.cmd»).
Запуск созданного Batch-файла, которому передается 4 аргумента: — сетевой адрес, с которого загружается полезная нагрузка (на момент исследования файл полезной нагрузки был недоступен) (пример: «hxxps://sbordokumentov[.]com/snirboubd/?n=0fa7HF8H1g7nUYF»); — путь, куда сохраняется загруженная полезная нагрузка (пример: «C:ProgramDataMicrosoftDeviceSyncuvxkhvso»); — строка «User-Agent» и ее значение заголовка User-Agent (пример: «Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)»).
Проверка существования загруженной полезной нагрузки в скомпрометированной системе. Если файла полезной нагрузки нет, происходит выполнение действия в п.5. В случае, если файл полезной нагрузки существует, выполняются следующие действия: — копирование файла полезной нагрузки из каталога %ProgramData%MicrosoftDeviceSync в каталог %ProgramData%USOSharedLogs, к имени файла полезной нагрузки добавлено расширение .exe (пример: WfCvDJZkGO.CopyFile(«C:ProgramDataMicrosoftDeviceSyncuvxkhvso», «C:ProgramDataUSOSharedLogsuvxkhvso.exe», true)); — проверка наличия файла полезной нагрузки с расширением .exe в каталоге %ProgramData%USOSharedLogs. Если данный файл существует, происходит создание LNK-файла (ярлыка) в каталоге автозагрузки, который отвечает за запуск %ProgramData%USOSharedLogs[payload_name].exe; — запуск загруженного файла полезной нагрузки с помощью утилиты forfiles.exe (пример: C:WindowsSystem32forfiles.exe /P C:WindowsSystem32 /M write.exe /C «C:ProgramDataMicrosoftDeviceSyncuvxkhvso»);
Удаление Batch-файла, если он существует.
Стоит отметить, что строки в HTM-файле зашифрованы алгоритмом XOR с уникальным однобайтовым ключом. В функцию, отвечающую за расшифровку строк, передаются зашифрованная HEX-строка и XOR-ключ. Функция расшифровки и пример ее вызова в HTM-файле представлены на скриншоте ниже:
Файл-приманка (SHA-256: 211f57241221163c87c20363fe7d18183d5ddf67ca056d1daf5b102ef303efe0):
Пример содержимого Batch-файла:
Дополнительные индикаторы компрометации
Пути к файлам:
%Windows%Tasks[a-zA-Z]{10}.cmd:
%Windows%TaskspeKbAEesxt.cmd
%Windows%TasksjGFgeuQzyq.cmd
%Windows%TasksawKYcNYRDX.cmd
%AppData%RoamingMicrosoftWindowsStart MenuProgramsStartup[a-zA-Z]{10}.lnk:
%AppData%RoamingMicrosoftWindowsStart MenuProgramsStartuppeKbAEesxt.lnk
%AppData%RoamingMicrosoftWindowsStart MenuProgramsStartupjGFgeuQzyq.lnk
%AppData%RoamingMicrosoftWindowsStart MenuProgramsStartupawKYcNYRDX.lnk
%ProgramData%MicrosoftDeviceSyncuvxkhvso
%ProgramData%USOSharedLogsuvxkhvso.exe
Источник: habr.com