Эта новая группа кибершпионажа, ориентированная в основном на Азию, использует недокументированные инструменты, в том числе стеганографическое извлечение полезной нагрузки PowerShell из файлов PNG.
Исследователи ESET недавно обнаружили целевые атаки с использованием незадокументированных инструментов на различные известные компании и местные органы власти, в основном в Азии. Эти атаки проводились ранее неизвестной шпионской группой, которую мы назвали Worok и которая была активна как минимум с 2020 года. Набор инструментов Worok включает загрузчик C++ CLRLoad, бэкдор PowerShell PowHeartBeat и загрузчик C# PNGLoad, который использует стеганографию для извлечения скрытых вредоносных программ. полезные нагрузки из файлов PNG.
Кто такой Ворок?
Во время ProxyShell (CVE-2021-34523) раскрытия уязвимости в начале 2021 года мы наблюдали активность различных групп APT. Один показал характеристики, общие с TA428:
- Время активности
- Целевые вертикали
- Использование ShadowPad
В остальном набор инструментов сильно отличается: например, TA428 принимал участие в Компрометация рабочего стола в 2020 году. Мы считаем, что связи недостаточно сильны, чтобы рассматривать Worok как ту же группу, что и TA428, но эти две группы могут иметь общие инструменты и общие интересы. Мы решили создать кластер и назвали его Workok. Имя было выбрано после мьютекса в загрузчике, используемом группой. Дальнейшая работа с вариантами тех же инструментов была затем связана с этой группой. Согласно телеметрии ESET, Workok был активен с конца 2020 года и продолжает оставаться активным на момент написания этой статьи.
Еще в конце 2020 года Workok был нацелен на правительства и компании в нескольких странах, в частности:
- Телекоммуникационная компания в Восточной Азии
- Банк в Средней Азии
- Компания морской отрасли в Юго-Восточной Азии
- Государственное учреждение на Ближнем Востоке
- Частная компания на юге Африки
С 2021-05 по 2022-01 наблюдался значительный перерыв в наблюдаемых операциях, но в 2022-02 XNUMX-XNUMX возобновилась активность рабочих, нацеленных на:
- Энергетическая компания в Центральной Азии
- Предприятие государственного сектора в Юго-Восточной Азии
На рис. 1 представлена визуальная тепловая карта целевых регионов и вертикалей.
Учитывая профили целей и инструменты, которые мы видели развернутыми против этих жертв, мы думаем, что главная цель Ворока — украсть информацию.
Технический анализ
Хотя большинство первоначальных обращений неизвестны, в некоторых случаях до 2021 и 2022 годов мы видели эксплойты, используемые против уязвимостей ProxyShell. В таких случаях веб-оболочки обычно загружаются после использования этих уязвимостей, чтобы обеспечить постоянство в сети жертвы. Затем операторы использовали различные имплантаты, чтобы получить дополнительные возможности.
Как только доступ был получен, операторы развернули несколько общедоступных инструментов для разведки, в том числе Mimikatz, земляной червь, РеГеорги НБТскан, а затем развернули свои пользовательские имплантаты: загрузчик первого этапа, за которым последовал загрузчик .NET второго этапа (PNGLoad). К сожалению, нам не удалось получить какие-либо окончательные полезные данные. В 2021 году загрузчиком первого этапа была сборка CLR (CLRLoad), а в 2022 году она была заменена, в большинстве случаев, полнофункциональным бэкдором PowerShell (PowHeartBeat) — обе цепочки выполнения изображены на рисунке 2. Эти три инструменты подробно описаны в следующих подразделах.
CLRLoad: загрузчик сборки CLR
CLRLoad — это универсальная среда предустановки Windows, которую мы видели как в 32-разрядной, так и в 64-разрядной версиях. Это загрузчик, написанный на C++, который загружает следующую стадию (PNGLoad), которая должна быть Сборка общеязыковой среды выполнения (CLR) DLL-файл. Этот код загружается из файла, расположенного на диске в законном каталоге, предположительно для того, чтобы ввести в заблуждение жертв или спасателей, заставив их думать, что это законное программное обеспечение.
Некоторые примеры CLRLoad начинаются с декодирования полного пути к файлу, содержимое которого они будут загружать на следующем этапе. Эти пути к файлам кодируются однобайтовым XOR с разными ключами в каждом образце. В декодированном или открытом тексте эти пути к файлам являются абсолютными, и мы столкнулись со следующими:
- C:Program FilesVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
- C:Программные файлыUltraViewermsvbvm80.dll
- C:Программные файлыInternet ExplorerJsprofile.dll
- C:Program FilesWinRarRarExtMgt.dll
- C:Program Files (x86)Программное обеспечение FoxitFoxit Readerlucenelib.dll
Затем создается мьютекс, и в каждом примере мы видели разные имена. Загрузчик проверяет этот мьютекс; если найдено, то завершается, потому что загрузчик уже запущен. В одном из примеров мьютекс Wo0r0KGWhYGO был встречен, что дало группе название Ворок.
Затем CLRLoad загружает сборку CLR из возможно декодированного пути к файлу. В качестве неуправляемого кода CLRLoad достигает этого с помощью CorBindToRuntimeEx Вызовы Windows API в 32-разрядных вариантах или CLRCreateInstance вызовы в 64-битных вариантах.
PowHeartBeat: бэкдор PowerShell
PowHeartBeat — это полнофункциональный бэкдор, написанный на PowerShell, запутанный с использованием различных методов, таких как сжатие, кодирование и шифрование. Основываясь на телеметрии ESET, мы считаем, что PowHeartBeat заменил CLRLoad в более поздних кампаниях Workok в качестве инструмента, используемого для запуска PNGLoad.
Первый уровень кода бэкдора состоит из нескольких фрагментов кода PowerShell в кодировке base64. После восстановления полезной нагрузки она выполняется через IEX. После декодирования выполняется еще один слой запутанного кода, который мы можем видеть на рисунке 3.
Второй слой бэкдора сначала base64 декодирует следующий слой своего кода, который затем расшифровывается с помощью Тройной DES (режим СВС). После расшифровки этот код распаковывается с помощью GZIP алгоритм, тем самым давая третий слой кода PowerShell, который и является фактическим бэкдором. Он разделен на две основные части: конфигурация и обработка команд бэкдора.
Основной слой кода бэкдора также написан на PowerShell и использует HTTP или ICMP для связи с C&C-сервером. Он работает так, как показано на рисунке 4.
Конфигурация
Конфигурация содержит несколько полей, включая номер версии, необязательную конфигурацию прокси и адрес C&C. Таблица 1 описывает значения полей конфигурации в различных версиях, которые мы наблюдали.
Таблица 1. Значения полей конфигурации
имя поля | Описание |
---|---|
нос / ikuyrtydyfg (другие образцы) |
Не используется. |
ID клиента | Идентификатор клиента, используемый для следующих целей: · В качестве ценности при построении Заголовок cookie для связи с C&C. · В качестве криптографического артефакта для шифрования отправляемых данных. |
Версия | Номер версии PowHeartBeat. |
ЭксекТаймс | Количество разрешенных попыток выполнения при выдаче ВыполнитьCmd (выполняется команда) команда. |
Агент пользователя | Пользовательский агент, используемый для связи с C&C. |
Referer | Referer заголовок, используемый для связи C&C. |
акцептэнкодинг | Не используется. |
CookieClientId CookieTaskId CookieTerminalId |
Значения, используемые для построения Cookie заголовок для связи C&C. |
URLHttps | Протокол, используемый для связи C&C. |
URL-домен Айпи адрес Домены |
URL, домен(ы) или IP-адрес, используемый в качестве C&C-сервера. Если Домены не пустой, он выбирается вместо Айпи адрес, В других случаях Айпи адрес взят. |
URLSendHeartBeat | URL-адрес, используемый, когда бэкдор запрашивает команды у командного сервера. |
URLSendResult | URL-адрес, используемый, когда бэкдор отправляет результаты команды обратно на C&C-сервер. |
Получить URL | Полный URL-адрес, используемый PowHeartBeat для запроса команд с C&C-сервера. Это объединение элементов URL выше. |
путурл | Такой же как Получить URL но используется для отправки результатов команды обратно на сервер C&C. |
текущий путь | Не используется. |
Проксиенаблефлаг | Флаг, указывающий, должен ли бэкдор использовать прокси для связи с C&C-сервером. |
Проксимсг | Адрес прокси для использования, если Проксиенаблефлаг на $ правда. |
Интервал | Время в секундах, в течение которого сценарий бездействует между запросами GET. |
Базисконфигпуть | Путь к дополнительному файлу конфигурации, содержащему UpTime, простой, Интервал по умолчаниюи Домены. Эти значения будут переопределены, если файл присутствует. |
UpTime | Время суток, с которого бэкдор начинает работать, т. е. начинает делать GET-запросы к C&C-серверу. |
простой | Время суток, до которого бэкдор может работать, то есть время, когда он прекращает делать запросы к C&C-серверу. |
Индекс Домена | Индекс текущего доменного имени, используемого для связи с C&C-сервером. Если запрос возвращает сообщение об ошибке, отличное от 304 («Не модифицировано»), Индекс Домена увеличена. |
Секретный ключ | Ключ, используемый для расшифровки/шифрования конфигурации. Конфигурация шифруется многобайтовым XOR. |
ЕслиЛог | Не используется. |
Путь к файлу журнала | Флаг, указывающий, включено ли ведение журнала. |
путь к журналу | Путь к файлу журнала. |
ПроксиФайл | Путь к файлу дополнительной конфигурации прокси. Если он пуст или не найден в файловой системе, бэкдор извлекает настройки прокси пользователя из значения реестра. HKCUПрограммное обеспечениеMicrosoftWindowsCurrentVersionНастройки ИнтернетаProxyServer . |
ИфКонфиг | Флаг, указывающий, следует ли использовать файл конфигурации. |
На рис. 5 показан пример конфигурации, извлеченной из образца PowHeartBeat (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
$Script:nouse = 100; if(Test-Path $MyInvocation.MyCommand.Path){Remove-item $MyInvocation.MyCommand.Path -Force;} $Script:ClientId = “83”; $Script:Version = “2.1.3.0003”; $Script:ExecTimes = 10; $Script:UserAgent = “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3487.100 Safari/537.36”; $Script:Referer = “www.adobe.com”; $Script:AcceptEncoding = “text/html,app1ication/xhtml+xml,app1ication/xml;q=0.9,*/*;q=0.8”; $Script:CookieClientId = “s_ecid”; $Script:CookieTaskId = “aam_uuid”; $Script:CookieTerminalId = “AAMC_adobe_0”; $Script:UrlHttps = “http://”; $Script:UrlDomain= ” 118.193.78[.]22:443″; $Script:UrlSendHeartBeat = “/latest/AdobeMessagingClient.js”; $Script:UrlSendResult = “/content/dam/offers-homepage/homepage.jpg”; $Script:GetUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendHeartBeat; $Script:PutUrl = $Script:UrlHttps + $Script:UrlDomain + $Script:UrlSendResult; $Script:currentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition; $Script:ProxyEnableFlag = $false; $Script:Proxymsg; $Script:Interval = 10 ; $Script:BasicConfigPath = “C:ProgramDataunins.dat”; $Script:UpTime = 0; $Script:DownTime = 24; $Script:Domains; $Script:DomainIndex; $Script:SecretKey = “###ConfigKey###”; #$Script:IfLog = $true; $Script:IfLogFilePath = “C:ProgramDatatpncp.dat”; $Script:logpath = “C:ProgramDataunins000.dat”; $Script:ProxyFile = “C:ProgramDatahwrenalm.dat”; $Script:IfConfig = $false; |
Рисунок 5. Пример конфигурации
Шифрование данных
PowHeartBeat шифрует журналы и дополнительное содержимое файла конфигурации.
Содержимое файла журнала шифруется с помощью многобайтового XOR с ключом, указанным в образце открытым текстом. Интересно, ID клиента используется как соль для индекса в массиве ключей. Ключ представляет собой 256-байтовый массив, который был идентичен во всех образцах, с которыми мы сталкивались. Содержимое дополнительного конфигурационного файла шифруется многобайтовым XOR со значением из Секретный ключ как его ключ.
Коммуникации C&C
PowHeartBeat использовал HTTP для связи C&C до версии 2.4, а затем переключился на ICMP. В обоих случаях связь не шифруется.
HTTP
В бесконечном цикле бэкдор отправляет GET-запрос на C&C-сервер, запрашивая команду для выполнения. Зашифрованный ответ расшифровывается бэкдором, который обрабатывает команду и записывает вывод команды в файл, содержимое которого затем отправляется на C&C-сервер через POST-запрос.
Формат GET-запросов следующий:
GET <UrlSendHeartBeat> HTTP/1.1 User-Agent: <UserAgent> Referer: <Referer> Host: <Domain> Cookie: <CookieClientId>=<ClientId> Connection: close |
Обратите внимание, что запрос создается с использованием одноименных полей конфигурации.
В ответе от C&C-сервера третий байт содержимого — это идентификатор команды, указывающий, какая команда должна быть обработана бэкдором. Мы назовем это идентификатор_команды. Оставшееся содержимое ответа будет передано в качестве аргумента обрабатываемой команде. Это содержимое шифруется с помощью алгоритма, показанного на рисунке 6. идентификатор задачи значение файла cookie, названного в честь CookieTaskIdзначение из конфигурации.
1 2 3 4 5 6 7 8 9 10 |
o[int] $pos = $taskId % 256; for ($i = 0; $i -lt $tmpBytes.Value.Length; $i++) { $pos = $pos + $clientId; if ($pos -ge 256) { $pos = $pos % 256; } $tmpBytes.Value[$i] = [byte]($tmpBytes.Value[$i] -bxor $hexEnc[$pos]); } |
Рисунок 6. Алгоритм шифрования данных контента Requests
Ответ от C&C-сервера также содержит еще один файл cookie, имя которого задается параметром бэкдора. CookieTerminalId переменная конфигурации. Значение этого файла cookie повторяется в POST-запросе от бэкдора и не должно быть пустым. После выполнения команды бэкдора PowHeartBeat отправляет результат в виде POST-запроса на C&C-сервер. Результат отправляется в виде файла с именем .png.
ICMP
Начиная с версии 2.4 PowHeartBeat, HTTP был заменен на ICMP, отправлял пакеты с тайм-аутом в шесть секунд и нефрагментированный. Связь через ICMP, скорее всего, является способом избежать обнаружения.
В версиях 2.4 и более поздних нет серьезных изменений, но мы заметили некоторые изменения в коде:
- PowHeartBeat отправляет пакет пульса в каждом цикле, содержащем строку АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ, прежде чем запрашивать команду. Это информирует C&C сервер о том, что бэкдор готов к приему команд.
- Запросы на получение команд, выполняемых бэкдором, содержат строку abcdefghijklmnop.
Пакеты Heartbeat имеют формат, описанный на рисунке 7.
Разница между ID клиента и флаг клиента является то, что ID клиента отличается в каждом образце, тогда как флаг клиента одинакова во всех образцах, использующих ICMP. флаг сердцебиения указывает на то, что бэкдор посылает пульс. Ответ от C&C-сервера имеет формат, показанный на рисунке 8.
флажок здесь указывает, есть ли команда для бэкдора. Запросы на получение команд имеют формат, описанный на рисунке 9.
Обратите внимание, что режим ICMP бэкдора позволяет получать неограниченное количество данных, разбитых на порции, а переменные длина данных, текущая позиция и общая длина используются для отслеживания передаваемых данных. Ответы на эти запросы имеют формат, описанный на рисунке 10.
Как и в ответах HTTP, идентификатором команды является третий байт данным.
После семи последовательных ICMP-ответов с пустым или непоследовательно отформатированным содержимым передача между бэкдором и командным сервером считается завершенной.
Что касается запросов на отправку результата выполненной команды на C&C-сервер, режим сервера изменен на почтовый режим, а окончательная строка (abcdefghijklmnop) изменяется для данных результата.
Команды бэкдора
PowHeartBeat имеет различные возможности, включая выполнение команд/процессов и манипулирование файлами. В таблице 2 перечислены все команды, поддерживаемые различными проанализированными образцами.
Табл. 2. Описание команд PowHeartBeat
Фамилия | Идентификатор команды | Описание |
---|---|---|
команда | 0x02 | Выполните команду PowerShell. |
Exe | 0x04 | Выполнить команду как процесс. |
Файл загружен | 0x06 | Загрузите файл на компьютер жертвы. Содержимое файла сжато gzip. |
Загрузка файла | 0x08 | Загрузите файл с компьютера-жертвы и верните путь к файлу, длину файла, время создания, время доступа и содержимое файла на C&C-сервер. |
ФайлПросмотр | 0x0A | Получить информацию о файле определенного каталога, в частности: · Имена файлов · Атрибуты файла · Последнее время записи · Содержимое файла |
ФайлУдалить | 0x0C | Удалить файл. |
Переименование файла | 0x0E | Переименуйте или переместите файл. |
Изменитьдир | 0x10 | Изменить текущее рабочее местоположение бэкдора. |
Инфо | 0x12 | Получить категорию информации по указанному аргументу: · "Основная информация": ID клиента, Версия, имя хоста, IP-адреса, explorer.exe информация о версии и размере, ОС (архитектура и флаг, указывающий, является ли машина сервером), Интервал, текущий каталог, информация о диске (имя, тип, свободное место и общий размер), текущее время · «Информация о временном интервале»: Интервал и текущее время · «Информация о домене»: расшифрованное содержимое конфигурационного файла |
Конфиг | 0x14 | Обновите содержимое файла конфигурации и перезагрузите конфигурацию. |
Нет | 0x63 | Выход через заднюю дверь. |
В случае ошибок на стороне бэкдора, бэкдор использует специальный идентификатор команды 0x00 в POST-запросе к C&C-серверу, указывая тем самым на возникновение ошибки.
Обратите внимание, что перед отправкой информации обратно на C&C-сервер данные сжимаются gzip.
PNGLoad: стеганографический загрузчик
PNGLoad — это полезная нагрузка второго этапа, развернутая Worok на скомпрометированных системах и, согласно телеметрии ESET, загружаемая либо с помощью CLRLoad, либо с помощью PowHeartBeat. Хотя мы не видим в PowHeartBeat никакого кода, который напрямую загружает PNGLoad, бэкдор имеет возможность загружать и выполнять дополнительные полезные нагрузки с C&C-сервера, что, вероятно, является тем, как злоумышленники развернули PNGLoad на системах, скомпрометированных с помощью PowHeartBeat. PNGLoad — это загрузчик, который использует байты из файлов PNG для создания полезной нагрузки для выполнения. Это 64-битный исполняемый файл .NET, запутанный .NET-реактор — которое маскируется под законное программное обеспечение. Например, на рис. 11 показаны заголовки CLR образца, маскирующегося под WinRAR DLL.
После деобфускации присутствует только один класс. В этом классе есть основной путь атрибут, содержащий путь к каталогу, в котором бэкдор ищет, включая его подкаталоги, файлы с . Png расширения, как показано на рисунке 12.
Каждый . Png файл, найденный этим поиском основной путь затем проверяется на наличие стеганографически встроенного контента. Во-первых, наименее значимый бит значений R (красный), G (зеленый), B (синий) и A (альфа) каждого пикселя извлекается и собирается в буфер. Если первые восемь байтов этого буфера совпадают с магическим числом, показанным на рис. 13, а следующее восьмибайтовое значение, control, не равно нулю, файл проходит стеганографическую проверку содержимого PNGLoad. Для таких файлов обработка продолжается с расшифровкой остатка буфера с помощью многобайтового исключающего ИЛИ с использованием ключа, хранящегося в файле PNGLoad. SecretKeyBytes атрибут, а затем расшифрованный буфер распаковывается с помощью gzip. Ожидается, что результатом будет сценарий PowerShell, который будет запущен немедленно.
Интересно, что операции, выполняемые PNGLoad, регистрируются в файле, путь которого хранится в переменной Путь к файлу журнала. Операции регистрируются только в том случае, если присутствует файл, путь которого указан внутренней переменной Путь к файлу журнала.
Нам не удалось получить образец . Png используется вместе с PNGLoad, но способ работы PNGLoad предполагает, что он должен работать с допустимыми файлами PNG. Чтобы скрыть вредоносную полезную нагрузку, Worok использует объекты Bitmap в C#, которые берут только информацию о пикселях из файлов, а не метаданные файлов. Это означает, что Worok может скрывать свою вредоносную полезную нагрузку в действительных, безобидных на вид изображениях PNG и, таким образом, скрываться на виду.
Заключение
Worok — это группа кибершпионажа, которая разрабатывает собственные инструменты, а также использует существующие инструменты для компрометации своих целей. Кража информации у своих жертв — это то, что, по нашему мнению, преследуют операторы, потому что они сосредоточены на известных организациях в Азии и Африке, нацеленных на различные секторы, как частные, так и государственные, но с особым акцентом на государственные структуры. Время активности и набор инструментов указывают на возможную связь с TA428, но мы делаем эту оценку с низкой достоверностью. Их собственный набор инструментов включает два загрузчика — один на C++ и один на C# .NET — и один бэкдор PowerShell. Хотя наша видимость ограничена, мы надеемся, что проливая свет на эту группу, мы побудим других исследователей поделиться информацией об этой группе.
ESET Research теперь также предлагает частные аналитические отчеты об APT и потоки данных. По любым вопросам, связанным с этой услугой, посетите ESET Аналитика угроз стр.
МНК
Файлы
SHA-1 | Имя файла | Имя обнаружения ESET | КОММЕНТАРИЙ |
---|---|---|---|
3A47185D0735CDECF4C7C2299EB18401BFB328D5 | скрипт | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
27ABB54A858AD1C1FF2863913BDA698D184E180D | скрипт | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
678A131A9E932B9436241402D9727AA7D06A87E3 | скрипт | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0003. |
757ABA12D04FD1167528FDD107A441D11CD8C427 | скрипт | PowerShell/PowHeartBeat.B | PowHeartBeat 2.1.3.0003. |
54700A48D934676FC698675B4CA5F712C0373188 | скрипт | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F53C138CB1B87D8FC9253A7088DB30B25389AF | скрипт | PowerShell/PowHeartBeat.A | PowHeartBeat 1.1.3.0002. |
C2F1954DE11F72A46A4E823DE767210A3743B205 | tmp.ps1 | PowerShell/PowHeartBeat.B | PowHeartBeat 2.4.3.0004. |
CE430A27DF87A6952D732B4562A7C23BEF4602D1 | tmp.ps1 | PowerShell/PowHeartBeat.A | PowHeartBeat 2.1.3.0004. |
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF | скрипт | PowerShell/PowHeartBeat.A | PowHeartBeat 2.4.3.0003. |
4721EEBA13535D1EE98654EFCE6B43B778F13126 | vix64.dll | MSIL/PNGLoader.A | PNGLoader. |
728A6CB7A150141B4250659CF853F39BFDB7A46C | RarExtMgt.dll | MSIL/PNGLoader.A | PNGLoader. |
864E55749D28036704B6EA66555A86527E02AF4A | Jsprofile.dll | MSIL/PNGLoader.A | PNGLoader. |
8DA6387F30C584B5FD3694A99EC066784209CA4C | vssxml.dll | MSIL/PNGLoader.A | PNGLoader. |
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 | xsec_1_5.dll | MSIL/PNGLoader.A | PNGLoader. |
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE | msvbvm80.dll | MSIL/PNGLoader.A | PNGLoader. |
CDB6B1CAFEE098615508F107814179DEAED1EBCF | lucenelib.dll | MSIL/PNGLoader.A | PNGLoader. |
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D | vsstrace.dll | Win64/CLRLLoad.C | CLRЗагрузить. |
F181E87B0CD6AA4575FD51B9F868CA7B27240610 | ncrypt.dll | Win32/CLRLLoad.A | CLRЗагрузить. |
4CCF0386BDE80C339EFE0CC734CB497E0B08049C | ncrypt.dll | Win32/CLRLLoad.A | CLRЗагрузить. |
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 | wlbsctrl.dll | Win64/CLRLLoad.E | CLRЗагрузить. |
05F19EBF6D46576144276090CC113C6AB8CCEC08 | wlbsctrl.dll | Win32/CLRLLoad.A | CLRЗагрузить. |
A5D548543D3C3037DA67DC0DA47214B2C2B15864 | secur32.dll | Win64/CLRLLoad.H | CLRЗагрузить. |
CBF42DCAF579AF7E6055237E524C0F30507090F3 | dbghelp.dll | Win64/CLRLLoad.C | CLRЗагрузить. |
Пути файлов
Некоторые из основной путь, Путь к файлу журнала и Путь к файлу журнала значения, с которыми мы столкнулись в примерах PNGLoad:
основной путь | Путь к файлу журнала | Путь к файлу журнала |
---|---|---|
C:Программные файлыVMwareИнструменты VMware | C:Program FilesVMwareVMware ToolsVMware VGAuthreadme.txt | C:Program FilesVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll |
C:Программные файлыWinRar | C:Program FilesWinRararinstall.log | C:Программные файлыWinRardes.dat |
C:Программные файлыUltraViewer | C:Program FilesUltraViewerCopyRights.dat | C:Программные файлыUltraVieweruvcr.dll |
Cеть
Домен | IP |
---|---|
Ничто | 118.193.78[.]22 |
Ничто | 118.193.78[.]57 |
авиа.туристическое рекламное[.]агентство | 5.183.101[.]9 |
Central.suhypercloud[.]org | 45.77.36[.]243 |
Мьютексы
В примерах CLRLoad имена мьютексов, с которыми мы столкнулись, следующие:
AB82UduGX0EX
ad8TbUIZl5Ga
Mr2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGWhYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxMy
Полный список индикаторов компрометации (IoC) и образцы можно найти в наш репозиторий GitHub.
Техники MITER ATT & CK
Эта таблица была построена с использованием версия 11 каркаса MITER ATT & CK.
тактика | ID | Фамилия | Описание |
---|---|---|---|
разведывательный | T1592.002 | Сбор информации о хосте-жертве: программное обеспечение | PowHeartBeat собирает explorer.exe Информация. |
T1592.001 | Сбор информации о хосте-жертве: оборудование | PowHeartBeat собирает информацию о дисках. | |
T1590.005 | Сбор информации о сети жертвы: IP-адреса | PowHeartBeat собирает IP-адреса взломанного компьютера. | |
Развитие ресурсов | T1583.004 | Получить инфраструктуру: сервер | Workok использует собственные C&C-серверы. |
T1588.002 | Получить возможности: инструмент | Workok развернул несколько общедоступных инструментов на скомпрометированных машинах. | |
T1583.001 | Приобретение инфраструктуры: домены | Компания Workok зарегистрировала домены для облегчения связи и подготовки C&C. | |
T1588.005 | Получить возможности: эксплойты | Workok использовал уязвимость ProxyShell. | |
T1587.001 | Возможности развития: вредоносное ПО | Компания Worok разработала собственные вредоносные программы: CLRLoad, PNGLoad, PowHeartBeat. | |
T1587.003 | Возможности развития: цифровые сертификаты | Компания Workok создала SSL-сертификаты Let’s Encrypt, чтобы включить взаимную аутентификацию TLS для вредоносных программ. | |
Типы | T1059.001 | Интерпретатор команд и сценариев: PowerShell | PowHeartBeat написан на PowerShell. |
Настойчивость | T1505.003 | Компонент серверного программного обеспечения: веб-оболочка | Workok использует веб-оболочку РеГеорг. |
Уклонение от защиты | T1140 | Деобфускация/декодирование файлов или информации | Worok использует различные пользовательские схемы на основе XOR для шифрования строк и журналов в PowHeartBeat, PNGLoad и CLRLoad. |
T1036.005 | Маскарадинг: Соответствие законному имени или местоположению | Образцы PNGLoad развертываются в законных каталогах VMWare. | |
Доступ к учетным данным | T1003.001 | Сброс учетных данных ОС: память LSASS | Workok использует Mimikatz для вывода учетных данных из памяти LSASS. |
Открытие | T1082 | Обнаружение системной информации | PowHeartBeat собирает информацию об ОС. |
T1083 | Обнаружение файлов и каталогов | PowHeartBeat может отображать файлы и каталоги. | |
T1046 | Обнаружение сетевых служб | Ворок использует НбтСкан для получения сетевой информации о скомпрометированных машинах. | |
T1124 | Обнаружение системного времени | PowHeartBeat собирает информацию о времени жертвы. | |
Транспортировка | T1005 | Данные из локальной системы | PowHeartBeat собирает данные из локальной системы. |
T1560.002 | Архивировать собранные данные: Архивировать через библиотеку | PowHeartBeat сжимает данные gzip перед их отправкой на C&C-сервер. | |
Управление и контроль | T1071.001 | Протокол прикладного уровня: веб-протоколы | Некоторые варианты PowHeartBeat используют HTTP в качестве протокола связи с C&C-сервером. |
T1090.001 | Прокси: внутренний прокси | PowHeartBeat обрабатывает конфигурацию прокси на машине жертвы. | |
T1001.002 | Обфускация данных: стеганография | PNGLoad извлекает значения пикселей из . Png файлы для восстановления полезной нагрузки. | |
T1573.002 | Зашифрованный канал: асимметричная криптография | PowHeartBeat обрабатывает связь HTTPS с C&C-сервером. | |
T1095 | Протокол не прикладного уровня | Некоторые варианты PowHeartBeat используют ICMP в качестве протокола связи с C&C-сервером. | |
T1132.001 | Кодирование данных: стандартное кодирование | Worok использует кодировку XOR в PowHeartBeat и PNGLoad. | |
T1132.002 | Кодирование данных: нестандартное кодирование | Workok использует алгоритмы кодирования XOR, которые используют дополнительную соль. | |
эксфильтрации | T1041 | Эксфильтрация через канал C2 | PowHeartBeat использует свой канал связи C&C для кражи информации. |
- блокчейн
- Coingenius
- кошельки с криптовалютами
- cryptoexchange
- информационная безопасность
- киберпреступники
- Информационная безопасность
- Департамент внутренней безопасности
- цифровые кошельки
- Исследования ESET
- брандмауэр
- Kaspersky
- вредоносных программ
- Mcafee
- НексБЛОК
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- VPN
- Мы живем в безопасности
- безопасности веб-сайтов
- зефирнет