Light mode

APT-магия в зоне российско-украинского конфликта

25 минут
  • #APT
  • #CloudWizard
  • #Prikormka
  • #Bugdrop
  • #PowerMagic
  • #CommonMagic

В октябре 2022 г. наша команда Глобального центра исследований и анализа угроз (GReAT) подразделения Threat Research анализировала атаки на транспортные, правительственные и сельскохозяйственные организации в Донецке, Луганске и Крыму. В процессе мы обнаружили несколько неприметных, но, как оказалось в дальнейшем, крайне интересных вредоносных компонентов.

В этой статье мы — исследователи ИБ-угроз GReAT Леонид Безвершенко и Георгий Кучерин — расскажем об исследовании, которое объединило несколько APT-кампаний в зоне российско-украинского конфликта, а также в западной и центральной частях Украины и вылилось в целую «магическую» историю.
 

Глава 1. Обыкновенная магия

В октябре 2022 г. мы обнаружили несколько активных заражений вредоносными PowerShell-скриптами. Атаки были направлены на уже упомянутые правительственные, сельскохозяйственные и транспортные организации. Нашей задачей было установить полные цепочки заражения.

Согласно данным нашей телеметрии, все жертвы скачали уникальные ZIP-файлы, которые мимикрировали под архивы с законодательными актами и другими документами от госорганов.

Пользователи скачивали их с двух доменов:

  • webservice-srv[.]online;
  • webservice-srv1[.]online.

На тот момент мы не могли однозначно ответить на вопрос, как жертвы попадают на эти домены, но предположили, что в атаках использовался целевой фишинг — рассылки по электронной почте.

Вредоносные ZIP-архивы содержали по два файла. Первый — легитимный PDF без какого-либо «зла». При этом в тексте PDF упоминалось название второго документа из архива. Он представлял собой файл с двойным расширением — LNK. По сути, это классическая история с ярлыком Windows, содержащим вредоносный код.

1.jpg
Рисунок 1. Архив с вредоносными файлами

При открытии LNK-файла срабатывала ссылка на загрузку и установку вредоносного инсталлятора attachment.msi с удаленного хоста (чуть позже мы о нем поговорим). Жертва ничего не замечала, поскольку после установки вредоносного пакета мгновенно открывался настоящий документ.

2.jpg
Рисунок 2. Схема заражения устройства жертвы

Нам удалось найти несколько документов-приманок:

3.jpg
Рисунок 3. Пример документа-приманки

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

4.jpg
Рисунок 4. Таймлайн заражений

Перейдем к техническим деталям цепочки заражения.

Stage 0. Инсталлятор

Внутри attachment.msi находятся три файла:

  • service_pack.dat — зашифрованный следующий стейдж;
  • runservice_pack.vbs — декриптор, который расшифровывает и запускает service_pack.dat;
  • легитимный документ, который отображается жертве, чтобы она ничего не заподозрила.
5.jpg
Рисунок 5. Содержимое attachment.msi

Фактически runservice_pack.vbs — это простой скрипт, который запускает PowerShell. Вся полезная нагрузка закодирована в Base64. Внутри — декриптор на PowerShell, который читает первый файл из архива и расшифровывает при помощи операции XOR.

6.jpg
Рисунок 6. Механизм действия runservice_pack.vbs

Любопытно, что первые три операции в данном случае абсолютно бесполезны (см. выделенный фрагмент на рис. 6), поскольку исходный массив не перезаписывается. Срабатывает только последний XOR — с байтом 0xFF.

Stage 1. PowerShell-дроппер

После расшифровки файла service_pack.dat мы увидели, что следующий стейдж — не финальный. Это дроппер, который позволяет закрепиться в системе через менеджер запланированных задач. С его помощью на устройстве жертвы каждый день запускается следующая полезная нагрузка (создается scheduled-таск WindowsActiveXTaskTrigger).

7.jpg
Рисунок 7. Расшифрованный файл service_pack.dat

