Группировка NGC4141, предположительно из Восточной Азии, провела целенаправленную атаку на российскую государственную организацию через уязвимости в кастомном веб-приложении. Инцидент продемонстрировал, что даже уникальные разработки становятся мишенями для сложных атак, сочетающих автоматическое сканирование и ручной анализ.
Описание
Атака началась в конце декабря 2024 года с легкого сканирования, которое проводилось исключительно в рабочее время по московскому времени. Через неделю злоумышленники перешли к агрессивному сканированию с нагрузкой до нескольких тысяч запросов в час. Ключевым моментом стало обнаружение конфигурации API, доступной без аутентификации и содержащей полный перечень интерфейсов.
Спустя две недели атакующие перешли к ручному анализу, что явно прослеживалось по изменению паттернов запросов. Характерно, что активность теперь начиналась с 4 утра по Москве, что соответствует началу рабочего дня в восточноазиатском регионе. Для работы с API использовался инструмент Postman, о чем свидетельствовали User-Agent "PostmanRuntime/7.43.0" и заголовок Accept-Language со значением en-US,en;q=0.9,zh-CN.
Критическим вектором атаки стало использование недокументированной возможности API для загрузки файлов. Через интерфейс Files злоумышленники загрузили текстовый файл, а затем серию веб-шеллов. Первые обращения к веб-шеллу OCHo76cp2y8J6CLTdI8ouYoO0xZf45DUvK2PbNpL.php содержали базовые команды whoami, ls и uname -a для разведки системы.
Особый интерес представляет веб-шелл lxhjcc4ENYKFZ66ox5KJN6MhVUVPLF8RfnQQq2Jf.php, в коде которого обнаружена "пасхалка" - упоминание российской компании-разработчика защитного ПО. Это свидетельствует о знакомстве атакующих с локальным рынком кибербезопасности.
1 2 3 4 | GET /storage/static/files/lxhjcc4ENYKFZ66ox5KJN6MhVUVPLF8RfnQQq2Jf.php?key=ptsecurity&ptsecurity=sdasd HTTP/1.1 GET /storage/static/files/lxhjcc4ENYKFZ66ox5KJN6MhVUVPLF8RfnQQq2Jf.php?key=ptsecurity&ptsecurity=whoami HTTP/1.1 GET /storage/static/files/lxhjcc4ENYKFZ66ox5KJN6MhVUVPLF8RfnQQq2Jf.php?key=ptsecurity&ptsecurity=12345646 HTTP/1.1 GET /storage/static/files/lxhjcc4ENYKFZ66ox5KJN6MhVUVPLF8RfnQQq2Jf.php?key=ptsecurity&ptsecurity=12345646 HTTP/1.1 |
Анализ журналов WAF (Web Application Firewall) показал, что защитные решения значительно затрудняли действия злоумышленников, что привело к использованию множества различных веб-шеллов. Большинство из них были удалены с системы к моменту расследования, но сохранились в базах данных WAF.
Среди использованных инструментов выделяются уникальные разработки. Веб-шелл phpZVjULH использовал сложную обфускацию с XOR-шифрованием и сжатием gz. Шеллы 4.php и 5.php применяли AES-256 CBC для шифрования команд с проверкой на наличие слова sudo. Веб-шеллы aa.php и 7.php использовали механизм рефлексии PHP для выполнения команд через DocBlock-комментарии.
Атакующие демонстрировали высокую техническую подготовку, выполняя сложные сценарии:
- Сканирование сети через arp-scan и custom-скрипты на bash
- Компиляция C-кода непосредственно на целевой системе через gcc
- Анализ системы защиты Kaspersky Endpoint Security через kesl-control
- Запуск Python-скриптов и развертывание HTTP-серверов
Косвенные признаки указывают на восточноазиатское происхождение группировки: временные паттерны активности, использование китайского языка в настройках и IP-адреса из сетей Korea Telecom и Chinanet. Однако недостаточно данных для точной атрибуции известной APT-группе, поэтому присвоено временное обозначение NGC4141.
Инцидент подчеркивает важность комплексного подхода к безопасности кастомных веб-приложений. Автоматические средства защиты (AVPO и WAF) хотя и замедлили атаку, не смогли полностью ее предотвратить. Необходим регулярный аудит кода, мониторинг аномальной активности и тестирование на проникновение для кастомных решений.
Статистика DFIR-команд показывает, что веб-приложения остаются одним из основных векторов атак - более 40% успешных проникновений происходят через уязвимости в веб-интерфейсах. Кастомные решения требуют особого внимания, поскольку их уникальность затрудняет как атаку, так и защиту.
Индикаторы компрометации
IPv4
- 175.192.11.168
- 175.201.137.220
- 211.52.63.239
- 218.147.141.167
- 222.114.243.31
- 42.100.197.151
- 42.100.199.13
- 42.100.199.235
- 42.100.199.33
- 45.134.12.167
- 5.164.51.237
- 61.43.210.21
- 94.137.79.205
- 95.220.186.9
MD5
- 07a3fe9875d3a8b7c57874c4cc509929
- 16a7c53687de1a19eda58dfe4d625457
- 258c1e97c7e376d0a35a65c54827f4c7
- 342ad1b6fb38fb8b148e51278513b136
- 3bb8cdfff2aaf9b7fd90a13fd900f24a
- 43fb4495b840f2adda38949386a5977a
- 5131b06489384a02ba5dc47f21ee4451
- 7bf109668ecb0e8176c7b02b5b9e1928
- 93032473233a48de0d4e9794192fd45a
- a9ac49cc5a875c90e15f61161e4e56d9
- b0dd527959b2f408cb6fa394694741c5
- b99ebdc0b0b0c9cf5e9b29933cd24cdb
- c007655f2c7bf97b9cc7c804fbc3d470
- c8330f98c186f5873390c5a736f470f2
- d507fcc0ea9e2c6d3aae35c885fdfe30
- e019500c7f3102c702884d0813b7073d
- e9f709e8ff689010d06f8b35ec85f9d5
SHA1
- 183e52a1258a872273e19b74753867fc8ecee1b4
- 1a54708fb1b59baf5acafc21f0d2022c277f1944
- 2ea5f84b6459474fae89bed58fe4fb7317fcf14c
- 3ad29517afc10436f3a31b3f3941d2fe9d069a0a
- 3c2d05d6329c1efbe647eaa0ae1e3e775e9a1587
- 5634bd3f4e52052febd9acd989778c7621c9db33
- 983004e564506d098ab332e989e10c3348f29bcf
- a093832b3240b9f5bda91b4642d23622e62677a6
- a5046d01dab87ec4c2352fbd72a4e1012f7e8cb8
- b58788790149a8309331607c67241fa7a184cdbc
- cee75579941a822c29c1847d5ef11743c031b25b
- d0eba06525db21187f9a155af984d378365e9b95
- dbe5055af323d87f818547e8aaaf57ea757eeaa6
- e2cd7b60bc82d17333aa1fee2edb71a7483a984c
- e3d95f59721694234f59e4897e4b9da71a05aa2f
- e74554be211f63cfdd04ff7a9d22af587d1e31c8
- edd3fb2e1f618f6dc1f9c7631028cdd39a669c5a
SHA256
- 1bb92d3e991dd0cfa1fe07f07182ee9a4b86dd6827972687e95765b538ad44c7
- 2251d109fd58696eda6cc8c29c020181bcfa002b08c5674009a2bc05c0cfb08c
- 3fd4e61e47cfb679751e337fa02982d2e81fe5f56a3d10835f259f190d4a2161
- 4e25ef3591256cbfc9f4b7fe6ed1e461214125cfd9f54866c88ad68681fc5dd5
- 4feb18c0aaf41943c875966e945a2de53304bceb9565ea64b3a2afe522805215
- 6a84dc2a1abf53629e9701364b883dfbd828d1eacb3c0d133c41b4446285e795
- 701c5e03098a6466c16b1bb9f8d4864c42051cc888fa165039e70ffffc17e799
- 82b7dd8d5af2dfd76e54c9c1779f08e9a2a35d34beb5322780247a1b5390472f
- 8ef50069dc976524e5718112f7caaa5cdefcc6fb5b8be3bc22d7d46de194ba16
- a6939f2abecf085f09643bd674de76e9ca42f0df1f62d969c85b420761722f16
- ae8ffb637779da2b4258f739fcb759c5f040510af33b4876517cf6852e8186f2
- b2448aa38640455bd8a050399ed6b2912239f7c167e0cf615c06d3d0670c1032
- b9187f05746aee9277ee00fc35e194676f93e74b376232abf6f89d6503deebfb
- c17d1362a9b849f449282aa2c3fe0dcf471f4ffbd93f1e12934666571f052ed8
- c8e6fbdd905167686b5b793ba68c9b43c695b2d0860655e5d775a5e78ad6299d
- ee30a93151be9272f0209d2ff3082d06d34297f65317308cb8ba165bdfea3be1
- f3cc506258cfc1c29fc6854c0f3a24c2cd69a51e2bcb7afe34e59832318a0e8e