Анастасия Тихонова
Руководитель группы исследования сложных угроз Threat Intelligence Group-IB
Дмитрий Купин
Ведущий специалист по анализу вредоносного кода Threat Intelligence Group-IB
В середине мая 2021 года эксперты из SOLAR JSOC вместе с Национальным координационным центром по компьютерным инцидентам (НКЦКИ) выпустили отчет о серии целенаправленных атак, выявленных в 2020 году. Согласно исследованию, главной целью атакующих в России были федеральные органы исполнительной власти (ФОИВы).
Изучая это исследование, Анастасия Тихонова, руководитель группы исследования сложных угроз Threat Intelligence Group-IB, и Дмитрий Купин, ведущий специалист по анализу вредоносного кода Threat Intelligence Group-IB, поймали себя на мысли, что уже видели похожие инструменты в более ранних APT-атаках из Китая.
Китайские прогосударственные группы — одно из самых многочисленных и агрессивных хакерских сообществ. Несколько десятков групп проводят атаки по всему миру, в том числе и в России. В первую очередь хакеров интересуют государственные ведомства, промышленные объекты, военные подрядчики, научно-исследовательские институты. Главная цель — шпионаж: атакующие получают доступ к конфиденциальным данным организаций и стараются как можно дольше скрыть свое присутствие. Известны случаи, когда злоумышленники находились незамеченными в сети жертвы по несколько лет.
К сожалению, в отчете SOLAR JSOC и НКЦКИ не было индикаторов компрометации, поэтому эксперты опирались на описанные функциональные возможности и предоставленные скриншоты вредоносного кода. В итоге исследователи Group-IB пришли к любопытным выводам о том, какие из китайских групп могли стоять за атаками на российские ФОИВы в 2020 году, какие инструменты они использовали и как эволюционировало это вредоносное ПО.
Ключевые выводы
Это исследование посвящено вредоносному ПО Webdav-O, которое было замечено в атаке против российских ФОИВов в 2020 году.
Специалисты Group-IB обнаружили две версии трояна Webdav-O: для систем x86 и x64.
В ходе сравнения фрагментов кода удалось доказать, что троян Webdav-O x64 был использован в атаках на ФОИВы в 2020 году, но на самом деле существует как минимум с 2018 года.
Специалисты Group-IB обнаружили, что Webdav-O имеет схожие команды с известным трояном с BlueTraveller (aka RemShell) китайского происхождения и связан с группировкой TaskMasters.
Ранее эксперты Sentinel Labs опубликовали исследование о вредоносном ПО Mail-O, которое также было замечено в атаках на ФОИВы. Mail-O связали с группировкой TA428 из Китая.
Как известно, группа TA428 использует в атаках троян Albaniiutas. Group-IB своим анализом показали, что Albaniiutas — это новая версия трояна BlueTraveller.
Таким образом, Group-IB выдвигает предположение, что либо обе китайские группы — TA428 и TaskMasters — атаковали российские ФОИВы в 2020 году, либо существует одна большая хакерская группа родом из Китая, которая объединяет несколько групп.
TA428 — китайская проправительственная группировка, которая действует с 2013 года. Злоумышленники нацелены на ряд правительственных агентств в Восточной Азии, контролирующих государственные информационные технологии, внутреннюю и международную политику, экономическое развитие.
TaskMasters (aka BlueTraveller) — группа, спонсируемая китайским государством. Как утверждается, хакеры активны как минимум с 2010 года. Группа атаковала компании в ряде стран, однако значительное количество их целей находилось в России и странах СНГ. Среди атакуемых организаций — крупные промышленные и энергетические предприятия, государственные структуры, транспортные компании.
Отправная точка
Исходя из фразы исследователей: "Отчет сформирован на основе анализа серии целенаправленных атак", — мы решили допустить, что хакерских группировок, которые потенциально стоят за атаками, было несколько.
Злоумышленники использовали вредоносное программное обеспечение, которое взаимодействовало с сервером управления через облако Яндекс.Диск. Вредонос получил название Webdav-O.
Также злоумышленники использовали вредоносное программное обеспечение, которое обращалось к Облаку Mail.ru. Этот вредонос называется Mail-O.
В начале июня 2021 года аналитики американской компании Sentinel Labs, специализирующейся на компьютерной безопасности, опубликовали исследование о вредоносном ПО Mail-O. В своем анализе эксперты пишут, что Mail-O является вариантом относительно хорошо известной вредоносной программы SManager, используемой злоумышленниками TA428 (Китай).
Специалисты Group-IB, со своей стороны, хотели бы уточнить, что Mail-O является загрузчиком, тогда как SManager и Tmanger представляют собой трояны удаленного доступа (RAT). Однако между Mail-O, SManager и Tmanger действительно есть пересечения в коде экспортируемых функций Entery
и ServiceMain
, что отсылает нас к группировке TA428. К тому же хакеры из TA428 уже были замечены в шпионской активности против России, особенно против государственных объектов.
Чтобы окончательно заявить, что именно TA428 стояла за серией атак на ФОИВы в 2020 году, мы решили подтвердить свою гипотезу в том числе анализом образца трояна Webdav-O. Специалисты Group-IB Threat Intelligence & Attribution ранее детектировали схожее вредоносное поведение. Теперь же пришло время показать, с какой группировкой мы его связываем и почему. Далее мы приведем анализ наших образцов Webdav-O и покажем их пересечения с вредоносным ПО, упоминаемым в отчете SOLAR JSOC и НКЦКИ.
骑驴找马 [qí lǘ zhǎo mǎ]
Дословный перевод: Ездить на осле, занимаясь поиском лошади.
Значение: Используй то, что имеешь, во время поисков чего-то лучшего.
Анализ образца Webdav-O
Name |
1.dll |
SHA1 |
c9e03855f738e360d24018e2d203142c7ae6c2ec |
Compilation timestamp |
2018-07-12 03:08:01 |
First Submission |
2019-11-07 10:34:11 |
Dll Name |
y_dll.dll |
Export function |
ServiceMain |
Файл "1.dll" является динамически подключаемой библиотекой (DLL) x86, функционирующей в системе в качестве службы.
Анализируемый файл предоставляет удаленный доступ к оболочке командной строки (cmd.exe), а также выполняет различные команды, поступающие из C2, на скомпрометированном хосте.
В качестве сетевой инфраструктуры, а именно C&C, используется легитимный облачный сервис Яндекс.Диск (webdav.yandex.ru:443). Сетевое взаимодействие с облаком реализовано через протокол Webdav. Метод аутентификации используется базовый (Basic).
Строки и конфигурационные данные зашифрованы алгоритмом RC4 с ключом { 8A 4F 01 47 34 C9 75 F8 2B C8 C1 E9 D2 F3 A5 8B }, размер ключа — 16 байт. Анализируемый файл может работать с разным количеством учетных записей — от одной до семи (в данном случае только с двумя, но к этому вернемся позже).
Функциональные возможности образца
-
В экспортируемой функции ServiceMain используется случайная задержка перед выполнением основного кода.
-
Проверка доступности учетных записей облака Яндекс.Диск с помощью запроса
/?userinfo
(GET). -
Загрузка файла "/test3.txt" с облака Яндекс.Диск (GET) и проверка наличия в нем строки
Just A Test!
В случае успеха проверяется наличие командных файлов в каталоге "/test" в облаке Яндекс.Диск (PROFIND). Определение командного файла для загрузки с облака Яндекс.Диск (GET). Ответ от сервера обрабатывается, название файла с командами содержится между тегами
<d:href>
и</d:href>
В командном файле содержимое зашифровано алгоритмом RC4. После загрузки командного файла он удаляется из облака Яндекс.Диск (DELETE).
Загрузка файла "/test2.txt" в облако Яндекс.Диск (PUT). В файле "/test2.txt" содержится строка
Just A Test!
Предположительно, такой механизм используется для проверки функционирования вредоносной программы.-
Загрузка файла "/test2/[0-9]{1,4}[0-9]{1,4}.bin" в облако Яндекс.Диск (PUT). Файл содержит результат выполнения команды. Данные зашифрованы алгоритмом RC4.
Описание команд
Команда |
Описание |
-upload |
Загрузка файла в облако Яндекс.Диск. Название файла задается в команде. Файл сохраняется в облаке с именем "[0-9]{1,4}[0-9]{1,4}.bin". Формат ответа: |
-download |
Загрузка файла с облака Яндекс.Диск. Название файла задается в команде. Загруженный с файл удаляется из облака Яндекс.Диск. Формат ответа: |
-quit |
Завершение сеанса работы (выход из потока выполнения команд). |
-setsleep |
Установка интервала ожидания (в минутах) между запросами на получение команд. Формат ответа: |
[иная команда] |
Запуск команды в оболочке командной строки (cmd.exe). |
Сравнение с образцом из отчета SOLAR JSOC и НКЦКИ
Проводя анализ кода, загруженного на VirusTotal, мы обнаружили большое количество пересечений с трояном из исследования SOLAR JSOC и НКЦКИ. Примером может служить скриншот кода вредоноса, где показывается получение списка файлов-команд в папке test:
Сравнение двух образцов Webdav-O
Webdav-O из отчета |
Webdav-O x86 |
Аутентификация Basic и OAuth |
Аутентификация Basic |
Команды (5 шт.): -upload -download -setsleep -quit [иная команда cmd.exe] -sleepuntil |
Команды (4 шт.): -upload -download -setsleep -quit [иная команда cmd.exe] |
Формат ответа команд: ##u## %s %s (-upload) ##d## %s (-download) ##s## %d (-setsleep) ##l## %s (-sleepuntil) |
Формат ответа команд: ##u## %s %s (-upload) ##d## %s (-download) ##s## %d (-setsleep) |
Файловые объекты в облаке Яндекс.Диск: test2.txt, test3.txt /test /test2 /test2/%04d%04d.bin test4.txt test5.txt test7.txt |
Файловые объекты в облаке Яндекс.Диск: test2.txt, test3.txt /test /test2 /test2/%04d%04d.bin |
Генерация сессионного RC4-ключа (содержится в файле test7.txt в зашифрованном виде). Используется для шифрования команд и результатов их работы.* |
RC4-ключ статичен, зашит в теле программы. Используется для шифрования команд и результатов их работы. |
Отсутствие в теле программы зашитых учетных записей, так как есть возможность использования метода аутентификации по токену OAuth.* |
Учетные записи статичны, зашиты в теле программы. Используются для Basic-аутентификации. |
* Проверка невозможна, так как отсутствуют индикаторы (именно тот файл Webdav-O) в отчете.
Как видно из приведенных нами сравнений двух образцов, Webdav-O из исследования SOLAR JSOC и НКЦКИ выглядит как более новая, частично усовершенствованная версия трояна, который был обнаружен нами на VirusTotal.
Сравнение Webdav-O с кодом образцов BlueTraveller (RemShell)
见风转舵 [jiàn fēng zhuǎn duò]
Дословный перевод: Видишь ветер — меняй направление.
Значение: Меняй тактику, чтобы обойти трудности.
Исходя из довольно большой базы проанализированных вредоносных образцов в ходе поиска и реагирования на киберугрозы, специалисты Group-IB связали обнаруженный сэмпл Webdav-O с трояном BlueTraveller.
Но чтобы не быть голословными, мы приведем ниже сравнение нашего образца Webdav-O x86 с образцом BlueTraveller (RemShell) (SHA1: 6857BB2C3AE5F9C2393D9F88816BE7A10CB5573F).
Name |
netui4.dll |
SHA1 |
6857bb2c3ae5f9c2393d9f88816be7a10cb5573f |
Compilation timestamp |
2017-03-03 09:13:08 |
First Submission |
2017-07-07 18:33:12 |
Dll Name |
client_dll.dll |
Export function |
ServiceMain |
Оригинальное название DLL |
Оригинальное название DLL |
Исходя из сравнения выше, мы можем подвести следующие итоги:
Схожее наименование DLL (DIRECTORY_ENTRY_EXPORT — оригинальное название DLL)
Одинаковое название команд
Одинаковый принцип обработки команд
Возможность исполнения команд в оболочке командной строки (cmd.exe)
Учетные записи, пароли и подтверждение атрибуции
路遥知马力, 日久见人心 [lù yáo zhī mǎ lì rì jiǔ jiàn rén xīn]
Дословный перевод: Преодолев длинное расстояние, ты познаешь выносливость лошади, а через долгое время ты узнаешь, что у человека в сердце.
Значение: Сущность человека раскрывается со временем.
Вернемся к анализируемому образцу Webdav-O x86. Когда мы расшифровали строки вредоноса, то обнаружили данные "логин:пароль" для учетных записей злоумышленников, используемых на Яндекс Диске.
aleshaadams:7ujm!QAZ2wsx
tstrobos:&UJM1qaz2ws
Зная логин учетной записи, можно записать адрес электронной почты соответственно:
tstrobos@yandex.ru
aleshaadams@yandex.ru
Как видно из скриншотов, оба аккаунта привязаны к мобильным номерам одного региона: +86. В ходе проверки стало известно, что данный код принадлежит Китаю.
Анализ генерации паролей
В 2019 году Эльмар Набигаев, заместитель директора экспертного центра безопасности Positive Technologies, выступая на конференции с докладом "The TaskMasters APT" (другое название группировки BlueTraveller), привел несколько примеров паролей, которые они встретили в ходе исследования вредоносной кампании:
Как видно из изображений выше, манера создания паролей TaskMasters схожа с манерой Webdav-O: меняется только реестр и комбинации рядов.
Размытие границ
Принимая во внимание все проведенные сравнения и найденную информацию об аккаунтах, мы понимаем, что за использованием трояна Webdav-O, скорее всего, стояла группировка TaskMasters (Китай) с усовершенствованной версией их одноименного вредоноса. Однако все еще открыт вопрос про группировку TA428: могла ли она совместно с TaskMasters атаковать ФОИВы в 2020 году? А может ли быть, что за действиями стоит кто-то другой? Или же это всё одна группа?
Попробуем продолжить наши рассуждения и предоставим новую информацию для размышлений. Для этого обратимся к отчету NTT Security Corporation от 2020 года про группировку TA428 и её новые инструменты, в частности троян Albaniiutas.
В контексте данного исследования нас интересуют последние два объекта, и далее мы покажем почему.
Во-первых, мы обнаружили пересечение в используемой утилите для запуска DLL:
BlueTraveller |
Albaniiutas |
1.exe |
vjsc.dll |
6303CCE6747703E81A5A52DEC11A3BA7DB26EA4B |
2FE6AF7CE84CB96AE640BB6ED25A7BA67591A11E |
Утилита для регистрации и запуска DLL в качестве службы в системе, а также удаления данной службы. Запускается в оболочке командной строки (cmd.exe). Принимает аргументы командной строки:
"-i [DllPath]" - регистрация и запуск DLL в качестве службы. "-u [ServiceName]" - удаление указанной службы. |
DLL, отвечающая за регистрацию и запуск DLL в качестве службы в системе. Загружается файлом "Scrpt.exe" (SHA1: BC708ACDF6B8B60577268A0788F1E375CB3FFEB4) - подписанный легитимный файл "vjc.exe". Оригинальное название DLL "ServiceAdd.dll". |
Более детально схожесть продемонстрируют фрагменты кода обеих утилит. Как можно заметить, оба образца используют XOR — шифрование, где даже выводится идентичная отладочная информация.
Кроме того, есть пересечения и на этапе подготовки к закреплению в системе. Ниже на скриншотах видно, что фактически происходит одинаковая рандомизация имени DLL и выводится одинаковое описание службы, под которой данная DLL будет работать.
Продолжим наше сравнение, но теперь возьмем ранее рассмотренный нами образец BlueTraveller (SHA1:6857BB2C3AE5F9C2393D9F88816BE7A10CB5573F) и Fileless RAT семейства Albaniiutas.
BlueTraveller |
Albaniiutas |
netui4.dll |
- |
6857BB2C3AE5F9C2393D9F88816BE7A10CB5573F |
08645D079ABE05B88201DB0FF1C9B1EC035035CA |
DLL представляет собой RAT. |
Fileless DLL является полезной нагрузкой и представляет собой RAT. |
Запускается через службу (экспортируемая функция ServiceMain). |
Загружается файлом "XpEXPrint.dll / [a-z]{4}.dll" (SHA1: AE57D779AAC235E979FAE617599377A099B148AB), содержится в ресурсах в зашифрованном виде. |
Оригинальное название DLL "client_dll.dll". |
Оригинальное название DLL "ClientX.dll". |
В этом случае также рассмотрим фрагменты кода, которые выглядят очень похожими. К примеру, часть псевдокода выполнения команд в оболочке командной строки (cmd.exe).
Далее взглянем на фрагменты кода обработки данных, полученных от C&C.
Как видно из приведенных фрагментов, код в BlueTraveller более скромный, однако в обоих случаях разделитель \b
встречается трижды (функция strtok
). Ниже пример данных, которые вредонос Albaniiutas получает для каждой команды:
При многократном выполнении команды она не будет выполнена, если не указано значение, отличное от предыдущего.
Разделитель
Если значение не соответствует значению в ③ — команда не будет выполнена.
Это означает идентификатор и параметры команды, разделенные пробелами.
Давайте сравним также фрагменты кода проверки и выполнения полученных команд от C&C.
Очевидно, что этот фрагмент был обновлен хакерами, но сами команды остались прежними:
Команда |
Опции |
Описание |
-exit |
Завершение функции приема и обработки команд (выход из потока) |
|
-download |
URL загрузки Путь к файлу места сохранения |
Загрузка файла с C&C |
-upload |
Путь к файлу на зараженном устройстве Часть пути URL-адреса во время загрузки |
Загрузка файла на C&C |
(command) |
Аргументы команды |
Выполнение команды с помощью cmd.exe и возвращение результата на сервер C&C |
Кроме того, у троянов схожий шаблон общения с сервером управления в протоколах сетевого взаимодействия с C&C. Ниже — пример сетевой коммуникации с управляющим сервером, взятый из образцов трояна BlueTraveller, доступных на VirusTotal.
BlueTraveller |
Albaniiutas |
http://45.32.188[.]226/0000/1301/0024/4u/i7fr09bGus+Wyt7iyjos= |
http://go.vegispaceshop[.]org/home/2252/0108/IKNYF6oSkYtpU60GfnS27fbRKdcvCj/kZgeNi/8QIRN2+6+O3gKV6ODd2mEPNo7tYi1+ePOSmFzMlUY1ciJ1A0XSw8aOkJzTDXITxdSNo74= |
Шаблон: |
Шаблон: |
Теперь поговорим про обфускацию строк в Albaniiutas. Мы установили, что они зашифрованы алгоритмом RC4. Используемый ключ шифрования — L!Q@W#E$R%T^Y&U*A|}t~k.
И тут снова попадание: ранее этот же ключ шифрования был найден в серверном компоненте BlueTraveller, который хранит журнальные файлы в зашифрованном виде.
Фрагмент кода с записью строки в файл журнала (взят с PTSecurity "Operation TaskMasters" 2019):
Вывод напрашивается сам собой: Albaniiutas — не что иное, как логическое продолжение вредоносных программ, относящихся к семейству BlueTraveller.
И тут прилетело...
Как только мы подумали, что все описали и все сравнения провели, на VirusTotal вдруг загружают образец, который детектируется нами как Webdav-O.
Name |
y_dll.dll |
SHA1 |
3ff73686244ca128103e86d8c5aa024e37e7b86d |
Compilation timestamp |
2018-12-06 11:15:35 |
First Submission |
2021-06-05 04:41:00 |
Dll Name |
y_dll.dll |
Export function |
ServiceMain |
Файл "y_dll.dll" является динамически подключаемой библиотекой (DLL) x64, функционирующей в системе в качестве службы.
Как видно, данная версия Webdav-O была написана для системы другой разрядности и скомпилирована позднее, чем наша Webdav-O x86 (2018-12 против 2018-07 соответственно).
В качестве сетевой инфраструктуры, а именно C2, все так же используется легитимный облачный сервис Яндекс.Диск (webdav.yandex.ru:443). Сетевое взаимодействие с облаком реализовано через протокол Webdav.
Однако в этом образце поддерживаются два способа аутентификации вместо одного в Webdav-O x86: basic (с логином и паролем) и OAuth (с использованием токена).
Строки и конфигурационные данные зашифрованы алгоритмом RC4 с ключом { C3 02 03 04 05 DD EE 08 09 10 11 12 1F D2 15 16 }, размер ключа — 16 байт. Анализируемый файл может работать с разным количеством учетных записей — от одной до семи (в данном случае только с одной).
Данный образец показался специалистам Group-IB ещё более похожим на описываемый в отчете SOLAR JSOC и НКЦКИ, так как, в отличие от нашего, тут уже как минимум есть функция -sleepuntil
Все еще сетуя на то, что коллеги из SOLAR JSOC и НКЦКИ не привели никаких индикаторов компрометации, нам остается только провести сравнение, опираясь на скриншоты и описание возможностей их образца.
Как видно из приведенных фрагментов кода, обе версии выглядят идентично. Эксперты Group-IB также видели, что в Webdav-O x64 команды и результаты их работы передаются путем загрузки различных файлов на Яндекс.Диск.
Описание файлов, создающихся Webdav-O из отчета:
Описание файлов, создающихся Webdav-O x64:
Файл / каталог |
Описание |
test2.txt, test3.txt |
Используются для проверки соединения. Пример содержимого файла "test2.txt": |
test4.txt |
Содержит интервал ожидания (в минутах) между запросами на получение команд. Пример содержимого файла "test4.txt": |
test5.txt |
Содержит дату и время, до которого вредоносная программа будет неактивна (спать). Формат: |
test6.txt |
Содержит OAuth-токен. Содержимое зашифровано алгоритмом RC4 с ключом { 8A 4F 01 47 34 C9 75 F8 2B C8 C1 E9 D2 F3 A5 8B } (16 байт). Что интересно, этот ключ уже использовался другим нашим образцом Webdav-O x86 для шифрования строк и конфигурационных данных. |
test7.txt |
Загружается на сервер и содержит сессионный RC4-ключ (16 байт), который используется для шифрования команд и результатов их работы (сам ключ зашифрован публичным RSA-ключом). Сессионный RC4-ключ генерируются с помощью функции
|
/test |
Содержит файлы, которые скачиваются, расшифровываются и обрабатываются как команды. Формат имен файлов: "/test/[0-9]{1,4}[0-9]{1,4}.bin" |
/test2 |
Содержит файлы (результат выполнения команд), которые шифруются и загружаются на Яндекс.Диск. Формат имен файлов: "/test2/[0-9]{1,4}[0-9]{1,4}.bin" |
Как видно из приведенных данных, эта часть также идентична, кроме описания файла test6.txt, который по какой-то причине отсутствует в отчете исследователей SOLAR JSOC и НКЦКИ.
Опираясь на описанные выше сравнения, эксперты Group-IB заявляют, что именно этот образец Webdav-O, скорее всего, был использован в атаках на ФОИВы в 2020 году и описан в отчете SOLAR JSOC и НКЦКИ.
Ну и в завершение подытожим, что имеем...
人心齐,泰山移 [rén xīn qí, tài shān yí]
Дословный перевод: Если люди сплотятся, то и гору Тайшань передвинут.
Значение: Дружной работой горы свернуть можно.
Вредонос Webdav-O является еще одной версией семейства вредоносных программ BlueTraveller (RemShell), которые относят к китайской прогосударственной группировке. Webdav-O был создан как для систем x86, так и для систем x64.
Файл Webdav-O мог использоваться китайской группировкой APT TaskMasters (aka BlueTraveller). В том числе на это указывает тот факт, что отчет SOLAR JSOC и НКЦКИ говорит о серии атак за 2020 год на различные ФОИВы. Вполне возможно, что в одних атаках действовала APT TA428, а в других — APT TaskMasters.
Исследователи из SentinelLabs связывают Mail-O с Smanager и Tmanger (инструменты китайской группировки APT TA428). Специалисты Group-IB нашли пересечения в коде экспортируемых функций
Entery
иServiceMain
в этих вредоносах, и с moderate confidence мы можем заявить, что Mail-O принадлежит TA428.Исходя из исследования Ntt Security, TA428 ранее использовала вредонос Albaniiutas. Специалисты Group-IB доказали, что данный троян является новой версией BlueTraveller (RemShell). Таким образом, можно предположить, что Webdav-O тоже имеет отношение к китайской APT TA428.
Хочется отметить, что мы не раз видели, как китайские хакерские группировки обмениваются инструментами и инфраструктурами. Возможно, в данном кейсе так и было.
Не менее весомым звучит предположение, что существует одна большая хакерская группировка, которая состоит из нескольких подразделений разведки Народно-освободительной армии Китая. Например, подразделение 61398 из Шанхая стоит за действиями хорошо известной группировки APT1 (aka Comment Crew), а подразделение 61419 из города Циньдао связано с группировкой Tick. Каждое подразделение атакует в меру своих возможностей, времени или выстроенной очередности. Таким образом, один троян может настраиваться и дорабатываться хакерами разных подразделений с разным уровнем подготовки и целями.
И как говорит один наш современник:
IoCs
В облаке Яндекс.Диск
"/test"
"/test2"
"/test[2-7]{1}.txt"
"/test/[0-9]{1,4}[0-9]{1,4}.bin
"/test2/[0-9]{1,4}[0-9]{1,4}.bin"
"[0-9]{1,4}[0-9]{1,4}.bin"
На хосте
Webdav-O запускается как служба в системе.
Подозрительная сетевая активность с облачным сервисом Яндекс.Диск.
tstrobos@yandex[.]ru
aleshaadams@yandex[.]ru
Сетевые индикаторы
go.vegispaceshop[.]org
209.250.239[.]96
Hash
1.dll — Webdav-O RAT x86
MD5 664fb7cda349da4d36afa7a15f7f14f5
SHA1 c9e03855f738e360d24018e2d203142c7ae6c2ec
SHA256 7874c9ab2828bc3bf920e8cdee027e745ff059237c61b7276bbba5311147ebb6
y_dll.dll — Webdav-O RAT x64
MD5 5155c03a2064d80cef6a86a84d67c1b4
SHA-1 3ff73686244ca128103e86d8c5aa024e37e7b86d
SHA-256 849e6ed87188de6dc9f2ef37e7c446806057677c6e05a367abbd649784abdf77
netui4.dll — BlueTraveller RAT
MD5 aa9771e98f25db395c7d9f5beb9e5421
SHA1 6857bb2c3ae5f9c2393d9f88816be7a10cb5573f
SHA256 95ac5cc14f114461df8469331171863e8d8c1981761cf16c68d513e34a46103d
1.exe — BlueTraveller service install tool
MD5 ceb80ceffc82f10acdbe9841e4588eb2
SHA-1 6303cce6747703e81a5a52dec11a3ba7db26ea4b
SHA-256 1457ce3a4f2f4b41a345cf06abd7c7af0d14a3ceaf61e3ff863a787cee43b48a
vjsc.dll — Albaniiutas service install module
MD5 101b7762ef536cf77f04e07115231b53
SHA-1 2fe6af7ce84cb96ae640bb6ed25a7ba67591a11e
SHA-256 2629cae63cecc23bd30731e3a7e44fdabee75a1aaec14b3d7f56ac1674ad9c11
file — Albaniiutas RAT fileless module (DLL)
MD5 f481172e59491117ac5dbe2ade267b1f
SHA-1 08645d079abe05b88201db0ff1c9b1ec035035ca
SHA-256 fd43fa2e70bcc3b602363667560494229287bf4716638477889ae3f816efc705
file — Albaniiutas dropper stage 0
MD5 fb82e5a2f9f25ac53f3f4c8b8e33ffdd
SHA-1 a55260aa75e7f28ad6644f916fe11c6bd2a93ba2
SHA-256 83b619f65d49afbb76c849c3f5315dbcb4d2c7f4ddf89ac93c26977e85105f32
cssrs.exe — Albaniiutas dropper stage 1
MD5 9fb74044c1935298a7c00b74fa192baf
SHA-1 aa046d7b6d37070ea7a65d13ddf0f3bd8668a723
SHA-256 2a3c8dabdee7393094d72ce26ccbce34bff924a1be801f745d184a33119eeda4
cssrs.exe — Albaniiutas dropper stage 1
MD5 32060465223315a1da24c0fb4a6e51f5
SHA-1 c89896264a633fd7a036042d3202c6b9503d11cb
SHA-256 71750c58eee35107db1a8e4d583f3b1a918dbffbd42a6c870b100a98fd0342e0
utas.xlsx.exe — Albaniiutas dropper stage 0
MD5 4814f81f3b174c52e920e6ddd57d8da6
SHA-1 bfa38cb5097bba6a8ae555d6dce3c5446db8099a
SHA-256 690bf6b83cecbf0ac5c5f4939a9283f194b1a8815a62531a000f3020fee2ec42
Узнать больше о продуктах и сервисах Group-IB:
YARA rule
import "pe"
rule webdavo_rat
{
meta:
author = "Dmitry Kupin"
company = "Group-IB"
family = "webdavo.rat"
description = "Suspected Webdav-O RAT (YaDisk)"
sample = "7874c9ab2828bc3bf920e8cdee027e745ff059237c61b7276bbba5311147ebb6" // x86
sample = "849e6ed87188de6dc9f2ef37e7c446806057677c6e05a367abbd649784abdf77" // x64
severity = 9
date = "2021-06-10"
strings:
$rc4_key_0 = { 8A 4F 01 47 34 C9 75 F8 2B C8 C1 E9 D2 F3 A5 8B }
$rc4_key_1 = { C3 02 03 04 05 DD EE 08 09 10 11 12 1F D2 15 16 }
$s0 = "y_dll.dll" fullword ascii
$s1 = "test3.txt" fullword ascii
$s2 = "DELETE" fullword wide
$s3 = "PROPFIND" fullword wide
condition:
(any of ($rc4_key*) or 3 of ($s*)) or
(
pe.imphash() == "43021febc8494d66a8bc60d0fa953473" or
pe.imphash() == "68320a454321f215a3b6fcd7d585626b"
)
}
rule albaniiutas_dropper_exe
{
meta:
author = "Dmitry Kupin"
company = "Group-IB"
family = "albaniiutas.dropper"
description = "Suspected Albaniiutas dropper"
sample = "2a3c8dabdee7393094d72ce26ccbce34bff924a1be801f745d184a33119eeda4" // csrss.exe dropped from 83b619f65...
sample = "71750c58eee35107db1a8e4d583f3b1a918dbffbd42a6c870b100a98fd0342e0" // csrss.exe dropped from 690bf6b83...
sample = "83b619f65d49afbb76c849c3f5315dbcb4d2c7f4ddf89ac93c26977e85105f32" // dropper_stage_0 with decoy
sample = "690bf6b83cecbf0ac5c5f4939a9283f194b1a8815a62531a000f3020fee2ec42" // dropper_stage_0 with decoy
severity = 9
date = "2021-07-06"
strings:
$eventname = /[0-9A-F]{8}-[0-9A-F]{4}-4551-8F84-08E738AEC[0-9A-F]{3}/ fullword ascii wide
$rc4_key = { 00 4C 21 51 40 57 23 45 24 52 25 54 5E 59 26 55 2A 41 7C 7D 74 7E 6B 00 } // L!Q@W#E$R%T^Y&U*A|}t~k
$aes256_str_seed = { 00 65 34 65 35 32 37 36 63 30 30 30 30 31 66 66 35 00 } // e4e5276c00001ff5
$s0 = "Release Entery Error" fullword ascii
$s1 = "FileVJCr error" fullword ascii
$s2 = "wchWSMhostr error" fullword ascii
$s3 = "zlib err0r" fullword ascii
$s4 = "De err0r" fullword ascii
$s5 = "CreateFileW_CH error!" fullword ascii
$s6 = "GetConfigOffset error!" fullword ascii
condition:
5 of them or
(
pe.imphash() == "222e118fa8c0eafeef102e49953507b9" or
pe.imphash() == "7210d5941678578c0a31adb5c361254d" or
pe.imphash() == "41e9907a6c468b4118e968a01461a45b"
)
}
rule albaniiutas_rat_dll
{
meta:
author = "Dmitry Kupin"
company = "Group-IB"
family = "albaniiutas.rat"
description = "Suspected Albaniiutas RAT (fileless)"
sample = "fd43fa2e70bcc3b602363667560494229287bf4716638477889ae3f816efc705" // dumped
severity = 9
date = "2021-07-06"
strings:
$rc4_key = { 00 4C 21 51 40 57 23 45 24 52 25 54 5E 59 26 55 2A 41 7C 7D 74 7E 6B 00 } // L!Q@W#E$R%T^Y&U*A|}t~k
$aes256_str_seed = { 00 30 33 30 34 32 37 36 63 66 34 66 33 31 33 34 35 00 } // 0304276cf4f31345
$s0 = "http://%s/%s/%s/" fullword ascii
$s1 = "%s%04d/%s" fullword ascii
$s2 = "GetRemoteFileData error!" fullword ascii
$s3 = "ReadInjectFile error!" fullword ascii
$s4 = "%02d%02d" fullword ascii
$s5 = "ReadInject succeed!" fullword ascii
$s6 = "/index.htm" fullword ascii
$s7 = "commandstr" fullword ascii
$s8 = "ClientX.dll" fullword ascii
$s9 = "GetPluginObject" fullword ascii
$s10 = "D4444 0k!" fullword ascii
$s11 = "D5555 E00r!" fullword ascii
$s12 = "U4444 0k!" fullword ascii
$s13 = "U5555 E00r!" fullword ascii
condition:
5 of them
}
shadovv76
Серьезное расследование!
Вот только расследование не достаточно чтобы признать виновными. Отсутствует принцип состязательности сторон.
"Выводы сделайте сами"
по моему в статье все выводы сделаны уже.
Связь группировок с правительством принимается как не требующая доказательств?
Привязка подразделений к группировкам это предположение?
Может стоило было остановиться на техническом заключении схожести кода? По мне так код, который вы анализируете доступен любому в том числе для его развития и заимствования. Вроде авторские права на него не заявляют :). Телефон можно вписать любой особенно, если восстанавливать пароль не планируется. Атаковать российскую инфраструктуру и при этом хранить реальный телефон в учетке российской компании могут себе позволить только ГосКулхакерыКитая.
К техническому анализу вопросов нет.