В этом совместном посте с коллегами-исследователями из Avast мы представляем технический анализ постоянно развивающегося RAT, который с конца 2017 года использовался в различных целевых кампаниях против государственных и частных субъектов. Мы наблюдали несколько случаев атак с использованием этого RAT, и все они произошли в Центральной Азии. Среди целей были несколько важных компаний в телекоммуникационной и газовой отраслях, а также государственные учреждения.

Кроме того, мы связываем последнюю кампанию с тремя ранее опубликованными отчетами: Microcin против российских военнослужащих от Kaspersky, BYEBY против правительства Беларуси от Palo Alto Networks и Vicious Panda против государственного сектора Монголии от Checkpoint. Также мы обсуждаем другое вредоносное ПО, которое обычно входило в набор инструментов злоумышленника вместе с RAT. Мы выбрали название Mikroceen для обозначения всех случаев RAT, в честь первоначального отчета Kaspersky о семействе. Опечатка намеренная, чтобы избежать устоявшегося микробиологического понятия, но также чтобы иметь хотя бы фонетическое сходство.

Кластеризация

Сначала давайте обсудим кластеризацию Mikroceen, который является простым RAT, и покажем наши причины полагать, что отчеты от Kaspersky, Palo Alto Networks и Checkpoint описывают одно и то же семейство вредоносного ПО (среди других упомянутых вредоносных инструментов). На рисунке 1 представлено сравнение цикла дешифрования, который используется для конфигурационных данных, состоящих из домена C&C, имени и пароля, связанных с каждым образцом RAT. Цикл практически одинаков и реализован в трех копиях подряд. Checkpoint также обсуждал сходство HTTP-заголовков в секциях данных между BYEBY и Vicious Panda, а также общий лог-сообщение V09SS0lO, которое при декодировании base64 дает WORKIN. Закодированная строка также присутствует в Microcin.

Рисунок 1. Часть кода, используемого для расшифровки внутренних данных; имя экспортированной DLL находится внизу

В разделе Арсенал злоумышленников ниже мы также сравниваем грамматику команд функций RAT и типичные сообщения об ошибках, которые регистрируются во время выполнения с его предыдущими версиями. В качестве подтверждения — предпочтительный поставщик инфраструктуры злоумышленников и наиболее типичное вредоносное ПО, одновременно обнаруженное в скомпрометированных сетях. Все эти улики должны вызвать сильную уверенность в том, что это одно и то же семейство вредоносного ПО.

Временная шкала и виктимология

На рисунке 2 показана эволюция отслеживания угрозы во времени. Как мы уже упоминали, регион Центральной Азии присоединился к России, Беларуси и Монголии как к областям с жертвами вторжений Mikroceen. Этими жертвами были не обычные пользователи, а конечные точки в корпоративных сетях, где ожидается более высокий уровень безопасности.

Рисунок 2. Временная шкала событий, связанных с Mikroceen

Рисунок 3. Недавние кампании в Центральной Азии, окруженные ранее описанными

Арсенал злоумышленников

Опишем инструменты, которые злоумышленники использовали в своей кампании в Центральной Азии. К сожалению, мы не смогли выяснить, как они проникли в скомпрометированные сети.

RAT (бэкдор на стороне клиента)

Как только злоумышленники устанавливают контроль над машиной жертвы, код на рисунке 4 используется для установки RAT в системе. Обратите внимание на параметр start= auto, который обеспечивает постоянство вредоносного ПО после перезагрузки.

@echo off sc stop PCAudit sc delete PCAudit sc create PCAudit binpath= "C:WINDOWSsyswow64svchost.exe -k netsvcs" type= share start= auto displayname= "Windows Upload Manager" sc description PCAudit "Windows Help Service is a microsoft Windows component for System(Important). If this service is stopped, users will be unable to get useful information" sc failure PCAudit reset= 0 actions= restart/0 reg add HKLMSYSTEMCurrentControlSetServicesPCAuditParameters /v ServiceDll /t REG_EXPAND_SZ /d %SystemRoot%Syswow64pcaudit.dll reg add HKLMSYSTEMCurrentControlSetServicesPCAuditParameters /v ServiceMain /t REG_SZ /d NtHelpServiceMain reg add HKLMSYSTEMCurrentControlSetServicesPCAuditParameters /v ServiceDllUnloadOnStop /t REG_DWORD /d 1 sc start PCAudit del %0 