Stage 2. PowerMagic

Полезная нагрузка следующего этапа — сам вредоносный имплант, который получает команды от оператора. Мы назвали его PowerMagic, поскольку злоумышленники дали такое имя папке, в которую записывается имплант в коде одного из семплов.

Судя по образцам PowerMagic, которые мы видели, в качестве командного сервера использовались OneDrive или Dropbox. Зловред получал команды из облачной папки и загружал в нее все результаты — по пути, который содержит идентификатор жертвы и временную метку: 

/$AppDir/$ClientResultDir/<UUID зараженного компьютера>.<временная метка>

Stage X. CommonMagic

Однако одним PowerShell в настоящей целевой атаке не обойтись. У всех жертв, зараженных PowerMagic, мы обнаружили более сложный вредоносный имплант — фреймворк, который мы назвали CommonMagic. Он состоит из нескольких модулей — EXE-файлов, работающих в отдельном процессе. Эти процессы взаимодействуют между собой при помощи пайпов (именованных каналов). Кроме того, мы обнаружили модули для снятия скриншотов с экрана жертвы, кражи файлов с USB-носителей и др.

8.jpg
Рисунок 8. Фреймворк CommonMagic

Скачанную у жертв информацию шифровал отдельный модуль. Данные передавались в него через пайп, шифрование осуществлялось с помощью RC5 (реализация из библиотеки RC5Simple). После этого информация отправлялась по пайпу в модуль для эксфильтрации, который загружал ее в облачное хранилище OneDrive.

Картина прояснялась, но по итогам анализа PowerMagic и CommonMagic оставалось непонятно, какая именно группировка стоит за этими атаками. В марте 2023 г. мы опубликовали наше исследование в блоге на Securelist и в Twitter.

9.jpg
Рисунок 9. Пост об исследовании в Twitter

Как оказалось, PowerMagic и CommonMagic анализировали не только мы. Пост в Twitter прокомментировал ресечер Хоссейн Джази (Hossein Jazi). До недавнего времени он работал в Malwarebytes: команда Джази проводила расследование той же вредоносной кампании, однако отчет им опубликовать не удалось. По словам самого ресечера, причина была в «чувствительной атрибуции».

10.jpg
Рисунок 10. Комментарий исследователя

Впоследствии цепочка пополнилась данными от других компаний. Например, благодаря коллегам из Positive Technologies нам удалось подтвердить гипотезу о том, что первоначальное заражение осуществляется через фишинговые письма, которые рассылаются якобы от лица госорганов.

В мае 2023-го Malwarebytes все же решилась опубликовать свое исследование несмотря на «чувствительность атрибуции». В отчете мы обнаружили много интересного: к примеру, коллеги нашли установщик PowerMagic 2020 г. (MSI-файл), а также дополнительные приманки из 2021-го.

11.jpg
Рисунок 11. Установщик PowerMagic образца 2020 г.

Содержимое приманок было аналогично тому, что мы видели ранее — постановления и всевозможные законодательные акты.

12.jpg
Рисунок 12. Документы-приманки 2021 г.

Malwarebytes удалось понять, что происходит между заражением PowerMagic и последующей установкой CommonMagic. На устройствах жертв использовалась утилита Ngrok, предназначенная для проброса портов. Далее с ее помощью злоумышленники собирали информацию о жертве и устанавливали CommonMagic.

13.jpg
Рисунок 13. Утилита Ngrok

Эксперты Malwarebytes также нашли установщик CommonMagic. Он написан на PowerShell и раскладывает вредоносные модули по определенным папкам. В своем отчете мы указывали эти же директории.

14.jpg
Рисунок 14. PowerShell-установщик CommonMagic
15.jpg
Рисунок 15. Директории, в которые установщик раскладывает вредоносные модули

Интересно, что команде Malwarebytes удалось продолжительное время следить за облаком OneDrive, в которое отправлялись данные жертв. Эксперты установили, что в нем создавались папки с именами на украинском языке.

