В последние годы одним из ключевых инструментов киберпреступников стали веб-оболочки - вредоносные скрипты, которые позволяют злоумышленникам удаленно управлять скомпрометированными серверами. Одним из таких примеров является веб-оболочка UpdateChecker.aspx, обнаруженная в ходе расследования взлома критической инфраструктуры на Ближнем Востоке.
Описание
Замаскированный код и методы защиты
Файл UpdateChecker.aspx написан на C# и предназначен для выполнения на серверах под управлением Microsoft IIS. Основная особенность этого скрипта - глубокая обфускация, призванная затруднить его анализ. Имена методов, переменных и классов заменены случайными последовательностями символов в Unicode, а все строки и числовые значения зашифрованы или закодированы. Это делает ручной анализ кода крайне сложным.
Для исследования скрипта специалистам пришлось применить методы деобфускации. В результате удалось восстановить исходную логику работы оболочки, включая её точку входа - метод Page_Load(), который активируется при получении команд от злоумышленника.
Передача команд и шифрование
Веб-оболочка UpdateChecker.aspx принимает команды только через HTTP POST-запросы с типом содержимого application/octet-stream. Тело запроса зашифровано и закодировано в Base64, что затрудняет его обнаружение системами защиты. После раскодирования данных выяснилось, что первые 16 байт зашифрованы с помощью жестко заданного ключа, а остальная часть команды расшифровывается с использованием 15-байтового ключа, полученного из первых данных.
Команды передаются в формате JSON, что позволяет злоумышленнику структурировано управлять сервером. Обязательными полями в каждой команде являются ProtocolVersion, ModuleName и RequestName, а также дополнительные параметры в зависимости от требуемого действия. Если запрос не соответствует ожидаемому формату, веб-оболочка возвращает ошибку.
Функциональные возможности
Веб-оболочка UpdateChecker.aspx разделена на три модуля, каждый из которых предоставляет злоумышленнику определенный набор возможностей для управления скомпрометированным сервером.
- Base - модуль для сбора базовой информации о сервере. С его помощью злоумышленник может получить данные о серверном ПО, IP-адресе, имени хоста, операционной системе и учетных записях пользователей.
- CommandShell - модуль, позволяющий выполнять произвольные команды Windows с правами учетной записи IIS. Это дает злоумышленнику практически полный контроль над сервером, включая запуск вредоносных скриптов и управление процессами.
- FileManager - наиболее функциональный модуль, предоставляющий инструменты для работы с файлами и каталогами. Он позволяет создавать, копировать, перемещать и удалять файлы, изменять их атрибуты, искать содержимое по ключевым словам и даже редактировать данные внутри файлов.
Демонстрация работы
Для тестирования возможностей веб-оболочки исследователи разработали Python-скрипт, имитирующий действия злоумышленника. В ходе экспериментов удалось продемонстрировать несколько сценариев:
- Получение информации о сервере через запрос GetBasicServerApplicationInfo.
- Выполнение команды whoami для определения текущего пользователя IIS.
- Создание папки и файла на сервере, запись в него данных, чтение содержимого и последующее удаление.
Эти действия подтвердили, что злоумышленник может полностью контролировать файловую систему сервера, изменять данные и маскировать свои действия, подменяя временные метки файлов.
Заключение
Веб-оболочка UpdateChecker.aspx представляет собой сложный инструмент, использующий обфускацию и шифрование для затруднения анализа. Её модульная структура дает злоумышленникам широкие возможности для управления сервером, включая выполнение произвольных команд и манипуляции с файлами.
Такие инструменты часто используются в целевых атаках на критическую инфраструктуру, что делает их особенно опасными. Обнаружение и нейтрализация подобных веб-оболочек требуют не только продвинутых средств защиты, но и глубокого понимания их работы. Исследование подобных случаев помогает улучшать методы детектирования и предотвращения кибератак в будущем.
Индикаторы компрометации
SHA256
- a841c8179ac48bdc2ebf1e646d4f552d9cd02fc79207fdc2fc783889049f32bc