Fortinet разобрал скрипт, который управляет заражёнными IIS-серверами через зашифрованные POST-запросы.
Команда FortiGuard Labs опубликовала подробный анализ веб‑шелла с сильной обфускацией который был использован для атаки на критически важную инфраструктуру на Ближнем Востоке. Исследование посвящено скрипту UpdateChecker.aspx который работает на платформе Microsoft IIS. Он реализован на C# в виде ASPX‑страницы и скрывает своё настоящее содержание за слоем закодированного и зашифрованного кода. Все имена методов переменных и классов были случайно сгенерированы затем закодированы в Unicode. Любые константы включая строки и числа были либо зашифрованы либо закодированы.
В процессе анализа специалисты деобфусцировали код и преобразовали случайные имена в читабельные. Основная функция Page_Load запускается при получении команды от атакующего. Управление шеллом осуществляется через HTTP POST запросы при указании контента application/octet‑stream. Без этого запрос отклоняется и возвращается ошибочная страница.
Тело запроса сначала кодируется в Base64 а затем поэтапно расшифровывается. Первые 16 байт содержат зашифрованный ключ который декодируется для получения 15 байтов ключа и одного байта заполнения. Этот ключ используется для расшифровки остальной части данных команды. Ответ веб‑шелла также выходит в формате JSON затем шифруется и кодируется обратно в Base64.
Скрипт поддерживает три основных модуля управления системой. Модуль Base позволяет получить информацию о сервере модуль CommandShell запускает системные команды в указанной рабочей директории а модуль FileManager обеспечивает взаимодействие с файлами и каталогами включая создание копирование перемещение и удаление файлов каталогов а также изменение метаданных и просмотр списка дисков и корневой веб‑директории .
Для наглядности Fortinet разработал Python‑скрипт который имитирует действия атакующего для отправки команд к веб‑шеллу и отображения ответов. Благодаря этому удалось продемонстрировать возможности шелла включая выполнение команд работу с файлами и получение различной информации с сервера.
Анализ UpdateChecker.aspx помог раскрыть сложную архитектуру веб‑шелла и показать как злоумышленники управляют системой скрытно и безопасно скрипт хранит управление в формате JSON что упрощает автоматизированную отправку команд и получение ответов.