16.jpg
Рисунок 16. История команд OneDrive

Также команде Malwarebytes удалось ознакомиться с файлами, которые злоумышленники скачали у жертв.

17.jpg
Рисунок 17. Скачанные у жертв файлы

И самое главное — в облачном хранилище были скриншоты с компьютера разработчика CommonMagic, сделанные во время тестирования вредоносного модуля. В результате экспертам удалось проследить за процессом разработки и отладки вредоноса.

18.jpg
Рисунок 18. Скриншот с компьютера разработчика CommonMagic
19.jpg
Рисунок 19. Разработка и отладка CommonMagic

Казалось бы, Malwarebytes получили возможность следить за самими злоумышленниками. Это должно было пролить свет на группировку, которая стоит за атаками. Однако сделать это экспертам не удалось — атрибуция оказалась непростой задачей.

«In this case, attributing the attack to a specific country is not an easy task», — Malwarebytes.

Глава 2. Облачный чародей

Теперь поговорим о новой, недавно обнаруженной нами угрозе — CloudWizard. Кампания интересна тем, что вредоносное ПО, которое в ней используется, намного сложнее описанного в первой главе. Больше вредоносных модулей, более качественный код и т. д. Кроме того, жертвы располагаются не только в регионах, где мы встречали CommonMagic, но и в центральной и западной частях Украины. В данном случае атаки были нацелены на дипломатические представительства и научно-исследовательские организации.

В данных телеметрии мы обнаружили подозрительную службу, которой управляла DLL’ка, расположенная в не менее подозрительной директории C:\ProgramData\Apparition Storage\syncobjsup.dll. Мы начали анализировать DLL и поняли, что при помощи алгоритма RC5 она расшифровывает файл mods.lrc, лежащий в той же папке. Однако при попытке расшифровать этот файл по RC5 мы получили лишь случайные байты. Тогда мы решили подробнее рассмотреть реализацию алгоритма расшифровки и увидели в декомпиляторе следующую процедуру (см. рис. 20).

20.jpg
Рисунок 20. Процедура, обнаруженная в алгоритме расшифровки

Во внутреннем цикле указана неправильная переменная — i вместо j. Выходит, злоумышленники допустили ошибку в коде. Если поменять i на j, мы получим корректную реализацию алгоритма RC5.

21.jpg
Рисунок 21. Ошибка в реализации алгоритма

Мы начали искать в открытых источниках аналогичную неправильную реализацию RC5 и, как ни странно, вышли на GitHub, а точнее, на Gist. Один из разработчиков опубликовал ее на языке C, а пользователи даже указали в комментариях на ошибку в цикле.

22.jpg
Рисунок 22. Обсуждение на Gist

Любопытно, что в интересующей нас кампании злоумышленники использовали тот же ключ шифрования, который был в коде на Gist (он полностью позаимствован оттуда). Однако версию о том, что разработчик и является злоумышленником, мы отмели сразу. Его пример кода с ошибкой — одна из первых ссылок, которые поисковик выдает по запросу «RC5 C Implementation github».

VFS

Итак, теперь мы умеем расшифровывать mods.lrc, зашифрованный модифицированным RC5. Оказалось, что этот файл — полноценная виртуальная файловая система (VFS), содержащая несколько записей: json-конфигурацию и три DLL’ки. Злоумышленники назвали их Main, Crypton и Internet. 

Служба syncobjsup.dll расшифровывает VFS и передает управление в основной модуль — Main (далее будем называть его оркестратором).

23.jpg
Рисунок 23. Расшифровка VFS

Структура VFS подразумевает наличие перед каждой записью магических байтов СiСi. Дальше идет хеш имени модуля (используется ROR6), размер модуля и сам бинарный файл или конфиг — в зависимости от того, о какой записи идет речь.

Оркестратор

