В этом совместном посте с коллегами-исследователями из 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. Этими жертвами были не обычные пользователи, а конечные точки в корпоративных сетях, где ожидается более высокий уровень безопасности.
Арсенал злоумышленников
Опишем инструменты, которые злоумышленники использовали в своей кампании в Центральной Азии. К сожалению, мы не смогли выяснить, как они проникли в скомпрометированные сети.
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
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.
Панель C&C (интерфейс сервера)
Предыдущие отчеты уже упоминают низкий уровень операционной безопасности злоумышленников (их открытые каталоги были замечены Kaspersky и Checkpoint), и злоумышленники продолжают сливать инструменты, не обязательно используемые на стороне жертв. Нам удалось заполучить старую версию панели управления RAT. В нижней части рисунка 7 находится графический интерфейс, через который отдаются команды всем ботам. Он очень минималистичен, что может быть связано со старой версией 2017 года, но все же, просто сравните его с более чем 10-летней панелью Gh0st RAT. С тех пор мало что улучшилось, ни визуально, ни функционально, поэтому внедрение SSL-соединений кажется основным сдвигом между проектами (текстовое поле для «CN Name» на рисунке). Похоже, что операторы ботнета являются довольными клиентами сервисов Vultr, дочерней компании Choopa LLC, поскольку их операционная инфраструктура в основном размещена там, и это также было отмечено в кампании Vicious Panda исследователями Checkpoint. Это надежный поставщик, задокументированный исследователями из Cisco еще в 2015 году.
Заключение
Мы представили анализ пользовательской реализации клиент-серверной модели, разработанной для целей шпионажа. Разработчики вредоносного ПО приложили большие усилия для обеспечения безопасности и надежности соединения со своими жертвами, и операторам удалось проникнуть в сети известных компаний. Более того, в их распоряжении более широкий набор инструментов для атак, и их проекты постоянно развиваются, что в основном проявляется в вариациях обфускации.
Индикаторы компрометации (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 |
Ссылки
- Vasily Berdnikov, Dmitry Karasovsky, Alexey Shulmin: “Вредоносное ПО Microcin”, Kaspersky Labs 2017-9-25
- Josh Grunzweig, Robert Falcone: “Злоумышленники нацеливаются на правительство Беларуси с использованием трояна CMSTAR”, сентябрь 2017 г.
- Checkpoint Research: “Vicious Panda: Кампания COVID”, 2020-03-12
- SecDev Group & Citizenlab, “Отслеживание GhostNet: расследование сети кибершпионажа”, март 2009 г.
- Dhia Mahjoub, Jeremiah O’Connor, Thibault Reuille, Thomas Mathew: “Фишинг, спайкинг и плохой хостинг”, блог Cisco Umbrella, 2015-09-14
- “Mimikatz: Маленький инструмент для игры с безопасностью Windows”
- Peter Kálnai, Anton Cherepanov. “Lazarus KillDisks атакует казино в Центральной Америке”, WeLiveSecurity.com, апрель 2018 г.
- Anton Cherepanov, Robert Lipovský: “Новый бэкдор TeleBots: первые доказательства связи Industroyer с NotPetya”, WeLiveSecurity.com, октябрь 2018 г.
- Zuzana Hromcová: “Okrum: группа Ke3chang атакует дипломатические миссии”, WeLiveSecurity.com, июль 2019 г.
- Avast Threat Intelligence, репозиторий GitHub
- ESET Threat Intelligence, репозиторий GitHub
Техники 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 может захватывать экран жертвы. |
