Редко бывает, что какая-либо конкретная группа APT (группа, представляющая собой «развитую устойчивую угрозу») остается незамеченной в течение девяти лет, но XDSpy, ранее не задокументированная шпионская группа, действующая с 2011 года, именно такой и является. Она привлекла очень мало общественного внимания, за исключением предупреждение об опасности, переданного белорусским отделением «Компьютерной группы реагирования на чрезвычайные ситуации» (CERT) в феврале 2020 года. За это время XDSpy взломала системы безопасности многих государственных учреждений и частных компаний в Восточной Европе и на Балканах.

Этот блог-пост представляет собой резюме с обновленной информацией о векторах компрометации и индикаторах компрометации по результатам нашего исследования, которое мы представили на конференции Virus Bulletin 2020 (см. полный документ и презентацию).

Объекты атак

Объекты атак группы XDSpy расположены в Восточной Европе и на Балканах, и в основном являются государственными структурами, включая министерства обороны и министерства иностранных дел, а также частные компании. На рис. 1 показано местонахождение известных жертв по данным телеметрии ESET.

Рис. 1. Карта, где находятся жертвы XDSpy, по данным телеметрии ESET (Беларусь, Молдова, Россия, Сербия и Украина)

Атрибуция

После тщательного исследования нам не удалось связать XDSpy ни с одной из общеизвестных групп APT:

  • Мы не обнаружили сходства кода с другими семействами вредоносных программ.
  • Мы не наблюдали дублирования в сетевой инфраструктуре.
  • Нам не известно ни о какой другой группе APT, нацеленной на эти конкретные страны и отрасли.

Более того, группа действует более девяти лет. Поэтому, если бы такая связь существовала, мы полагаем, она было бы замечена, и группа была бы раскрыта давным-давно.

Мы предполагаем, что ее разработчики могут работать в часовом поясе UTC+2 или UTC+3, который также является часовым поясом большинства объектов атак. Мы также обратили внимание, что они работают только с понедельника по пятницу, что говорит о профессиональном характере их деятельности.

Векторы компрометации

Для своих атак операторы XDSpy, похоже, в основном используют целевые фишинговые электронные письма. Фактически, это единственный вектор компрометации, который мы наблюдали. При этом электронные письма имеют небольшие отличия: одни содержат вложения, другие – ссылку на вредоносный файл. Первый уровень вредоносного файла или вложения обычно представляет собой архив ZIP или RAR.

На рис. 2 показан пример целевого фишингового электронного письма, отправленного XDSpy в феврале 2020 года.

Рис. 2. Фишинговое электронное письмо, отправленное операторами XDSpy в феврале 2020 года

Ссылка указывает на ZIP-архив, содержащий файл LNK, при этом никаких документов-приманок не передается. Когда жертва дважды щелкает по этому файлу, LNK загружает дополнительный сценарий, который устанавливает XDDown, основной вредоносный компонент.

Мы продолжили отслеживать группу и после отправки нашего документа в Virus Bulletin. После паузы, длившейся с марта по июнь 2020 года, атаки возобновились. В конце июня 2020 года операторы активизировали свою игру, используя уязвимость в Internet Explorer, CVE-2020-0968, исправленную в апреле 2020 года. Вместо доставки архива с файлом LNK командный сервер доставлял файл RTF, при открытии которого загружается файл HTML, использующий вышеупомянутую уязвимость.

CVE-2020-0968 является частью набора аналогичных уязвимостей в устаревшем обработчике JavaScript IE, обнаруженных за последние два года. В то время, когда она использовалась XDSpy, в Интернете не было никаких экспериментальных проверок этой конкретной уязвимости и было очень мало информации о ней. Мы думаем, что группа XDSpy либо купила этот эксплойт у брокера, либо разработала эксплойт «первого дня» самостоятельно, почерпнув идею на основе изучения предшествующих эксплойтов.

Интересно отметить, что этот эксплойт имеет сходство с эксплойтами, ранее использовавшимися в кампаниях DarkHotel, как показано на рис. 3. Он также практически идентичен эксплойту, использовавшемуся в Operation Domino в сентябре 2020 года, который был загружен на VirusTotal из Беларуси.

Принимая во внимание, что мы не считаем, что XDSpy связан с DarkHotel, а Operation Domino сильно отличается от XDSpy, вполне вероятно, что эти три группы имеют одного и того же брокера эксплойтов.

Рис. 3. Части кода эксплойта, включая начало, аналогичны тем, которые использовались в кампании DarkHotel, описанной JPCERT

Наконец, в 2020 году группа как минимум дважды воспользовалась шумихой вокруг COVID-19. Впервые она использовала эту тему в кампании целевого фишинга против белорусских учреждений в феврале 2020 года. Затем, в сентябре 2020 года, она повторно использовала эту тему против русскоязычных объектов атак. В архиве находился вредоносный файл сценария Windows (WSF), загружавший XDDown, как показано на рис. 4, и группа использовала официальный сайт rospotrebnadzor.ru в качестве приманки, как показано на рис. 5.