Перейдем непосредственно к оркестратору, потому что он начинает исполняться после отработки syncobjsup.dll. В нем также используется ROR6-хеш, но чтобы вызывать API-функции не по имени, а по значению хеша от имени. Цель — усложнить анализ бинарного файла. Дальше происходит инжект в легитимный процесс WMI Provider Host — WmiPrvSE.exe. Следом запускаются модули Crypton и Internet, которые хранятся в VFS.

Оркестратор может загружать и запускать дополнительные модули. К примеру, подгружать .exe, .dll и произвольные шеллкоды, получая их от командного сервера. Кроме того, оркестратор регулярно шлет heartbeats — данные в формате JSON, в которых есть информация о зараженном компьютере и состоянии импланта (какие модули и каких версий уже подгружены). 

Оркестратор получает команды для управления модулями, которые тоже представляют из себя данные в JSON. Это могут быть команды на удаление модуля, остановку, перезапуск и загрузку новых модулей или же изменение их конфигураций.

24.jpg
Рисунок 24. Команды управления модулями

В начале каждой команды находятся магические байты: DE AD BE EF. Далее идет порядковый номер команды, ее размер, команда или конфигурация для модуля (если злоумышленник подгружает новый модуль или меняет конфигурацию — тоже в JSON) и непосредственно бинарный файл (если нужно залить новый модуль).

Модуль шифрования

Crypton — внутреннее название модуля шифрования. В нем используется комбинация из двух алгоритмов: AES и RSA. В принципе, это стандартная схема для продвинутых вредоносов. Если нужно отправить какие-либо данные на сервер, модуль шифрует их временным ключом AES, а затем шифрует сам временный ключ при помощи RSA.

25.jpg
Рисунок 25. Модуль Crypton

Публичный ключ шифрования находится в конфиге. Команды, которые приходят в ответ от сервера, зашифрованы только AES с ключом из конфига.

Модуль обмена данными

Все шифрованные данные обрабатывает модуль Internet. Он взаимодействует с облачными сервисами OneDrive, Dropbox и Google Drive. По умолчанию — OneDrive, но если ресурс недоступен, модуль переключается на Dropbox и Google Drive.

Модуль заходит на сервер с OAuth при помощи Access- и Refresh-токенов и выгружает данные в определенную папку. Из другой папки он берет команды. После этого файлы команд удаляются из облака.

26.jpg
Рисунок 26. Схема работы модуля обмена данными

В коде Internet даже предусмотрена ситуация, в которой он теряет доступ ко всем облачным сервисам. В этом случае модуль отправляет запрос на резервный веб-сервер, чтобы получить новые токены. Они записываются в конфигурацию и используются при дальнейшем общении.

27.jpg
Рисунок 27. Схема работы модуля Internet при потере доступа к облачным сервисам

Модули сбора информации

Также в CloudWizard есть целый пакет модулей для сбора информации. Отметим, что наборы модулей, которые приходят конкретным жертвам, подбираются индивидуально и могут отличаться друг от друга. 

К примеру, один из модулей осуществляет запись звука через микрофон компьютера. Он работает по стандартной схеме — через Windows API, конвертируя запись в MP3. Но не обошлось и без капельки магии. Когда человек пользуется микрофоном на Windows 10 или 11, в панели задач появляется соответствующая иконка.

28.jpg
Рисунок 28. Иконка активности микрофона в Windows

Бывает смешно, когда кернеловая malware таким образом обнаруживает свое присутствие, потому что бдительный пользователь наверняка заметит появление иконки. В нашем случае разработчики так просто не палились и отключали ее через реестр. В нем есть ключ, отвечающий за битовую маску включенных и отключенных иконок.

29.jpg
Рисунок 29. Модуль CloudWizard отключает отображение иконки микрофона

Другой интересный модуль CloudWizard крадет письма из веб-клиента Gmail. Причем он делает это довольно необычно: смотрит, какие браузеры установлены у пользователя, берет из них базы данных и ищет куки от Gmail. С их помощью модуль заходит на legacy-версию веб-клиента Gmail.

