Специалисты по кибербезопасности Positive Technologies обнаружили сложные целевые атаки на российские компании, которые проводят две различные хакерские группы - QuietCrabs и Thor. Эти группы использовали критические уязвимости в популярном программном обеспечении всего через несколько часов после публикации информации о них. Эксперты отмечают, что активность второй группы помогла обнаружить более скрытные действия первой, что позволило предотвратить серьезный ущерб.
Описание
В ходе расследования двух инцидентов в российских компаниях эксперты Positive Technologies выявили эксплуатацию уязвимостей удаленного выполнения кода (RCE). В частности, использовались уязвимости CVE-2025-53770 в Microsoft SharePoint, а также CVE-2025-4427 и CVE-2025-4428 в Ivanti Endpoint Manager Mobile. Кроме эксплуатации уязвимостей, исследователи обнаружили образцы вредоносных программ KrustyLoader и Sliver, а также следы использования инструментов Tactical RMM и MeshAgent.
Детальный анализ показал присутствие как минимум двух групп злоумышленников. Группа QuietCrabs, также известная как UTA0178 и UNC5221, демонстрирует высокую скорость реагирования на появление информации об уязвимостях. Согласно исследованию, эти хакеры использовали эксплойты в течение нескольких часов после публикации proof-of-concept кода. При этом группа Thor, по оценкам экспертов, могла выбрать целью около 110 российских компаний.
QuietCrabs представляет собой группу угроз, предположительно азиатского происхождения, чьей основной целью является кибершпионаж. Их атаки обычно начинаются с эксплуатации известных уязвимостей, что привлекло значительное внимание к их деятельности. Группа отслеживается под несколькими различными названиями и была впервые идентифицирована в начале 2024 года, оставаясь активной до настоящего времени. Некоторые исследователи также связывают QuietCrabs с более крупной группой APT27.
В отличие от них, группа Thor была впервые замечена в атаках на российские компании в 2025 году. В качестве финальных полезных нагрузок (payload) злоумышленники используют программы-вымогатели (ransomware) LockBit и Babuk, а также Tactical RMM и MeshAgent для обеспечения устойчивости (persistence) в системе. Для первоначального доступа они эксплуатируют публично известные уязвимости.
Во время расследования инцидентов команда реагирования Positive Technologies обнаружила свидетельства наличия вредоносной программы KrustyLoader. Этот загрузчик был впервые описан в январе 2024 года исследователями Volexity и Mandiant в атаках, которые эксплуатировали уязвимости нулевого дня в Ivanti Connect Secure. На тот момент сообщалось только о версии для Linux, но с тех пор появились сборки для Windows. Примечательно, что на момент исследования загрузчик использовался исключительно группой QuietCrabs.
По мере развития расследования эксперты также идентифицировали активность в инфраструктуре жертвы, указывающую на другую группу. Интересно, что эта вторая группа, по-видимому, нарушила атаку QuietCrabs и, вероятно, стала причиной того, что атака вообще привлекла внимание. Исследователи предполагают, что этой второй группой является Thor. На основе анализа сетевой инфраструктуры злоумышленников и данных телеметрии эксперты пришли к выводу, что Thor проводила масштабную кампанию против российских компаний.
Атаки QuietCrabs характеризуются массовым сканированием интернета для поиска уязвимых серверов. В первом инциденте QuietCrabs использовали уязвимости CVE-2025-4427 и CVE-2025-4428 через день после официального уведомления Ivanti. Во втором инциденте исследователи обнаружили следы успешной эксплуатации CVE-2025-53770 в течение 24 часов после публикации рабочего эксплойта и неудачные попытки в течение нескольких часов после появления первых нерабочих эксплойтов.
После получения доступа к серверу SharePoint действия группы следовали определенной схеме. Сначала злоумышленники обеспечивали устойчивость на уязвимом сервере, загружая ASPX-файл, который реализует простой веб-шелл. Затем они получали информацию о внешнем IP-адресе и проверяли разрешения на запись файлов. Следующим этапом была загрузка следующей стадии с внешнего сервера, которой оказывался KrustyLoader, используемый для загрузки и запуска импланта Sliver.
Sliver представляет собой кроссплатформенный фреймворк с открытым исходным кодом, предназначенный для эмуляции активности злоумышленника или проведения тестов на проникновение. Импланты Sliver подключаются к C2-серверу через Mutual TLS (mTLS), WireGuard, HTTP, HTTPS или DNS и динамически компилируются с асимметричными ключами шифрования для каждого бинарного файла.
При анализе сетевой инфраструктуры исследователи заметили, что QuietCrabs использовали хостинг-провайдера DigitalOcean. Этот выбор может быть обусловлен их основным целевым регионом - Северной Америкой: серверы, размещенные там, помогают их трафику смешиваться с трафиком из США. Одновременно эксперты также видели использование этого хостинг-провайдера в атаках на российские компании.
Анализ активности на скомпрометированных хостах показал, что часть инструментов не пересекалась с тем, что использует QuietCrabs. Более того, в отличие от QuietCrabs, вторая группа действовала значительно более заметно, полагаясь на хорошо известные инструменты и методики. В исследованных инцидентах это шумное поведение помогло вовремя обнаружить обе группы и избежать более серьезных последствий.
Группа Thor использовала такие инструменты, как ADRecon для разведки в домене Active Directory, GodPotato для повышения привилегий, а также utilities secretsdump и mimikatz для извлечения данных. Собранные данные включали учетные данные локальных и доменных пользователей, почтовых серверов и сессии Telegram сотрудников. Для сбора пользовательских файлов злоумышленники использовали Rclone.
Коррелируя эти находки, исследователи смогли найти похожее описание и совпадающие индикаторы компрометации в отчете, опубликованном Angara Security 19 августа. Их исследователи приписывают атаку группе Thor, которая использует программы-вымогатели LockBit и Babuk. В данном случае атака была обнаружена достаточно рано, поэтому эти вредоносные инструменты не наблюдались.
В ходе расследования эксперты заметили необычную закономерность: QuietCrabs и предполагаемая группа Thor действовали практически в один и тот же период времени. Разрыв между их вредоносными активностями составлял всего несколько дней. Также важно, что расследование началось в тот момент, когда была впервые зарегистрирована активность Thor. Другими словами, QuietCrabs могли бы оставаться внутри инфраструктуры гораздо дольше, если бы не Thor.
Тем не менее, исследователи не могут с уверенностью утверждать, что QuietCrabs сотрудничает с Thor. В данном случае совпадение, скорее всего, является случайным, поскольку и QuietCrabs, и Thor проводят широкое сканирование организаций для последующей компрометации.
На основе анализа телеметрии сетевой инфраструктуры злоумышленников эксперты обнаружили, что группа сканировала около 145 серверов. На 101 из них были идентифицированы уязвимости, в основном с 2021 года, с общим количеством 269 уникальных уязвимостей. Исследователям удалось идентифицировать около 110 российских компаний в качестве потенциальных жертв. Пострадавшие организации сильно различались как по экономическому сектору, так и по потенциальной выгоде, которую они могли предложить злоумышленникам.
Все уязвимые серверы находились в России, что указывает на явную направленность атак Thor на российскую инфраструктуру. Эксперты подчеркивают, что атаки, приписываемые Thor, затронули многие российские компании. Группа не полагалась на сложные методы или уникальные инструменты. При хорошо спроектированной инфраструктуре и зрелых процессах безопасности эти атаки можно было бы предотвратить или, по крайней мере, быстро локализовать.
В отличие от них, атаки QuietCrabs представляли более серьезную угрозу. Злоумышленники использовали эксплойты вскоре после раскрытия новых уязвимостей: разрыв между выпуском патча и первой атакой составлял от нескольких дней до всего нескольких часов. Согласно расследованиям Mandiant, среднее время пребывания QuietCrabs в инфраструктуре жертвы составляет 393 дня, что делает их деятельность особенно опасной для организаций, не имеющих эффективных систем мониторинга и реагирования на инциденты.
Индикаторы компрометации
IPv4
- 134.122.25.236
- 138.68.94.205
- 139.59.39.19
- 143.198.8.180
- 156.238.224.82
- 157.245.175.86
- 161.97.136.74
- 165.232.162.99
- 167.172.64.55
- 167.172.77.125
- 174.138.95.60
- 178.128.124.227
- 178.128.53.239
- 188.127.241.179
- 192.121.113.123
- 192.121.171.245
- 194.14.217.63
- 194.68.44.151
- 207.154.235.215
- 213.183.54.111
- 213.183.57.51
- 216.45.58.177
- 223.76.236.178
- 223.76.236.179
- 23.95.193.164
- 64.226.98.34
- 8.211.157.186
- 91.231.186.5
- 95.142.40.51
Domains
- anc-media.s3.amazonaws.com
- api.learnstore.vip
- api-dev.learnstore.vip
- ballour.s3.amazonaws.com
- cdn-chromos.s3.amazonaws.com
- check.learnstore.vip
- check-dev.learnstore.vip
- devscout.s3.amazonaws.com
- django-server.s3.amazonaws.com
- gaadhi.s3.amazonaws.com
- gtisstorage.s3.amazonaws.com
- kia-almotores.s3.amazonaws.com
- levar-viewer.s3.amazonaws.com
- live-360.s3.amazonaws.com
- music.learnstore.vip
- music-dev.learnstore.vip
- omnileadzdev.s3.amazonaws.com
- say2me.s3.amazonaws.com
- spyne-test.s3.amazonaws.com
- the-mentor.s3.amazonaws.com
- tnegadge.s3.amazonaws.com
- update.learnstore.vip
- video-dev.learnstore.vip
MD5
- 0307d0b1ce5aca62021ddd4cc6a8de16
- 04b6bf6e2538a5a4043258185a1fd853
- 070170515d7d1d982164a5a3dd96d5e3
- 071d0f76e0af21f0a6903523abe90d33
- 088cafef0b7a6aca4bda65a91e79a34a
- 120df631123af5a9273b0f9b3b7592d3
- 1d154306cb0824433bbf2674fac0e236
- 23439741ee63a4ff744e5c3ab1fbba3d
- 29bc17fa1e32bee1c5beb4f556b1e59a
- 2fcde88eedb3414b9f0ce60fad83bf45
- 31c14a5c7bdb550a950a784c77840712
- 34d118e804d3eb46c82cfbcb73772abe
- 4336ce2c934bdabc0ef24ebc883a97b5
- 445d5e5944a77c7f367bf09d97edf2c4
- 4e37da111b8be06a8fa3312cde33b79e
- 5b81a0fa12e8fad652fbaa77ee9242dc
- 6900e844f887321f22dd606a6f2925ef
- 6c93ea4895ba0085a1de515f206b1699
- 6ca0408e78c732f533dee2bd84df9961
- 6cd3e6ece8d01858faf562b77903bc43
- 765a29cc2645f0edfdd33ed59db3f2dc
- 7a28a7c154bd43143379d155ab25f909
- 7d190efc6f17869ee01cf667c90d0211
- 824b35ae209996f415815cba7006c155
- 8606677c19f88593016fcc343d9518ea
- 88576ff9320ae2c6de87dc6082f02527
- 88c13ad71798482ab15da86fed33a09d
- 8c8681e805e0ae7a7d1a609efc000c84
- 93f705625e504056b43846a651be4388
- abc167768fb1113e21428499745a239f
- aed7eef30dbb0e95290b82d8cdb80cef
- b3049fd5189440246472bbd3216f7038
- c4df40b8250a72ef394a6d844765cbda
- de15e309e157b46d97dbec5849945c1c
- e313eeee1d146d6e1b800a49fdaaa0ca
- e60d9dee3ead2d70be5824d7659a134f
- e83a67a484b56684f1c7cc8cb0f071e4
- f46539cb4c18bccf3ccd35dbd973c901
- f662135bdd8bf792a941ea222e8a1330
- fd9a345badc25e6d58361becb517a0c2
SHA1
- 0836c7c544f231d6995f7a87b34b2c8875328b17
- 158119e7464af7d4f14d137a046de8adffef25d0
- 1604a8130412e6824dca40b38a91114ffbc6bfe4
- 17d65a9d8d40375b5b939b60f21eb06eb17054fc
- 1c28b0871c5549e9f4dbc60b08e547d4fd786be0
- 28a4b6c7fd996ce277e4e4fcb7f83df529164afb
- 398da9c0a39b2090024ba4a318a452517da93898
- 3a5286acc24ec8c933182fcaccc094de148d8e06
- 3daf463d4b482f30b640d48685de44d37dc17b27
- 4b394640c378082c6a96769ecd48894925d1d7f1
- 4d42b371508256000cd5de530ca0131d51939421
- 579d9ae609248977dace45702fa120ca3f282bef
- 582a672fb25cdf248e5a67630468225e8a8af7ef
- 5b86889fd1d7de954d7d331bb85a0f97942be1a7
- 69840ab5f82d90c3d9747e20f44d84209c9e3eb4
- 6fa91bdc9a6a4bfe2dc3ee020ff1cbf84ba304fb
- 74dea4e8930cac7f8d9a63989fbd6bb27ae7c598
- 78494559881d5e8192f82d5e9a6e8b0b8e96449e
- 7c0b195fc4b820450e14fd8104574e62a3cda8d8
- 7c5e8fd9631d17443f9cdaf9f0da5a5e9fb89509
- 7cb4aee887a9e39b4cb9cd4c9c2cff3b037d85b5
- 8f47d35628b059ee04504f26df2ff82e46d9af5a
- 979709f50797b992e07cbc2b0779509c5edd516c
- a33acd32396b82e29c57288aa380de2e85c523c2
- a8f7bf6302c5ccd9888d31289229426008b7e2d6
- b56ece0eafff9b8c79aba879a115fb01a5905f29
- bfcb8bd83bfa415d6e1c21a7686f2e79aea18d7a
- c593bdd8dbd6e434848543c2d1ee4fa1b150b9b4
- c6783e6594f785f918f0d0d458854bc3cf02b9a4
- ca24f43e6cdce43ba4852a5974271686725084e0
- cbd9938805af96b4b6bee1865a27272f62340085
- d40e81552c778a66b2ca01eb38245acc63a19d5b
- d61c9eba6d8267ed5836f670f58c9b12a737f89d
- d659ddf993c29e79d3da25cfffa0891a0f4773e6
- d7ccfa0a9ca30c6b631ab638e95101b5e1ceb5ca
- da23dab4851df3ef7f6e5952a2fc9a6a57ab6983
- db3918814d6cb13257ba9e55e6adb1b090a422a6
- e6d205645eb2ae1e1ed829d8dda29fcb17e98a47
- f4018fb54955905bb273a10b512086ac386311bf
- fa645f33c0e3a98436a0161b19342f78683dbd9d
SHA256
- 14aa7dd13b4724a9e195eee5260ee53d96dc4feddfff68211e054095bc5f2d7c
- 1544d9392eedf7ae4205dd45ad54ec67e5ce831d2c61875806ce4c86412a4344
- 15fbedc076f10b630e724ace21f6b7ef34235cf1e304089cd7e4e7047eb149f3
- 1703df147df01e0487d5419b87bb7452cff6b9e5f582b44e887bb0e8d7f5d44e
- 18a98a738138aacbcdaac1164e422be12e14b1abee595f285456b63dc1e1c98b
- 1a17367608e79dba1e63348e5d791ff1658621bf8799b0a81ec7dc26ab0b3b6d
- 1d26fff4232bc64f9ab3c2b09281d932dd6afb84a24f32d772d3f7bc23d99c60
- 20683be010f0ca076bf5b0a0ee0838c116f7554cee50648d5ab4c28417965eb5
- 21b8e487d5879ff08d01316dbfb298e1c5e93b56054f04b70489d6732dcfb15d
- 288eed2f19b5087d074a291a55abafa206bdc7b9367785abff0ca6628c2dea38
- 2890a9970502a7c20477a437571a260cb96375e6fe44912495daa77cb03ba470
- 301b292e8ee27a366c78231b61a47bae9fcaf4cd8ab5c0224a3754bf600d12a2
- 32b40914bf7d01b2b0c3536835314f03f07ea810830ac1bea6c7169bdb0d731f
- 3581d7ef15130fe82e34ee431985f101fbeb96857b5855ccfa504ab5d0022756
- 359eb9d53218b243653bcf9d64fd394302d2ea597dc43ca58289cfd604f12264
- 36dc557b4ea173d9537392f64c1a9527a5832ca99718150fb430e0c13762758b
- 52ec5c307cc5ba5790434bbf334168d22ed8b7e20b304485ee6d27e790b5f62c
- 53c69869a6e186f1cd5f3908e59f2d77d25385642ec97b720550bb5fb4a64a35
- 6b938659bc6f705c0665220d234e4c4d158fd10a9b6af8efd7fe30040bb29936
- 7c2dcf05663b71877e2650d63c52a624ca7319e407d462db1dce6a4c65cd5ae9
- 8e551182f760435151052778c9f51e8cfa6637ef258c6f88f32dac3b00e0ffef
- 8f651136b7ba3d63d018a6f12ffd073d1c0033e7b1f39920757fef36de2254d0
- 929e3fdd3068057632b52ecdfd575ab389390c852b2f4e65dc32f20c87521600
- 9558d1f46182f5275c8a5578bc8dad63ad776b7f1ccff1528cc8a04f50a2cc4c
- a2326928c3ec6630e60642f0284ed994185efbfcea2516e6ae17728a6fe62a6b
- a92e51dfc17216802cb9a74f043bf6feabfd0cad3bfd7b3e699120dcd9f29b3e
- b3e8dff5de434fd4057526e56367c2b9a3115814002253dc1817e229a6dd13bf
- b8e56de3792dbd0f4239b54cfaad7ece3bd42affa4fbbdd7668492de548b5df8
- bdb9a4c1532b5ba38fd8a9c01430f2db4cd74ee0123deaa65cfdf61196fc7d3a
- c8d64b4eb7c21ae03595576cb633b2b831e824964e367f1859a6856ce6f6b3fa
- cfb7968331bf1289b3ec71765ca42549d2aa17669162248f36a8dfbdc4c8c9d2
- d3be673d536574b4027f2d9176457760f109b77e140a29b67a448d1830fe958d
- dad3d871e48ecf1bc022914f6ba471dbc2e0f861495337138b0766064d640911
- db88cb8ee5672afab012376a8add1e8362e75c1e6221d40e0dfff9ed3c9592b2
- dd4f25657c4df7983c0d12b597df1ce737eeebd1c0b2bf185c93ec74a5f195c7
- e4e7c6bd2250b513383839f6ff805cb333a9575304ce43847b8748eeda9b1dbb
- e5abc07aa76e6c1997d6a732cbd1b51b14badfbed80f55afd1864c9736985049
- ea41a8f0aa1c0dc365258902bde3e87529e4af2a882b19fb35e3b5584a9832ac
- f6665f41a2ea7c5eacbd908210ab332ba9a1f60c14fe855c52124fc81a4f13f9
- f7c0917e19af0282da27d54dd951f78042965fe6d27551430bbae490c9c881cc
YARA
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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)) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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) } |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 } |