Рис. 4. Часть сценария, загружающего XDDown

Рис. 5. Часть сценария, открывающего ложный URL-адрес

Вредоносные компоненты

На рис. 4 показана архитектура вредоносного компонента в сценарии, когда атака происходит через файл LNK, как это было в феврале 2020 года.

Рис. 6. Архитектура вредоносного компонента XDSpy. XDLoc и XDPass сбрасываются в произвольном порядке.

XDDown является основным вредоносным компонентом и является исключительно загрузчиком. Он сохраняется в системе с помощью традиционной клавиши Run. Он загружает дополнительные плагины с жестко запрограммированного командного сервера, используя протокол HTTP. Ответы HTTP содержат двоичные файлы PE, зашифрованные с помощью жестко запрограммированного двухбайтового ключа XOR.

В ходе нашего исследования мы обнаружили следующие плагины:

  • XDRecon: собирает основную информацию о машине жертвы (имя компьютера, текущее имя пользователя и серийный номер тома основного диска).
  • XDList: сканирует диск C: ищет интересующие файлы (.accdb, .doc, .docm,.docx, .mdb, .xls, .xlm, .xlsx, .xlsm, .odt, .ost, .ppt, .pptm, .ppsm, .pptx, .sldm, .pst, .msg, .pdf, .eml, .wab) и извлекает пути к этим файлам. Также может делать снимки экрана.
  • XDMonitor: похож на XDList. Он также отслеживает съемные диски для извлечения файлов с интересующим расширением.
  • XDUpload: извлекает жестко запрограммированный набор файлов из файловой системы на командный сервер, как показано на рис. 5. Пути отправляются на командные серверы XDList и XDMonitor.

Рис. 7. Цикл загрузки жестко запрограммированного набора файлов на командный сервер (частично отредактировано)

  • XDLoc: собирает ближайшие SSID (например, точки доступа Wi-Fi), вероятно, для определения географического местоположения компьютеров жертв.
  • XDPass: захватывает сохраненные пароли из различных приложений, таких как веб-браузеры и почтовые программы.

Более подробную информацию о различных вредоносных компонентах можно найти в техническом документе.

Выводы

XDSpy – это кибершпионская группа, которой в основном удается оставаться не обнаруженной более девяти лет, хотя в последние несколько месяцев группа была очень активна. В основном ее интересует похищение документов у государственных структур в Восточной Европе и на Балканах. Этот выбор объектов атак довольно необычен и делает ее интересной для отслеживания.

Техническая подготовка группы немного варьируется. В течение девяти лет ей использовалась одна и та же базовая архитектура вредоносных компонентов, но недавно также отмечено использование уязвимости, исправленной поставщиком, но для которой нет общеизвестной экспериментальной проверки, так называемого эксплойта «одного дня».

По любым вопросам или для отправки образцов материалов по теме свяжитесь с нами по адресу: threatintel@eset.com.

Особая благодарность Фрэнсису Лабеллю за его работу над этим исследованием.

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

Полный список индикаторов компрометации (IoC) и образцы можно найти в нашем Архиве GitHub.

Вредоносные компоненты

SHA-1Имя обнаружения ESETОписание
C125A05CC87EA45BB5D5D07D62946DAEE1160F73JS/TrojanDropper.Agent.OAZЦелевое фишинговое электронное письмо (2015)
99729AC323FC8A812FA2C8BE9AE82DF0F9B502CALNK/TrojanDownloader.Agent.YJЗагрузчик вредоносного LNK
63B988D0869C6A099C7A57AAFEA612A90E30C10FWin64/Agent.VBXDDown
BB7A10F816D6FFFECB297D0BAE3BC2C0F2F2FFC6Win32/Agent.ABQBXDDown (самый старый известный образец)
844A3854F67F4F524992BCD90F8752404DF1DA11Win64/Spy.Agent.CCXDRecon
B333043B47ABE49156195CC66C97B9F488E83442Win64/Spy.Agent.CCXDUpload
83EF84052AD9E7954ECE216A1479ABA9D403C36DWin64/Spy.Agent.CCXDUpload
88410D6EB663FBA2FD2826083A3999C3D3BD07C9Win32/Agent.ABYLXDLoc
CFD43C7A993EC2F203B17A9E6B8B392E9A296243Win32/PSW.Agent.OJSXDPass
3B8445AA70D01DEA553A7B198A767798F52BB68ADOC/Abnormal.VВредоносный файл RTF, загружающий эксплойт CVE-2020-0968
AE34BEDBD39DA813E094E974A9E181A686D66069Win64/Agent.ACGXDDown
5FE5EE492DE157AA745F3DE7AE8AA095E0AFB994VBS/TrojanDropper.Agent.OLJВредоносный сценарий (сентябрь 2020 года)
B807756E9CD7D131BD42C2F681878C7855063FE2Win64/Agent.AEJXDDown (самый последний на момент написания документа)