30.jpg
Рисунок 30. Модуль CloudWizard использует legacy-версию веб-клиента Gmail

Злоумышленники используют для атаки именно legacy-версию, потому что ее HTML-код проще парсить. Когда пользователь впервые в нее заходит, Gmail спрашивает: «Не хотите ли воспользоваться чем-то поновее?». Если это сообщение приходит модулю в ответ на один из запросов, он эмулирует нажатие кнопки «Хочу использовать legacy-версию». Для этого модуль парсит исходный код сообщения, извлекает из него ссылку, которая соответствует кнопке, и делает POST-запрос.

31.jpg
Рисунок. 31. Модуль CloudWizard эмулирует нажатие кнопки

После получения доступа к legacy-версии Gmail модуль выкачивает все сообщения с аттачами, контакты и историю активности пользователя с IP-адресами. Любопытно, что код этого модуля был частично позаимствован из попавшего в публичный доступ исходного кода Hacking Team. 
Помимо уже упомянутых инструментов, в CloudWizard также есть модули:

  • для снятия скриншотов;
  • кейлоггинга;
  • копирования файлов с устройства;
  • сбора информации об ОС;
  • листинга директорий;
  • поиска сетевых шар;
  • сбора паролей.

Как все устанавливается

Для формирования полной цепочки не хватало одного звена: мы не понимали, как злоумышленники устанавливают CloudWizard жертвам. Тогда мы обратились к историческим данным. В поисках семплов других версий CloudWizard мы нашли NSIS-инсталлятор 2020 г., который работает следующим образом:

  • кидает файлы на диск;
  • для персистента создает службу с именем WinSubSvc;
  • отображает сообщение «Well done!».

При этом других окон не появляется: никаких тебе «Добро пожаловать в инсталлятор!» или «Нажмите далее, чтобы продолжить». Мы предположили, что этот инсталлятор используется при заражении устройств, к которым у злоумышленников есть физический доступ. Человек подходит к компьютеру, вставляет флешку, запускает инсталлятор и видит сообщение «Well done!». Также возможно, что приложение мимикрирует под программу для настройки, ведь в заголовке окна с этим сообщением указано «Network settings».

Версия CloudWizard, которую устанавливал инсталлятор, отличалась от той, о которой мы рассказывали ранее, — как минимум номером. В бинарном файле вредоносов зашиты пути к исходному коду на компьютере разработчика. В старом была версия 4 (D:\Project\Work_2020\Soft_Version_4\Service), а в новом — версия 5 (D:\Project\Work_2020\Soft_Version_5\Service).

Были отличия и в архитектуре. В старой версии шифрование и передача данных реализованы в основном модуле, в новой — поделены между Crypton и Internet. Также в пятой версии используется более криптостойкое шифрование — комбинация AES и RSA. В четвертой применяется реализация RC5 из библиотеки RC5Simple.

Глава 3. Корм для рыб

Пора начинать обещанный экскурс в историю — перенесемся на семь лет назад. В 2016 г. ESET опубликовала исследование о новой APT-группировке, которая занималась кибершпионажем на Украине. Ее цели находились на тех же территориях, где встречался CommonMagic.

32.jpg
Рисунок 32. Исследование ESET

Кампанию назвали Operation Groundbait, или Prikormka (поэтому и «Корм для рыб»). ESET писали: «This threat is the first publicly known Ukrainian malware that is being used in targeted attacks»

В исследовании было указано следующее:

  • кампания активна с 2008 г. (тогда были обнаружены первые семплы);
  • жертвы находятся на Украине и в зоне российско-украинского конфликта;
  • приманки в целом напоминают документы, которые мы показывали выше (см. рис. 3 и рис. 12). Это тоже были законодательные акты и т. п.
33.jpg
Рисунок 33. Приманки, которые использовались в Prikormka

