В течение многих лет Ближний Восток сохранял свою репутацию благодатной почвы для современных постоянных угроз (APT). В ходе регулярного мониторинга подозрительных действий в системах высокопоставленных клиентов, некоторые из которых базируются в этом регионе, исследование ESET Research наткнулось на очень сложный и неизвестный бэкдор, который мы назвали Deadglyph. Мы получили название от артефактов, найденных в бэкдоре (например, 0xDEADB001, показанный также в REF _Ref111452440 ч Настольные 1
), в сочетании с наличием гомоглиф атака. Насколько нам известно, это первый публичный анализ этого ранее недокументированного бэкдора, используемого группой, демонстрирующей заметную степень сложности и опыта. Основываясь на данных о цели и дополнительных доказательствах, мы с высокой степенью уверенности относим Deadglyph к APT-группе Stealth Falcon.
Архитектура Deadglyph необычна, поскольку состоит из взаимодействующие компоненты — один — собственный двоичный файл x64, другой — сборка .NET. Эта комбинация необычна, поскольку вредоносное ПО обычно использует для своих компонентов только один язык программирования. Эта разница может указывать на раздельную разработку этих двух компонентов, а также на использование уникальных особенностей отдельных языков программирования, которые они используют. Использование разных языков также может затруднить анализ, поскольку в смешанном коде труднее ориентироваться и отлаживать.
Традиционные команды бэкдора не реализованы в двоичном файле бэкдора; вместо этого они динамически принимаются им от командного сервера (C&C) в виде дополнительных модулей. Этот бэкдор также имеет ряд возможностей, позволяющих избежать обнаружения.
В этом блоге мы более подробно рассмотрим Deadglyph и предоставим технический анализ этого бэкдора, его цели и некоторых дополнительных компонентов, которые мы получили. Мы также представляем наши выводы о Deadglyph на ЛАБСкон 2023 конференция.
Ключевые моменты поста в блоге:
- Исследование ESET обнаружило сложный бэкдор с необычной архитектурой, который мы назвали Deadglyph.
- Основные компоненты зашифрованы с использованием машинного ключа.
- Традиционные команды бэкдора реализуются через дополнительные модули, получаемые с его командного сервера.
- Из множества модулей мы получили три — создатель процессов, программа чтения файлов и сборщик информации.
- Мы относим Deadglyph к группе Stealth Falcon.
- Кроме того, мы нашли соответствующий загрузчик шеллкода; мы предполагаем, что его потенциально можно использовать для установки Deadglyph.
Жертвой анализируемого проникновения является правительственное учреждение на Ближнем Востоке, которое было скомпрометировано в шпионских целях. Соответствующий образец, найденный на VirusTotal, также был загружен на платформу сканирования файлов из этого региона, в частности из Катара. Целевой регион изображен на карте в REF _Ref143614671 ч фигура 1
.
Stealth Falcon (также известный как Project Raven или FruityArmor) — группа угроз, связанная с Объединенными Арабскими Эмиратами. по данным MITRE. Известно, что организация Stealth Falcon, действующая с 2012 года, нацелена на политических активистов, журналистов и диссидентов на Ближнем Востоке. Впервые он был обнаружен и описан Citizen Lab, который опубликовал анализ кампании шпионских атак в 2016 году.
В январе 2019 года агентство Reuters опубликовало отчет о расследовании о проекте «Ворон», инициативе, предположительно использующей бывших сотрудников АНБ и преследующей те же цели, что и «Стелс Сокол». На основании этих двух отчетов, касающихся одних и тех же целей и нападений, Amnesty International заключил (Показано в REF _Ref144978712 ч фигура 2
), что Stealth Falcon и Project Raven на самом деле представляют собой одну и ту же группу.
В сентябре 2019 года мы опубликованные исследования на бэкдоре, приписываемом Stealth Falcon, в котором использовалась необычная техника, Фоновая интеллектуальная служба передачи, для связи с C&C. Теперь мы представляем результат нашего углубленного анализа того, что предположительно является новейшим дополнением к набору шпионских инструментов Stealth Falcon.
Бэкдор мертвого глифа
Цепочка загрузки Deadglyph состоит из нескольких компонентов, как показано на рисунке. REF _Ref144978760 ч фигура 3
. Начальный компонент — это загрузчик шеллкода реестра, который загружает шеллкод из реестра. Этот извлеченный шеллкод, в свою очередь, загружает родную для x64 часть бэкдора — Executor. Впоследствии Исполнитель загружает .NET-часть бэкдора — Оркестратора. Примечательно, что единственным компонентом на диске системы в виде файла является исходный компонент, который имеет форму динамически подключаемой библиотеки (DLL). Остальные компоненты зашифрованы и хранятся в двоичном значении реестра.
Хотя точный метод первоначального вектора компрометации еще не определен, мы подозреваем, что компонент установщика участвует в развертывании дальнейших компонентов и обеспечении устойчивости в системе.
В оставшейся части этого раздела мы анализируем каждый компонент.
Загрузчик шеллкода реестра
Исходный компонент Deadglyph — это крошечная DLL с единственным экспортом, называемая 1. Этот компонент сохраняется с помощью Подписка на события инструментария управления Windows (WMI) и служит загрузчиком шелл-кода реестра. Выполняется через командную строку rundll32 C:WINDOWSSystem32pbrtl.dll,#1.
Загрузчик шеллкода реестра начинает свою работу с расшифровки пути к зашифрованному шеллкоду, хранящемуся в реестре Windows, с помощью RC4. Мы подозреваем, что путь уникален для каждой жертвы; в рассматриваемом здесь случае путь к реестру был:
SoftwareClassesCLSID{5abc7f42-1112-5099-b082-ce8d65ba0c47}cAbRGHLg
Корневой ключ реестра либо HKLM or HKCU, в зависимости от того, запущен ли текущий процесс с повышенными привилегиями или нет. Ту же логику можно найти и в других компонентах.
После этого загрузчик получает машинный ключ RC4, используя системный UUID, полученный из сырая таблица прошивок SMBIOS. Используя этот ключ, он загружает, расшифровывает и затем выполняет шеллкод. Важно подчеркнуть, что этот подход к получению ключей гарантирует, что правильное дешифрование не произойдет, если загрузчик будет запущен на другом компьютере.
Интересно, что загрузчик также можно настроить с помощью флага в его .данные раздел, чтобы использовать жестко закодированный ключ для расшифровки шелл-кода вместо машинно-зависимого.
Мы обнаружили гомоглифическую атаку, имитирующую корпорацию Microsoft, в ИНФОРМАЦИЯ О ВЕРСИИ ресурс этого и других компонентов PE. В этом методе используются отдельные символы Юникода, которые визуально похожи, но в данном случае не идентичны исходным символам, в частности греческой заглавной букве Сан (U+03FA, Ϻ) и кириллической строчной букве О (U+043E, о) в ϺICRоsофут корпоратиоn.
Шеллкод реестра
Шелл-код реестра состоит из двух частей: процедуры расшифровки и зашифрованного тела. Сначала процедура дешифрования поворачивает каждый байт зашифрованного тела влево на один (РОЛ 0x01). В дальнейшем управление передается этому расшифрованному телу. Расшифрованное тело состоит из PE-загрузчика и PE-файла, причем последний является исполнителем и представляет собой собственную часть бэкдора. Этот загрузчик отвечает за анализ и загрузку связанного PE-файла.
душеприказчик
Executor — это встроенная часть x64 бэкдора Deadglyph, которая выполняет следующие действия:
- загружает его конфигурацию,
- инициализирует среду выполнения .NET,
- загружает встроенную .NET-часть бэкдора (оркестратора) и
- действует как библиотека для Оркестратора.
Во-первых, две конфигурации по умолчанию, встроенные в .данные раздел расшифровываются с помощью AES. Конфигурации охватывают различные параметры, включая ключи шифрования, настройки безопасности и уклонения, а также точку входа последующего компонента.
Во время первоначального выполнения эти две конфигурации по умолчанию сохраняются в реестре Windows, откуда они загружаются при последующих запусках, что позволяет выполнять обновления. Путь реестра для каждой конфигурации генерируется в следующем формате:
{HKCU|HKLM}SoftwareClassesCLSID{ }(По умолчанию)
— это сгенерированный GUID, уникальный для каждой жертвы.
После этого инициализируется среда выполнения .NET, затем Executor RC4 расшифровывает .NET-часть бэкдора, известную как Orchestrator. Оркестратор находится внутри .rsrc раздел Исполнителя. В конфигурации в качестве точки входа указывается метод выполнения Оркестратора. Кроме того, предусмотрена четкая структура для облегчения доступа Оркестратора к функциям Исполнителя.
После запуска Оркестратора Исполнитель выступает в качестве библиотеки поддержки для Оркестратора. Исполнитель содержит множество интересных функций; мы описываем некоторые из них в следующем разделе в контексте их использования Оркестратором и дополнительно загружаемыми модулями.
Orchestrator
Написанный на .NET, Оркестратор является основным компонентом бэкдора Deadglyph. Основная роль этого компонента включает установление связи с C&C-сервером и выполнение команд, часто выполняемых через промежуточную роль Исполнителя. В отличие от предыдущих компонентов, Оркестратор запутан и использует .NET Reactor. Внутренне бэкдор называется агент, которое является общим названием клиентской части в различных средах постэксплуатации.
Инициализация
Оркестратор сначала загружает из ресурсов свою конфигурацию и два встроенных модуля, каждый из которых сопровождается собственным набором конфигураций. Эти ресурсы выкачивать сжатый и AES зашифровано. На них ссылается идентификатор, который представляет собой хэш SHA-1 с именем ресурса. Обзор этих ресурсов представлен в REF _Ref111452440 ч Настольные 1
.
Таблица 1. Ресурсы оркестратора
Название ресурса |
Идентификатор (десятичный) |
Идентификатор (шестнадцатеричный) |
Описание |
43ed9a3ad74ed7ab74c345a876b6be19039d4c8c |
2570286865 |
0x99337711 |
Конфигурация оркестратора. |
3a215912708eab6f56af953d748fbfc38e3bb468 |
3740250113 |
0xDEEFB001 |
Сетевой модуль. |
42fb165bc9cf614996027a9fcb261d65fd513527 |
3740250369 |
0xDEEFB101 |
Конфигурация сетевого модуля. |
e204cdcf96d9f94f9c19dbe385e635d00caaf49d |
3735924737 |
0xDEADB001 |
Модуль таймера. |
abd2db754795272c21407efd5080c8a705a7d151 |
3735924993 |
0xDEADB101 |
Конфигурация модуля таймера. |
Конфигурация Оркестратора и встроенных модулей хранится в формате XML. Пример конфигурации Оркестратора показан на рисунке. REF _Ref111452611 ч
фигура 4
.
Описание записей конфигурации Orchestrator показано в REF _Ref111452782 ч Настольные 2
.
Таблица 2. Записи конфигурации Оркестратора
Основные |
Описание |
k
|
Ключ AES, используемый для сохранения конфигураций модуля. |
a
|
Имя метода инициализации сетевого модуля. |
b
|
Неизвестный флаг, связанный с сетевым модулем. |
c
|
Имя метода инициализации модуля таймера. |
d
|
Флаг, разрешающий использование машинного ключа AES (системный UUID) для ресурсов. |
p
|
Идентификатор ресурса сетевого модуля. |
t
|
Идентификатор ресурса модуля таймера. |
После загрузки компонентов ресурсов создается несколько потоков для выполнения отдельных задач. Один из этих потоков отвечает за проверку среды — функцию, реализованную в Executor. Другая ветка посвящена налаживанию периодической связи с C&C-сервером, позволяющей получать команды. Наконец, набор из трех потоков используется для выполнения полученных команд и последующей передачи любого сгенерированного вывода обратно на C&C-сервер.
Поток проверки среды отслеживает запущенные процессы на предмет выявления нежелательных. Этот поток работает с двумя отдельными списками имен процессов. Если обнаружен процесс из первого списка, связь C&C и выполнение команд приостанавливаются до тех пор, пока нежелательный процесс перестанет существовать. Если какой-либо процесс из второго списка соответствует какому-либо процессу, бэкдор немедленно завершает работу и удаляется.
Ни один из списков не был настроен в анализируемом экземпляре, поэтому мы не знаем, какие процессы обычно проверяются; мы считаем, что это, вероятно, предназначено для обхода инструментов анализа, которые могут обнаружить подозрительную активность и привести к обнаружению бэкдора.
Связь
Оркестратор использует два встроенных модуля для связи с командным центром — Таймер и Сеть. Как и Оркестратор, эти модули запутаны с помощью .NET Reactor. Конфигурация для обоих модулей предоставляется Оркестратором. В Orchestrator включена предустановленная конфигурация модулей; при желании Оркестратор также может загрузить обновленную версию конфигурации из реестра:
{HKCU|HKLM}SoftwareClassesCLSID{ }
Бэкдор содержит интересную меру безопасности, связанную с общением. Если бэкдор не может установить связь с командным сервером в течение времени, превышающего заранее заданный порог, настроенный в Исполнителе, срабатывает механизм самоудаления. Этот временной порог указан в часах и в рассматриваемом случае был установлен на уровне одного часа.
Этот подход служит двойной цели. С одной стороны, это предотвращает создание избыточных сетевых запросов к недоступному серверу. С другой стороны, это снижает шансы на последующее обнаружение, если операторы потеряют контроль над бэкдором.
Модуль таймера
Этот небольшой модуль выполняет указанный обратный вызов с настраиваемым интервалом. Он используется Оркестратором в сочетании с Сетевым модулем для периодической связи с C&C-сервером. Чтобы предотвратить создание обнаруживаемых шаблонов в сетевых журналах, интервал выполнения рандомизируется на основе процентного значения, указанного в конфигурации. В анализируемом примере интервал был установлен в пять минут с отклонением ±20% для случайности.
Другой способ избежать обнаружения сетевых шаблонов при периодическом общении — это генерация запросов, отправляемых на C&C-сервер. Этот механизм, реализованный в Executor, включает в себя включение в запросы заполнения различной длины, состоящего из случайных байтов, что приводит к запросам разных размеров.
Сетевой модуль
Модуль «Сеть» реализует связь с командными серверами, указанными в его конфигурации. Он может отправлять данные на C&C-сервер с помощью запросов HTTP(S) POST. Примечательно, что он предлагает несколько механизмов для получения сведений о конфигурации прокси. Эта функция предполагает потенциальное внимание к средам, где прямой доступ в Интернет недоступен.
Пример расшифрованной (и украшенной) конфигурации показан на REF _Ref144978805 ч фигура 5
.
Записи конфигурации содержат сведения, связанные с сетевыми коммуникациями: URL-адреса C&C, пользовательский агент HTTP и, при необходимости, конфигурацию прокси-сервера.
При обмене данными с командным сервером под HTTPS используется собственный двоичный протокол с зашифрованным содержимым.
Команды
Оркестратор получает команды от C&C-сервера в виде задач, которые ставятся в очередь на выполнение. Обрабатывается три вида задач:
- Задачи оркестратора,
- Задачи исполнителя и
- Загрузить задачи.
Первые два типа принимаются от C&C-сервера, а третий создается внутри компании для загрузки вывода команд и ошибок.
Задачи оркестратора
Задачи Оркестратора дают возможность управлять настройкой модулей «Сеть» и «Таймер», а также отменять ожидающие задачи. Обзор задач Оркестратора показан на странице REF _Ref111101783 ч Настольные 3
.
Таблица 3. Задачи оркестратора
Тип |
Описание |
0x80
|
Установите конфигурацию сетевых и таймерных модулей. |
0x81
|
Получите конфигурацию сетевых и таймерных модулей. |
0x82
|
Отменить задачу. |
0x83
|
Отмените все задачи. |
Задачи исполнителя
Задачи-исполнители дают возможность управлять бэкдором и выполнять дополнительные модули. Примечательно, что традиционная функциональность бэкдора не присутствует в самом двоичном файле. Вместо этого эти функции получаются с C&C-сервера в виде PE-файлов или шелл-кода. Полный потенциал бэкдора остается неизвестным без этих дополнительных модулей, которые эффективно раскрывают его истинные возможности. Обзор задач модуля показан на REF _Ref117677179 ч Настольные 4
, который включает подробную информацию о нескольких идентифицированных модулях. Сходным образом, REF _Ref117677188 ч Настольные 5
предоставляет обзор задач управления, связанных с Исполнителем.
Таблица 4. Задачи исполнителя – модули
Тип |
Описание |
0x??–0x63
|
неизвестный |
0x64
|
Программа чтения файлов |
0x65
|
неизвестный |
0x66
|
неизвестный |
0x67
|
неизвестный |
0x68
|
неизвестный |
0x69
|
Создатель процесса |
0x6A
|
неизвестный |
0x6B
|
неизвестный |
0x6C
|
Сборщик информации |
0x6D
|
неизвестный |
0x6E
|
неизвестный |
Таблица 5. Задачи исполнителя – управление
Тип |
Описание |
0x6F-0x76 |
Не реализованы |
0x77 |
Установить конфигурацию Исполнителя |
0x78 |
Получить конфигурацию Исполнителя |
0x79-0x7C |
Не реализованы |
0x7D |
Обновление ПО |
0x7E |
Выход |
0x7F |
Удалить |
Команда, устанавливающая конфигурацию Executor, может изменить:
- списки нежелательных процессов,
- временной порог сбоя связи с C&C, и
- ограничение по времени на выполнение дополнительных модулей.
Модули
Нам удалось получить с C&C-сервера три уникальных модуля, каждый из которых соответствует разному типу задач Исполнителя, как показано на рис. REF _Ref117677179 ч Настольные 4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100310037003600370037003100370039000000
. По нашей оценке, всего модулей будет от девяти до четырнадцати. Поскольку модули на самом деле являются бэкдорными командами, им нужно выполнить одну базовую операцию, а затем, при необходимости, вернуть свои выходные данные. Полученные нами модули представляют собой библиотеки DLL с одним безымянным экспортом (порядковый номер 1), в котором они разрешают необходимые функции API и вызывают основную функцию.
При выполнении модули получают функцию разрешения API, которая может разрешать API Windows и пользовательские API-интерфейсы Executor. На API-интерфейсы Windows ссылаются с помощью хэша DWORD, рассчитанного на основе имени API и его библиотеки DLL. Небольшие значения хеш-функции (<41) обрабатываются особым образом, ссылаясь на функцию API-интерфейса Executor. API-интерфейс Executor включает в себя в общей сложности 39 функций, доступных модулям. Эти функции относятся к различным операциям, в том числе:
- файловые операции,
- шифрование и хеширование,
- сжатие
- загрузка ПЭ,
- получить доступ к олицетворению токена и
- утилита.
В оставшейся части этого раздела мы описываем полученные нами модули.
Создатель процесса
Модули 0x69 выполняет указанную командную строку как новый процесс и передает полученный результат обратно в Оркестратор. Процесс может быть создан под другим пользователем, а время его выполнения может быть ограничено. Примечательно, что необычный API вакансий используется в функциях этого модуля.
Этот модуль обслуживался с помощью командной строки cmd.exe /c список задач /v.
Мы предполагаем, что это команда ожидания, выдаваемая автоматически, пока операторы ждут, пока что-то интересное произойдет на взломанном компьютере.
Сборщик информации
Модули 0x6C собирает обширную информацию о компьютере с помощью запросов WMI и передает ее обратно Оркестратору. Собирается информация о следующем:
- операционная система,
- сетевые адаптеры,
- установленное программное обеспечение,
- диски,
- услуги,
- водители,
- процессы,
- пользователи,
- переменные среды и
- программное обеспечение безопасности.
Программа чтения файлов
Модули 0x64 считывает указанный файл и передает содержимое обратно Оркестратору. При желании он может удалить файл после прочтения.
Мы видели, как этот модуль использовался для получения файла данных Outlook жертвы.
в: Пользователи AppDataLocalMicrosoftOutlookoutlook.ost.
Цепочка с загрузчиком шеллкода
В процессе исследования Deadglyph мы столкнулись с сомнительным файлом CPL, подписанным сертификатом с истекшим сроком действия и без подписи с отметкой времени, который был загружен на VirusTotal из Катара. При ближайшем рассмотрении стало очевидно, что этот CPL-файл функционировал как многоэтапный загрузчик шелл-кода, имея определенное сходство кода с Deadglyph. Цепь загрузки показана на REF _Ref143693067 ч фигура 6
.
В своей первоначальной форме, которая служит первым этапом, этот файл предполагает наличие . Капрала расширение (файл панели управления) и предназначено для запуска двойным щелчком мыши. При таком выполнении встроенный шелл-код подвергается расшифровке XOR, а запущенные процессы проверяются на предмет определения подходящего хост-процесса для последующего внедрения.
If avp.exe (процесс защиты конечных точек Касперского) запущен, %windir%system32UserAccountBroker.exe используется. В противном случае используется браузер по умолчанию. Затем он создает хост-процесс в приостановленном состоянии, внедряет шелл-код, перехватив его основной поток, и возобновляет поток.
Второй этап — шеллкод — состоит из двух частей. Первая часть шелл-кода разрешает хеши API, используя ту же уникальную технику расчета хэшей, что и Deadglyph, и расшифровывает строки с именами процессов. Он запускает поток самоудаления, задачей которого является перезапись и последующее стирание файла первого этапа. После этого шеллкод приступает к проверке активных в данный момент процессов в поисках решения по обеспечению безопасности.
Если какой-либо из указанных процессов обнаружен, шеллкод создает спящий поток с самым низким приоритетом (THREAD_PRIORITY_IDLE) и позволяет ему оставаться активным в течение 60 секунд, прежде чем прекратить его работу. Этот интервал, вероятно, реализован в качестве меры предосторожности, чтобы избежать определенных механизмов обнаружения, используемых решениями безопасности. Наконец, шеллкод приступает к выполнению второй части своего кода.
Вторая часть шеллкода загружает встроенный PE-файл на третьем этапе и вызывает его экспорт с порядковым номером. 1.
Третий этап, DLL, служит загрузчиком .NET и содержит полезную нагрузку в своем файле. .rsrc .
Для загрузки полезных данных инициализируется среда выполнения .NET. Во время инициализации .NET используются два интересных метода, по-видимому, предназначенных для обхода Windows. Сканирование интерфейса сканирования на наличие вредоносных программ (AMSI):
- Загрузчик .NET временно перехватывает
- Затем он тонко исправляет АмсиИнициализировать импортировать строку имени в .rdata часть загруженного clr.dll в aMSIiинициализировать.
Четвертый этап — это сборка .NET, запутанная с помощью ConfuserEx, которая служит загрузчиком шелл-кода. Во-первых, он расшифровывает с помощью XOR свою конфигурацию в формате XML из своих ресурсов. Усовершенствованная версия извлеченной конфигурации представлена в REF _Ref143695453 ч фигура 7
. Записи конфигурации содержат подробную информацию, связанную с сетевым взаимодействием и процессами, занесенными в черный список.
Прежде чем продолжить, он сверяет запущенные процессы со списком процессов, занесенных в черный список из конфигурации. Если совпадение обнаружено, выполнение останавливается. Важно отметить, что в анализируемом случае данный черный список не был настроен.
Затем он отправляет HTTP-запрос GET на C&C-сервер для получения некоторого шеллкода, используя параметры, указанные в конфигурации (URL, User-Agent и, возможно, прокси). К сожалению, в ходе расследования нам не удалось получить какой-либо шеллкод с командного сервера. Тем не менее, мы предполагаем, что извлекаемый контент потенциально может служить установщиком Deadglyph.
После этого полученный шеллкод выполняется во вновь созданном потоке. Дождавшись завершения выполнения потока шеллкода, загрузчик шеллкода удаляет все файлы, расположенные в каталоге. %WINDIR%ServiceProfilesLocalServiceAppDataLocalTempTfsStoreTfs_DAV.
Наконец, после 20-секундного интервала он пытается удалить себя, используя следующую команду, прежде чем завершить свою работу и выйти:
cmd.exe выбор /CY /N /DY /T 20 и Del /f /q
Самоудаление в данной цепочке не имеет смысла. Это связано с тем, что загрузчик шеллкода после внедрения запускается в браузере или системном процессе, а не работает как независимый исполняемый файл. Причем исходный файл уже был удален на втором этапе. Это наблюдение предполагает, что загрузчик шеллкода может не быть эксклюзивной полезной нагрузкой этой цепочки и может также использоваться отдельно в других операциях.
Заключение
Мы обнаружили и проанализировали сложный бэкдор, используемый группой Stealth Falcon, который мы назвали Deadglyph. Он имеет необычную архитектуру, а возможности бэкдора предоставляются его C&C в виде дополнительных модулей. Нам удалось получить три таких модуля, раскрыв лишь часть всех возможностей Deadglyph.
Примечательно, что Deadglyph может похвастаться рядом механизмов противодействия обнаружению, включая непрерывный мониторинг системных процессов и реализацию рандомизированных сетевых шаблонов. Более того, бэкдор способен самоудаляться, чтобы минимизировать вероятность его обнаружения в определенных случаях.
Кроме того, наше расследование привело нас к обнаружению привлекательной многоэтапной цепочки загрузчиков шелл-кода на VirusTotal. Мы подозреваем, что эта цепочка загрузчиков, вероятно, используется в процессе установки Deadglyph.
По любым вопросам о наших исследованиях, опубликованных на WeLiveSecurity, обращайтесь к нам по адресу угрозаintel@eset.com.
ESET Research предлагает частные аналитические отчеты об APT и потоки данных. По любым вопросам, связанным с этой услугой, посетите ESET Аналитика угроз стр.
МНК
Файлы
SHA-1 |
Имя файла |
обнаружение |
Описание |
C40F1F46D230A85F702DAA38CFA18D60481EA6C2 |
pbrtl.dll |
Win64/Deadglyph.A |
Загрузчик шеллкода реестра. |
740D308565E215EB9B235CC5B720142428F540DB |
Нет |
Win64/Deadglyph.A |
Бэкдор Deadglyph – Палач. |
1805568D8362A379AF09FD70D3406C6B654F189F |
Нет |
MSIL/Deadglyph.A |
Бэкдор Deadglyph – Оркестратор. |
9CB373B2643C2B7F93862D2682A0D2150C7AEC7E |
Нет |
MSIL/Deadglyph.A |
Сетевой модуль Оркестратора. |
F47CB40F6C2B303308D9D705F8CAD707B9C39FA5 |
Нет |
MSIL/Deadglyph.A |
Модуль таймера оркестратора. |
3D4D9C9F2A5ACEFF9E45538F5EBE723ACAF83E32 |
Нет |
Win64/Deadglyph.A.gen |
Модуль создания процессов. |
3D2ACCEA98DBDF95F0543B7C1E8A055020E74960 |
Нет |
Win64/Deadglyph.A |
Модуль чтения файлов. |
4E3018E4FD27587BD1C566930AE24442769D16F0 |
Нет |
Win64/Deadglyph.A |
Модуль сбора информации. |
7F728D490ED6EA64A7644049914A7F2A0E563969 |
Нет |
Win64/Инжектор.MD |
Первый этап цепочки загрузчиков шеллкода. |
Сертификаты
Серийный номер |
00F0FB1390F5340CD2572451D95DB1D92D |
отпечаток большого пальца |
DB3614DAF58D041F96A5B916281EA0DC97AA0C29 |
Тема CN |
РХМ ЛИМИТЕД |
Субъект О |
РХМ ЛИМИТЕД |
Тема Л |
Святой Albans |
Предметы |
Хартфордшир |
Тема С |
GB |
Эл. адрес |
rhm@rhmlimited[.]co.uk |
Действует с |
2021-03-16 00:00:00 |
Действителен до |
2022-03-16 23:59:59 |
C&C серверы
IP |
Домен |
Впервые увидели |
КОММЕНТАРИЙ |
185.25.50[.]60 |
шахматы и ссылки[.]com |
2021-08-25 |
Командный сервер Deadglyph. |
135.125.78[.]187 |
easymathpath[.]com |
2021-09-11 |
Командный сервер Deadglyph. |
45.14.227[.]55 |
присоединиться к здоровью[.]com |
2022-05-29 |
Командный сервер загрузчика шеллкода. |
Техники MITER ATT & CK
Эта таблица была построена с использованием версия 13 каркаса MITER ATT & CK.
тактика |
ID |
Имя |
Описание |
Развитие ресурсов |
Приобретение инфраструктуры: домены |
Stealth Falcon зарегистрировал домены для C&C-серверов и получил сертификат подписи кода. |
|
Приобретение инфраструктуры: виртуальный частный сервер |
Stealth Falcon использовала провайдеров VPS-хостинга для C&C-серверов. |
||
Возможности развития: вредоносное ПО |
Компания Stealth Falcon разработала специальное вредоносное ПО, включая специальные загрузчики и бэкдор Deadglyph. |
||
Получите возможности: сертификаты подписи кода |
Stealth Falcon получил сертификат подписи кода. |
||
Типы |
Инструментарий управления Windows |
Deadglyph использует WMI для выполнения цепочки загрузки. |
|
Интерпретатор команд и сценариев: командная оболочка Windows |
Загрузчик шеллкода использует cmd.exe удалить себя. |
||
Родной API |
Модуль Deadglyph использует СоздатьПроцессW и CreateProcessAsUserW API-функции для выполнения. |
||
Пользовательское выполнение: вредоносный файл |
Цепочка загрузчика шеллкода требует, чтобы пользователь дважды щелкнул ее и выполнил. |
||
Настойчивость |
Выполнение по событию: подписка на события инструментария управления Windows |
Исходный загрузчик Deadglyph сохраняется с помощью подписки на события WMI. |
|
Уклонение от защиты |
Замаскированные файлы или информация |
Компоненты мертвого глифа зашифрованы. Deadglyph Orchestrator и встроенные модули запутываются с помощью .NET Reactor. Загрузчик шеллкода запутан с помощью ConfuserEx. |
|
Удаление индикатора: удаление файла |
Deadglyph может удалить себя. Цепочка загрузчиков шеллкода удаляет себя и файлы в кеше WebDAV. |
||
Изменить реестр |
Deadglyph хранит свою конфигурацию и зашифрованные полезные данные в реестре. |
||
Управление токеном доступа |
Deadglyph может выдавать себя за другого пользователя. |
||
Деобфускация/декодирование файлов или информации |
Deadglyph расшифровывает зашифрованные строки. Цепочка загрузчика шеллкода расшифровывает его компоненты и конфигурации. |
||
Выполнение системного двоичного прокси: Rundll32 |
Начальный загрузчик Deadglyph выполняется с использованием rundll32.exe. |
||
Ограждения выполнения: ввод экологических ключей |
Deadglyph шифруется с использованием машинного ключа, полученного из системного UUID. |
||
Ослабить защиту: отключить или изменить инструменты |
Загрузчик шеллкода позволяет избежать сканирования AMSI путем внесения исправлений. clr.dll в памяти . |
||
Отражающая загрузка кода |
Deadglyph рефлексивно загружает свои модули с помощью специального PE-загрузчика. |
||
Открытие |
Обнаружение системных служб |
A Модуль Deadglyph обнаруживает сервисы с помощью запроса WMI. ВЫБЕРИТЕ * ИЗ Win32_Service. |
|
Реестр запросов |
Цепочка загрузчиков шеллкода запрашивает в реестре браузер, используемый по умолчанию. |
||
Обнаружение конфигурации сети системы |
Модуль Deadglyph обнаруживает сетевые адаптеры с помощью запросов WMI. ВЫБЕРИТЕ * ИЗ Win32_NetworkAdapter и ВЫБРАТЬ * FROM Win32_NetworkAdapterConfiguration, где InterfaceIndex=%d. |
||
Обнаружение владельца системы/пользователя |
Модуль Deadglyph обнаруживает пользователей с помощью запроса WMI. ВЫБЕРИТЕ * ИЗ Win32_UserAccount. |
||
Обнаружение процесса |
Модуль Deadglyph обнаруживает процессы с помощью запроса WMI. ВЫБРАТЬ * ИЗ Win32_Process. |
||
Обнаружение системной информации |
Модуль Deadglyph обнаруживает системную информацию, такую как версия ОС, диски, переменные среды и драйверы, с помощью запросов WMI. |
||
Обнаружение программного обеспечения |
Модуль Deadglyph обнаруживает установленное программное обеспечение с помощью запроса WMI. ВЫБРАТЬ * ИЗ Win32_Product. |
||
Обнаружение программного обеспечения: обнаружение программного обеспечения безопасности |
Модуль Deadglyph обнаруживает программное обеспечение безопасности с помощью запросов WMI. ВЫБЕРИТЕ * ИЗ АнтивирусногоПродукта, ВЫБЕРИТЕ * ИЗ AntiSpywareProduct и ВЫБЕРИТЕ * ИЗ БрандмауэраПродукт. Цепочка загрузчиков шеллкода проверяет запущенные процессы на предмет наличия решения безопасности. |
||
Транспортировка |
Данные из локальной системы |
Deadglyph имеет модуль для чтения файлов. |
|
Управление и контроль |
Протокол прикладного уровня: веб-протоколы |
Deadglyph и загрузчик шеллкода взаимодействуют с C&C-сервером по протоколу HTTP. |
|
доверенное лицо |
Deadglyph и загрузчик шеллкода могут использовать HTTP-прокси для связи с C&C. |
||
Зашифрованный канал: симметричная криптография |
Deadglyph использует AES для шифрования сообщений C&C. |
||
эксфильтрации |
Эксфильтрация через канал C2 |
Deadglyph использует канал C&C для эксфильтрации. |
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://www.welivesecurity.com/en/eset-research/stealth-falcon-preying-middle-eastern-skies-deadglyph/
- :имеет
- :является
- :нет
- :куда
- $UP
- 1
- 10
- 100
- 11
- 125
- 14
- 15%
- 179
- 180
- 20
- 2012
- 2016
- 2019
- 23
- 25
- 321
- 39
- 41
- 60
- 7
- 75
- 8
- 9
- 91
- a
- способность
- О нас
- доступ
- доступность
- доступной
- в сопровождении
- приобретать
- Действие
- активный
- Активисты
- активно
- деятельность
- акты
- на самом деле
- дополнение
- дополнительный
- продвинутый
- плюс
- AES
- После
- против
- Стремясь
- Все
- якобы
- позволяет
- уже
- причислены
- an
- анализ
- анализировать
- проанализированы
- и
- Другой
- предвосхищает
- любой
- API
- API
- появиться
- подхода
- APT
- арабский
- Арабские Эмираты
- архитектура
- МЫ
- AS
- сборка
- связанный
- предполагать
- At
- атаковать
- нападки
- автоматически
- доступен
- избежать
- назад
- задняя дверь
- основанный
- основной
- BE
- стали
- , так как:
- было
- до
- не являетесь
- верить
- ЛУЧШЕЕ
- хвастается
- тело
- изоферменты печени
- браузер
- построенный
- но
- by
- кэш
- рассчитанный
- расчет
- призывают
- под названием
- вызова
- Объявления
- Кампания
- CAN
- возможности
- способный
- столица
- нести
- случаев
- случаев
- Центр
- определенный
- сертификат
- цепь
- шансы
- изменение
- Канал
- символы
- проверил
- Проверки
- выбор
- клиент
- ближе
- код
- коллектор
- улавливается
- цвет
- COM
- сочетание
- Общий
- общаться
- общение
- Связь
- Связь
- неотразимый
- компонент
- компоненты
- Состоит
- состоит из
- скомпрометированы
- Ослабленный
- компьютер
- проведение
- Конференция
- доверие
- Конфигурация
- настроить
- подключенный
- состоит
- обращайтесь
- содержать
- содержит
- содержание
- контекст
- (CIJ)
- контраст
- контроль
- панель управления
- КОРПОРАЦИЯ
- соответствующий
- может
- соединенный
- создали
- создает
- создание
- создатель
- Текущий
- В настоящее время
- изготовленный на заказ
- Клиенты
- темнее
- данным
- Decrypt
- По умолчанию
- Степень
- в зависимости
- развертывание
- Производный
- описывать
- описано
- описание
- подробнее
- обнаруженный
- обнаружение
- определены
- развитый
- Развитие
- разница
- различный
- трудный
- направлять
- открытый
- Обнаруживает
- открытие
- отчетливый
- Разное
- приносит
- доменов
- Dont
- драйверы
- диски
- два
- продолжительность
- в течение
- динамический
- динамично
- каждый
- восток
- восточный
- фактически
- или
- возвышенный
- встроенный
- эмираты
- занятых
- работает
- позволяет
- охватывала
- зашифрованный
- шифрование
- Конечная точка
- Защита конечных точек
- обеспечивает
- организация
- запись
- Окружающая среда
- окружающий
- средах
- ошибки
- Исследования ESET
- шпионаж
- установить
- налаживание
- оценка
- Эфир (ETH)
- События
- , поскольку большинство сенаторов
- очевидный
- экспертиза
- пример
- Эксклюзивные
- выполнять
- выполненный
- Выполняет
- проведение
- выполнение
- эксфильтрации
- Экспонаты
- существует
- Выход
- опыта
- экспорт
- расширение
- обширный
- степень
- содействовал
- облегчается
- факт
- Ошибка
- сокол
- Особенность
- Особенности
- несколько
- фигура
- Файл
- Файлы
- в заключение
- результаты
- First
- 5
- Фокус
- после
- Что касается
- форма
- формат
- Бывший
- найденный
- Четвертый
- доля
- Рамки
- каркасы
- от
- полный
- функция
- функциональность
- Функции
- далее
- Более того
- генерируется
- поколение
- получить
- правительственный
- греческий
- земля
- группы
- было
- рука
- происходить
- хэш
- хешированное
- Хеширования
- Есть
- имеющий
- здесь
- HEX
- High
- Высокий профиль
- Выделите
- препятствовать
- Крючки
- кашель
- хостинг
- час
- ЧАСЫ
- HTTP
- HTTPS
- ID
- идентичный
- идентифицированный
- определения
- Idle
- if
- изображение
- немедленно
- реализация
- в XNUMX году
- инвентарь
- Импортировать
- важную
- in
- В других
- углубленный
- недоступный
- включены
- включает в себя
- В том числе
- включение
- независимые
- указывать
- info
- информация
- Инфраструктура
- по существу
- начальный
- Инициатива
- Запросы
- установка
- пример
- вместо
- Интеллекта
- Умный
- предназначенных
- интересный
- Интерфейс
- посредник
- внутренне
- Мультиязычность
- Интернет
- доступ в Интернет
- в
- интригующий
- выпустили
- ходе расследования,
- вовлеченный
- включает в себя
- Выпущен
- IT
- ЕГО
- саму трезвость
- январь
- Журналисты
- Kaspersky
- Основные
- ключи
- Знать
- знания
- известный
- язык
- Языки
- запуск
- слой
- вести
- привело
- оставил
- Длина
- письмо
- заемные средства
- Библиотека
- такое как
- вероятность
- Вероятно
- ОГРАНИЧЕНИЯ
- Ограниченный
- линия
- LINK
- связанный
- Список
- Списки
- загрузка
- загрузчик
- погрузка
- грузы
- локальным
- расположенный
- логика
- дольше
- посмотреть
- терять
- низший
- Главная
- сделать
- ДЕЛАЕТ
- вредоносных программ
- управлять
- управляемого
- управление
- способ
- многих
- карта
- Совпадение
- Май..
- означает,
- проводить измерение
- механизм
- механизмы
- Память
- метод
- Microsoft
- средняя
- Ближний Восток
- может быть
- минут
- смешанный
- изменять
- модуль
- Модули
- Мониторинг
- Мониторы
- БОЛЕЕ
- Более того
- с разными
- имя
- Названный
- имена
- родной
- Откройте
- необходимо
- сеть
- сеть
- Новые
- Новые
- вновь
- нет
- примечательный
- особенно
- в своих размышлениях
- сейчас
- номер
- получать
- полученный
- происходить
- of
- предлагают
- Предложения
- .
- on
- ONE
- те,
- только
- работает
- операционный
- операция
- Операционный отдел
- Операторы
- or
- оригинал
- OS
- Другое
- в противном случае
- наши
- внешний
- Outlook
- выходной
- за
- обзор
- собственный
- P&E
- страница
- панель
- параметры
- часть
- части
- проходит
- Патчи
- Заделка
- путь
- паттеранами
- в ожидании
- процент
- выполнены
- периодический
- настойчивость
- Платформа
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- пожалуйста
- пожалуйста, свяжитесь с
- Точка
- пунктов
- политический
- После
- потенциал
- потенциально
- необходимость
- присутствие
- представить
- представлены
- предотвращать
- предотвращает
- предварительно
- первичный
- приоритет
- частная
- привилегии
- вероятно
- доходы
- процесс
- обрабатываемых
- Процессы
- Программирование
- языки программирования
- Проект
- правильный
- протокол
- обеспечивать
- при условии
- поставщики
- приводит
- полномочие
- что такое варган?
- опубликованный
- цель
- целей
- Катар
- Запросы
- случайный
- Рандомизированное
- хаотичность
- ассортимент
- скорее
- реактор
- читатель
- Reading
- получила
- получает
- снижает
- привязка
- назвало
- область
- зарегистрированный
- реестра
- Связанный
- оставаться
- осталось
- остатки
- удаление
- Отчеты
- представляет
- репутация
- запросить
- Запросы
- требуется
- исследованиям
- Постановления
- ресурс
- Полезные ресурсы
- ответственный
- ОТДЫХ
- результат
- в результате
- возвращают
- Возвращает
- Reuters
- показывать
- Роли
- корень
- рутина
- Бег
- работает
- s
- Сохранность
- то же
- Сан -
- видел
- сканирование
- сканирование
- Во-вторых
- секунды
- Раздел
- разделах
- безопасность
- Программное обеспечение безопасности
- Отправить
- посылает
- смысл
- послать
- отдельный
- сентябрь
- служить
- сервер
- служит
- обслуживание
- Услуги
- набор
- Наборы
- настройки
- несколько
- разделение
- показанный
- подписанный
- подписание
- аналогичный
- Аналогичным образом
- с
- одинарной
- Размеры
- небо
- небольшой
- So
- Software
- Решение
- Решения
- некоторые
- удалось
- сложный
- утонченность
- специально
- конкретно
- указанный
- шпионских программ
- Этап
- начинается
- Область
- Stealth
- хранить
- магазины
- строка
- Структура
- предмет
- подписка
- последующее
- впоследствии
- такие
- Предлагает
- подходящее
- поставляется
- поддержка
- превосходящие
- подвесной
- подозрительный
- система
- системы
- ТАБЛИЦЫ
- взять
- с
- цель
- целевое
- направлены
- направлена против
- Сложность задачи
- задачи
- Технический
- Технический анализ
- снижения вреда
- чем
- который
- Ассоциация
- их
- Их
- тогда
- Там.
- Эти
- они
- В третьих
- этой
- те
- угроза
- угрозы
- три
- порог
- Через
- время
- отметка времени
- Название
- в
- знак
- инструменты
- Всего
- к
- традиционный
- перевод
- переданы
- лечение
- срабатывает
- правда
- ОЧЕРЕДЬ
- два
- напишите
- Типы
- типично
- не в состоянии
- под
- подвергается
- юникода
- созданного
- Уникальные особенности
- Объединенный
- Объединенные Арабские Эмираты
- неизвестный
- отпереть
- UNNAMED
- до
- необычный
- нежелательный
- обновление
- Updates
- загружено
- на
- URL
- us
- Применение
- использование
- используемый
- Информация о пользователе
- пользователей
- использования
- через
- использовать
- использует
- ценностное
- Наши ценности
- разнообразие
- различный
- Различная
- версия
- очень
- с помощью
- Жертва
- Виртуальный
- Войти
- визуально
- ждать
- Ожидание
- законопроект
- we
- Web
- были
- Что
- когда
- будь то
- который
- в то время как
- Википедия.
- окна
- в
- без
- XML
- лет
- Да
- еще
- зефирнет