Делимся веб-шеллом, который показался нам не просто интересным, но интересным в квадрате или даже в кубе. С одной стороны, в нем использована необычная техника, с другой… Но не будем раскрывать все карты сразу.
О коде web.config веб-шелла
В этой статье о группировке Obstinate Mogwai, в разделе IOCs, мы упоминали web.config веб-шелл:
C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\Owa\auth\web.aspx
md5:
42f0dc07131705738a14baffd560be7cПримерный код веб-шелла представлен на скриншоте 1.
Специалисту, не знакомому с одной старой техникой, может показаться, что код закомментирован и такой веб-шелл вряд ли активен. В реальности же он работает, код исполняется, причем скрытно (скриншот 2).
Веб-шелл возвращает результаты выполнения команды, которые видны только при просмотре исходного кода страницы, так как сам код веб-шелла закомментирован.
Конечно, злоумышленники вряд ли используют этот веб-шелл через браузер. Скорее всего, взаимодействие с ним происходит программно, поэтому описанная выше скрытность — это некий side-effect.
Почему код исполняется?
Опытные исследователи, наверное, сразу все поняли, когда посмотрели на скриншот с кодом веб-шелла, но мы все равно напомним.
Техника исполнения закомментированного кода в web.config файле известна примерно с 2014 года. Ее применяют, например, когда нет возможности загрузить на уязвимый сервер файлы с расширением aspx.
Если кратко, код исполняется из-за применения IIS-настроек, которые задаются в самом начале файла. Эта олдскул-техника исполнения кода хитра и элегантна, поэтому также приведем более подробное описание.
Файл web.config последовательно играет две роли: xml-конфига и aspx-страницы (скриншот 3):
👀 web.config обрабатывается как конфиг XML-парсером, который как раз и накладывает ограничения на способы написания кода веб-шелла. Единственный известный нам способ успешно пройти проверку XML-парсера — написать ASPX-код веб-шелла в комментариях;
👀 из-за примененных настроек web.config обрабатывается как aspx-страница. Ее код скомпилируется в dll и выполнится. При этом не будут учитываться XML-комментарии, только ASPX-код в соответствующих тегах.
Другие настройки web.config удаляют запреты на доступ к файлам с расширением config и файлу web.config.
Краткий итог: все web.config-настройки важны и тоже являются частью веб-шелла.
В следующем посте поделимся, какими еще важными особенностями обладал этот веб-шелл и откуда мог взяться. Если интересно, ставьте 🔥