Рисунок 4. Код установки в пакетном файле

Как мы уже упоминали, каждый бот поставляется с конфигурационными данными: C&C, имя клиента и пароль клиента. Имя бота отображается в интерфейсе сервера. Довольно необычно, что оператору требуется аутентификация путем ввода пароля клиента для управления клиентом. Мы можем только предполагать о цели, но это может служить защитой от захвата ботнета, если конкурирующий злоумышленник или правоохранительные органы захватят их инфраструктуру. Таким образом, мы видим, что определенные усилия были приложены для обеспечения безопасности клиент-серверного соединения. Более того, клиент может подключаться напрямую к серверу C&C или маршрутизировать трафик через прокси, что может быть полезно, особенно в корпоративных сетях. Соединение дополнительно защищено сертификатом, и это функция, которая отличает Mikroceen от легиона бэкдоров, которые мы видели ранее.

Mikroceen использует те же основные функции, что уже описаны Palo Alto Networks о BYEBY. Грамматика команд довольно специфична, потому что каждая команда усекается до 6 букв, а затем кодируется в base64. Это приводит к 8-буквенному непонятному слову в коде. В то время как в предыдущих случаях кодирование было прямолинейным, в кампании в Центральной Азии добавлен дополнительный неизвестный уровень шифрования. Связь 8-буквенных слов с командами в этом случае осуществлялась по соглашению на уровне кода.

Команда Microcin, BYEBY, Vicious Panda Mikroceen
hello! aGVsbG8h AmbZDkEx
GOODBY R09PREJZ eYTS5IwW
BYE BY QllFIEJZ bo7aO8Nb
DISCON RElTQ09O 6GEI6owo
LIST D TElTVCBE Ki0Swb7I
STARTC U1RBUlRD h71RBG8X
COMMAN Q09NTUFO 5fdi2TfG
TRANSF + (UPLOAD, DOWNLO) VFJBTlNG + (VVBMT0FE, RE9XTkxP) J8AoctiB + (QHbU0hQo, hwuvE43y)
EXECUT RVhFQ1VU gRQ7mIYr

Таблица 1. Грамматика команд различных версий RAT

Во время выполнения клиент записывает отладочные сообщения во временный файл. Это варьируется в зависимости от версий Mikroceen. Таблица 2 представляет собой сравнение этих сообщений от случая к случаю и дает дополнительные доказательства, связывающие версии Mikroceen.

Microcin BYEBY Vicious Panda Mikroceen #rowspan#
#rowspan# #rowspan# #rowspan# 32-бит 64-бит
Папка % CSIDL_COMMON_DOCUMENTS% %TEMP% % CSIDL_COMMON_DOCUMENTS% %TEMP% %TEMP%
Имя файла 7B296FB0.CAB vmunisvc.cab 5E8C6FF0.CAB 7B296FB0.CAB W52G86ST.TMP
Ключевые слова в основном V09SS0lO
U3RhcnQ=
V09SS0lO
U3RhcnQ=
V09SS0lO
U3RhcnQ=
V09SS0lO GvFa8Sei
Ключевое слово при подключении ZGlyZWN0 ZGlyZWN0 ZGlyZWN0 wfZ155bJ wfZ155bJ

Таблица 2. Лог-сообщения во временном файле

Одновременно встречающееся вредоносное ПО

Предыдущие отчеты всегда упоминают широкий арсенал инструментов, используемых в атаках. В нашем случае было то же самое – не только Mikroceen, но и другое вредоносное ПО. Вот три наиболее важных инструмента, которые мы наблюдали в скомпрометированных сетях.

Перемещение по сети через Mimikatz

Злоумышленники использовали свою реализацию Mimikatz, поставляемую через двухэтапный механизм: первый этап — дроппер, обычно называемый installer.exe или Yokel64.exe, который во втором этапе разворачивал основной полезный груз с индикативным внешним именем DLL mktz64.dll. В то время как Mikroceen никогда не поставлялся с отладочной информацией, здесь мы можем видеть строку E:2018_MimHashmimikatzBinmktzx64.pdb