Наконец, ответим на важный вопрос: почему Prikormka? Дело в том, что в одну из приманок злоумышленники поместили таблицу со списком прикормок для рыб. Жертва думала, что они содержат натуральный бетаин, но это был многомодульный фреймворк, который проводит операции кибершпионажа :)

34.jpg
Рисунок 34. Таблица с прикормками в документе-приманке

Архитектура

У Prikormka интересная модульная архитектура. Есть персистентный модуль, который запускает загрузчик или оркестратор. Последний, в свою очередь, загружает с сервера модули, которые начинают работать на устройстве жертвы и собирать данные. Далее оркестратор отправляет информацию злоумышленникам.

35.jpg
Рисунок 35. Персистентный модуль Operation Groundbait


 

36.jpg
Рисунок 36. Модули Operation Groundbait

BugDrop

Переходим к следующей APT-кампании из прошлого — BugDrop. Команда CyberX обнаружила ее в 2017 г. Исследования уже нет на сайте компании, но его можно посмотреть через web archive.

37.jpg
Рисунок 37. Operation BugDrop

Эксперты отмечали, что между BugDrop и Prikormka есть связь. Среди схожих черт можно отметить:

  • виктимологию; 
  • использование модульного фреймворка, включающего инструменты для прослушивания микрофона, записи экрана, кейлоггинга и др.

Отдельно отметим, что именно в BugDrop злоумышленники начали использовать Dropbox вместо командного сервера.

Глава 4. Все переплетено

А теперь сведем все эти истории воедино и сформируем таймлайн — все в лучших традициях фильмов Кристофера Нолана ;)

Первый интересный факт. Эксперты CyberX указали в отчете, что BugDrop похожа на Prikormka по тактикам, техникам и процедурам, но четких доказательств не привели. Мы подробно проанализировали семплы и подтвердили гипотезу о том, что у BugDrop и Prikormka есть общие корни. В качестве примера возьмем PDB-путь модуля для кражи документов (специалисты ESET назвали его DOCS_STEALER).

38.jpg
Рисунок 38. PDB-пути модулей кражи документов

В одной из презентаций 2019 г. ESET — первооткрыватели Prikormka — упоминают, что нашли файл с именем etwdrv.dll (имя в таблице экспортов: LCrPsdNew.dll). Их вердикт — это троян Win64/Prikormka.BF. Файл с таким же названием (и именем в таблице экспортов) создает на диске установщик четвертой версии CloudWizard.

39.jpg
Рисунок 39. CloudWizard v4 — это Prikormka

Другие компоненты четвертой версии CloudWizard, согласно данным мультисканеров, ESET также детектит как Prikormka.

40.jpg
Рисунок 40. ESET детектит CloudWizard v4 как Prikormka

В коде BugDrop и CloudWizard тоже есть сходства. Рассмотрим модуль, который крадет данные с USB-устройств (см. рис. 41). Чтобы понять, с каких флешек данные уже загружены, а с каких еще нет, он получает список идентификаторов устройств, подключенных к компьютеру. В BugDrop и CloudWizard этот процесс реализован одинаково — с помощью IOCTL_STORAGE_QUERY_PROPERTY.

41.jpg
Рисунок 41. Модули для кражи данных с USB-устройств в BugDrop и CloudWizard

Если идентификатор получить не удается, вместо него записывается строка undef (см. рис. 42). В открытом доступе мы не нашли аналогичного кода.

42.jpg
Рисунок 42. Одинаковый код в модулях BugDrop и CloudWizard

Переходим к модулям, которые делают скриншоты. В Prikormka и CloudWizard совпадает список окон, при появлении которых частота съемки увеличивается, — это Skype и Viber. Сходится и интервал между созданием снимков: по умолчанию — 15 минут.

43.jpg
Рисунок 43. Модули для создания скриншотов в Prikormka и CloudWizard

Сходства обнаруживаются и в модулях листинга директорий. Они выдают данные в одинаковом формате: пять табов, затем размер файла в скобках, число, месяц и год последней модификации.

