Группировка 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% успешных проникновений происходят через уязвимости в веб-интерфейсах. Кастомные решения требуют особого внимания, поскольку их уникальность затрудняет как атаку, так и защиту.