Рисунок 5. Строка PDB в полезной нагрузке Mimikatz

Mimikatz — это проект с открытым исходным кодом французского исследователя безопасности Бенджамина Дельпи, разрабатываемый с 2007 года. Это мощный инструмент, который, помимо прочего, может обходить различные схемы аутентификации Windows, в основном путем извлечения данных учетных данных из базы данных локальных учетных записей Windows. Он в основном используется красными командами в IT-безопасности, но также неправильно используется злоумышленниками APT, например, Lazarus Group, Telebots, Okrum и т. д. После запуска его в тестовой виртуальной среде, его вывод выглядит следующим образом (неправильные пробелы перед запятыми присутствуют в оригинале):

#1 domain = MSEDGEWIN10, user = Administrator , nthash=FC525C9683E8FE067095BA2DDC971889. #2 domain = MSEDGEWIN10, user = IEUser , nthash=FC525C9683E8FE067095BA2DDC971889.

Перемещение по сети через WMI

Злоумышленники используют дополнительный инструмент для распространения в хост-сети. На этот раз они используют Windows Management Instrumentation (WMI). Все необходимые данные нужны как имя файла, так как во время выполнения он ожидает @@<Имя компьютера>,<Имя пользователя>,<Пароль>,.exe. На первом этапе устанавливается консоль к удаленному компьютеру, где соединение идентифицируется по <Имя компьютера> и аутентифицируется с помощью (<Имя пользователя>, <Пароль>). После этого безопасность прокси устанавливается на строгий уровень, что означает, что аргументы каждого удаленного вызова процедуры шифруются, и доступ сервера к локальным ресурсам разрешен. Затем WMI снова используется для получения класса Win32_Process, который, в свою очередь, используется для создания процесса с заданными параметрами. Когда вся работа сделана, инструмент завершает свою работу.

Gh0st RAT

Этот печально известный старый RAT был создан примерно в 2008 году. В данном случае он был обнаружен как rastls.dll в скомпрометированных системах, в то время как экспортированное имя DLL обычно svchost.dll. Он пытается подключиться к https://yuemt.zzux[.]com:443, который разрешается в IP-адрес в Китае. Это исключение без объяснения, потому что сервер не принадлежит ни одному из поставщиков C&C, используемых Mikroceen. С нашей точки зрения, кажется избыточным использовать этот дополнительный бэкдор, возможности которого полностью обеспечивает сам Mikroceen.

Чтобы распознать этот бэкдор, нужно увидеть строку Gh0st внутри бинарного файла. Строковый символ uwqixgze} используется в качестве заполнителя для домена C&C.

Рисунок 6. Вредоносное ПО Gh0st RAT (фрагмент)

Панель C&C (интерфейс сервера)

Предыдущие отчеты уже упоминают низкий уровень операционной безопасности злоумышленников (их открытые каталоги были замечены Kaspersky и Checkpoint), и злоумышленники продолжают сливать инструменты, не обязательно используемые на стороне жертв. Нам удалось заполучить старую версию панели управления RAT. В нижней части рисунка 7 находится графический интерфейс, через который отдаются команды всем ботам. Он очень минималистичен, что может быть связано со старой версией 2017 года, но все же, просто сравните его с более чем 10-летней панелью Gh0st RAT. С тех пор мало что улучшилось, ни визуально, ни функционально, поэтому внедрение SSL-соединений кажется основным сдвигом между проектами (текстовое поле для «CN Name» на рисунке). Похоже, что операторы ботнета являются довольными клиентами сервисов Vultr, дочерней компании Choopa LLC, поскольку их операционная инфраструктура в основном размещена там, и это также было отмечено в кампании Vicious Panda исследователями Checkpoint. Это надежный поставщик, задокументированный исследователями из Cisco еще в 2015 году.

Рисунок 7. Интерфейсы для управления ботами: Gh0st RAT (2008) против интерфейса Mikroceen (2017)

Заключение