Имена файлов / Пути

%APPDATA%\Temp.NET\archset.dat
%APPDATA%\Temp.NET\hdir.dat
%APPDATA%\Temp.NET\list.dat
%TEMP%\tmp%YEAR%%MONTH%%DAY%_%TICK_COUNT%.s
%TEMP%\fl637136486220077590.data
wgl.dat
Windows Broker Manager.dat
%TEMP%\Usermode COM Manager.dat
%TEMP%\Usermode COM Manager.exe
%APPDATA%\WINinit\WINlogon.exe
%APPDATA%\msprotectexp\mswinexp.exe
%APPDATA%\msvdemo\msbrowsmc.exe
%APPDATA%\Explorer\msdmcm6.exe
%APPDATA%\Explorer\browsms.exe

Сеть

Использовалась в 2019–2020 гг.

downloadsprimary[.]com
filedownload[.]email
file-download[.]org
minisnowhair[.]com
download-365[.]com
365downloading.com
officeupdtcentr[.]com
dropsklad[.]com
getthatupdate[.]com
boborux[.]com
easytosay[.]org
daftsync[.]com
documentsklad[.]com
wildboarcontest[.]com
nomatterwhat[.]info
maiwegwurst[.]com
migration-info[.]com
jerseygameengine[.]com
seatwowave[.]com
cracratutu[.]com
chtcc[.]net
ferrariframework[.]com

Старая сетевая инфраструктура

62.213.213[.]170
93.63.198[.]40
95.215.60[.]53
forgeron[.]tk
jahre999[.]tk
omgtech.000space[.]com
podzim[.]tk
porfavor876[.]tk
replacerc.000space[.]com
settimana987[.]tk

Методология MITRE ATT&CK

Примечание: Эта таблица составлена с использованием версии 7 инфраструктуры MITRE.

Тактика Идентификатор Название Описание
Получение первоначального доступа T1566.001 Фишинг: целевые фишинговые вложения XDSpy отправляет целевые фишинговые электронные письма с вредоносным вложением.
  T1566.002 Фишинг: целевые фишинговые ссылки XDSpy отправляет целевые фишинговые электронные письма со ссылкой на вредоносный архив.
Выполнение T1203 Выполнение с помощью эксплойтов XDSpy использует уязвимость (CVE-2020-0968) в Internet Explorer (вызываемую вредоносным файлом RTF).
  T1204.001 Выполнение пользователем: вредоносные ссылки XDSpy заманивает объекты атаки загружать вредоносные архивы, содержащие вредоносные файлы, такие как LNK.
  T1204.002 Выполнение пользователем: вредоносные файлы XDSpy заманивает объекты атаки загружать вредоносные файлы, такие как LNK или RTF.
Закрепление T1547.001 Выполнение автозапуска при загрузке или входе в систему: ключи запуска реестра / папка запуска XDDownload закрепляется с помощью запуска Run.
Обнаружение T1033 Обнаружение владельца / пользователя системы XDRecon отправляет имя пользователя на командный сервер.
  T1082 Обнаружение системной информации XDRecon отправляет имя компьютера и серийный номер тома основного диска на командный сервер.
  T1083 Обнаружение файлов и каталогов XDList и XDMonitor отслеживают локальную систему и съемный диск. Список интересующих путей, который соответствует списку жестко заданных расширений, отправляется на командный сервер.
Сбор данных T1005 Данные из локальной системы XDUpload извлекает файлы с локального диска. Пути к загружаемым файлам жестко запрограммированы в вредоносных образцах.
  T1025 Данные со съемных носителей XDMonitor извлекает файлы со съемных дисков.
  T1113 Захват экрана XDList, XDMonitor и XDUpload делают снимки экрана и отправляют их на командный сервер.
  T1119 Автоматизированный сбор XDMonitor извлекает файлы со съемных дисков с определенными расширениями.
XDUpload извлекает локальные файлы, расположенные по одному из путей, жестко заданных во вредоносных образцах.
Командование и управление T1071.001 Протокол прикладного уровня: веб-протоколы Для командования и управления XDSpy использует HTTP.
  T1573.001 Зашифрованный канал: симметричная криптография XDDownload загружает дополнительные компоненты, зашифрованные с помощью 2-байтового статического ключа XOR.
Эксфильтрация или утечка данных T1020 Автоматизированная эксфильтрация XDMonitor и XDUpload автоматически извлекают собранные файлы.
  T1041 Эксфильтрация через канал управления (C2) XDSpy извлекает похищенные данные по каналу управления.

Источник: Welivesecurity