44.jpg
Рисунок 44. Модули листинга директорий в Prikormka и CloudWizard

Также мы нашли в Prikormka и CloudWizard практически одинаковые списки расширений, которые используются для фильтрации файлов. Разве что в пятой версии CloudWizard нет TBB — расширения базы почтового клиента The Bat!, который сейчас мало кто использует.

45.jpg
Рисунок 45. Списки расширений для фильтрации файлов в Prikormka и CloudWizard

CloudWizard и Prikormka также объединяют имена файлов, которые отправляются на сервер в формате dd.mm.yy_hh.mm.ss.<ext> и dd.mm.yyyy_hh.mm.ss.ms.dat. При этом командные серверы обеих кампаний размещены на хостингах украинских провайдеров. Сходится и виктимология: жертвы находятся в зоне российско-украинского конфликта, в центральной и западной частях Украины.

При чем здесь CommonMagic

У CommonMagic, о котором мы рассказали в начале статьи, тоже есть сходства с CloudWizard. К примеру, взаимодействие с OneDrive у них реализовано одинаково. Причем это тот самый код со скриншотов из исследования Malwarebytes (см. рис. 16).

46.jpg
Рисунок 46. CommonMagic и CloudWizard одинаково взаимодействуют с OneDrive

Следующий момент — уже упомянутый алгоритм шифрования RC5 из библиотеки RC5Simple. Код не просто взят из библиотеки, в нем есть важное изменение — 7-байтовый заголовок, который содержат все шифротексты. В оригинальной библиотеке это RC5SIMP (см. рис. 47), в CloudWizard четвертой версии — DUREX43 (см. рис. 48), а в CommonMagic — Hwo7X8p (рандомные 7 байт).

47.jpg
Рисунок 47. Заголовок шифротекста в оригинальной RC5Simple
48.jpg
Рисунок 48. Заголовок шифротекста в четвертой версии CloudWizard
49.jpg
Рисунок 49. Заголовок шифротекста в CommonMagic

Также мы заметили, что в CommonMagic и CloudWizard используются схожие ID жертв: в них есть дата, за которой следуют две заглавные буквы.

50.jpg
Рисунок 50. ID жертв в CommonMagic и CloudWizard

Также есть схожесть в именах файлов с временной меткой и расширением .dat.

51.jpg
Рисунок 51. Схожие имена файлов в CommonMagic и CloudWizard

Отдельно отметим уже привычную нам виктимологию: зона российско-украинского конфликта, западная и центральная части Украины.

Развязка

О чем все это говорит? О том, что все эти кампании связаны! Со средней (и даже высокой) долей вероятности можно утверждать, что Prikormka, BugDrop, CloudWizard и CloudMagic написаны одним и тем же автором.

52.jpg
Рисунок 52. Связь между кампаниями

В итоге вырисовывается следующая цепочка: 

  • В 2008 г. начали появляться первые семплы Prikormka.
  • Почти через 10 лет ESET выпускает отчет о Prikormka (Operation Groundbait), по следам которого CyberX нашли BugDrop.
  • В 2017 г. появилась четвертая версия CloudWizard. Ее зарефакторили в 2020-м — появилась пятая версия.
  • Далее к арсеналу злоумышленников добавились PowerMagic (инструмент на PowerShell) и фреймворк CommonMagic.

Финальный таймлайн выглядит следующим образом (см. рис. 53).

53.jpg
Рисунок 53. Финальный таймлайн

Получается, злоумышленники работают более 15 лет! Мы начали расследование со скучных PowerShell-скриптов и никак не ожидали, что оно выльется в столь масштабное исследование. На данный момент мы не наблюдаем активности, связанной с этими группировками, однако продолжаем следить за изменениями в ландшафте киберугроз для выявления новых вредоносных кампаний наподобие CommonMagic и CloudWizard. 
 

Мы дěлаем Positive Research → для ИБ-экспертов, бизнеса и всех, кто интересуется ✽ {кибербезопасностью}