Мы представили анализ пользовательской реализации клиент-серверной модели, разработанной для целей шпионажа. Разработчики вредоносного ПО приложили большие усилия для обеспечения безопасности и надежности соединения со своими жертвами, и операторам удалось проникнуть в сети известных компаний. Более того, в их распоряжении более широкий набор инструментов для атак, и их проекты постоянно развиваются, что в основном проявляется в вариациях обфускации.

Индикаторы компрометации (IoCs)

Вот хэши образцов, описанных в статье. Дополнительные IoC, собранные в ходе атак, можно найти на GitHub ESET или GitHub Avast.

SHA Временная метка Описание Имя обнаружения ESET
d215bb8af5581b31f194248fc3bd13d999a5991c 2016-06-29 00:34:42 Microcin (Kaspersky)
7771e1738fc2e4de210ac06a5e62c534
Win32/Mikroceen.A
7a63fc9db2bc1e9b1ef793723d5877e6b4c566b8 2017-07-06 08:15:31 BYEBY (PANW) 383a2d8f421ad2f243cbc142e9715c78f867a114b037626c2097cb3e070f67d6 Win32/Mikroceen.B
2f80f51188dc9aea697868864d88925d64c26abc 2017-01-28 11:33:43 Vicious Panda (Checkpoint) Win32/Mikroceen.C
302cf1a90507efbded6b8f53e380591a3eaf6dcb 2019-04-25 01:15:40 Mikroceen 32-бит Win32/Mikroceen.H
21ffd24b8074d7cffdf4cc339d1fa8fe892eba27 2018-12-10 07:46:25 Mikroceen 64-бит Win64/Mikroceen.C
5192023133dce042da8b6220e4e7e2e0dcb000b3 2019-03-11 12:14:09 Mimikatz Win64/Riskware.Mimikatz.AQ
c18602552352fee592972603262fe15c2cdb215a 2015-03-16 03:29:39 Перемещение по сети через WMI Win32/HackTool.Agent.NEZ
4de4b662055d3083a1bccf2bc49976cdd819bc01 2015-12-31 03:10:15 Gh0st RAT Win32/Farfli.CSY

Ссылки

Техники MITRE ATT&CK

Тактика ID Название Описание
Выполнение T1035 Выполнение службы RAT настроен на автоматический запуск как служба при загрузке через sc.exe.
T1059 Интерфейс командной строки RAT может выполнять команду в командной строке.
T1064 Скриптинг Злоумышленники использовали пакетные скрипты для установки и выполнения вредоносного ПО.
T1105 Удаленное копирование файлов RAT может загружать файлы на машину жертвы.
T1106 Выполнение через API RAT запускает консоль Windows через CreateProcess.
Постоянство T1050 Новая служба RAT выполняется автоматически.
Обход защиты T1036 Маскировка RAT маскируется под различные типы легитимных служб.
T1140 Деобфускация/декодирование файлов или информации Команды RAT и некоторые его компоненты закодированы/зашифрованы.
Обнаружение T1082 Обнаружение системной информации RAT отправляет информацию, такую как версия операционной системы, для отображения на панели оператора.
T1016 Обнаружение сетевой конфигурации системы RAT собирает сетевую информацию, включая IP-адрес хоста и информацию о прокси.
T1033 Обнаружение владельца/пользователя системы RAT отправляет информацию, такую как имя пользователя, для отображения на панели оператора.
Доступ к учетным данным T1003.001 Извлечение учетных данных ОС: память LSASS В атаке используется Mimikatz.
Командование и управление T1032 Стандартный криптографический протокол RAT использует SSL для шифрования коммуникаций C2.
T1043 Распространенный порт RAT использует порт 443.
T1071 Стандартный протокол прикладного уровня RAT использует реализацию SSL Schannel.
T1001 Обфускация данных Интерфейс RAT управляет клиентом с помощью обфусцированных команд.
T1090.002 Прокси: внешний прокси RAT имеет опцию прокси, которая маскирует трафик между вредоносным ПО и удаленными операторами.
Эксфильтрация T1041 Эксфильтрация через канал команд и управления Оператор RAT может загружать любые желаемые файлы с компьютера жертвы.
Сбор T1113 Захват экрана RAT может захватывать экран жертвы.

Читать полный анализ на WeLiveSecurity →