Компания Symantec, обнаружила новую вредоносную программу, которая использует функцию Microsoft Internet Information Services (IIS) для установки бэкдора на целевые системы.
Frebniis Backdoor
Вредоносная программа, получившая название Frebniis (Backdoor.Frebniis), была использована неизвестным на данный момент субъектом угроз против объектов в Тайване.
Техника, используемая Frebniis, предполагает внедрение вредоносного кода в память DLL-файла (iisfreb.dll), связанного с функцией IIS, используемой для устранения неполадок и анализа неудачных запросов веб-страниц. Это позволяет вредоносной программе скрытно отслеживать все HTTP-запросы и распознавать специально отформатированные HTTP-запросы, отправленные злоумышленником, что дает возможность удаленного выполнения кода. Чтобы использовать эту технику, злоумышленнику необходимо получить доступ к системе Windows, на которой запущен сервер IIS, каким-либо другим способом. В данном конкретном случае неясно, как был получен такой доступ.
IIS - это веб-сервер общего назначения, который работает в системах Windows и обслуживает запрошенные HTML-страницы или файлы. Веб-сервер IIS принимает запросы от удаленных клиентских компьютеров и возвращает соответствующий ответ. IIS имеет функцию, известную как Failed Request Event Buffering (FREB), которая собирает данные и подробности о запросах, такие как IP-адрес и порт отправителя, HTTP-заголовки с cookies и т. д.
Функция под названием Failed Request Tracing может быть использована для устранения неполадок в IIS при неудачных запросах. Failed Request Tracing буферизирует события трассировки для запроса и переносит их на диск, если запрос соответствует определению "неудача", заданному пользователем. Трассировка неудачных запросов может, например, использоваться для того, чтобы узнать, почему запросы возвращают определенный код состояния HTTP (401 или 404 и т.д.), или почему запрос обрабатывается слишком долго, или не отвечает.
Frebniis убеждается, что трассировка неудачных запросов включена, а затем обращается к памяти процесса w3wp.exe (IIS), получая адрес загрузки кода буферизации событий неудачных запросов (iisfreb.dll). Получив адрес начала кода, Frebniis ищет оттуда таблицу указателей функций, чтобы перехватить выполнение кода.
Авторы Frebniis определили, что определенный указатель функции в iisfreb.dll вызывается iiscore.dll всякий раз, когда к IIS поступает любой HTTP-запрос от веб-клиента. Эта функция обычно проверяет, соответствует ли содержимое HTTP-запроса правилам трассировки неудачных запросов.
Frebniis перехватывает эту функцию, внедряя свой собственный вредоносный код в память процесса IIS, а затем заменяя указатель функции адресом своего вредоносного кода. Эта точка перехвата позволяет Frebniis незаметно получать и проверять каждый HTTP-запрос к серверу IIS, прежде чем вернуться к исходной функции.
Вредоносный внедренный код Frebniis анализирует все полученные HTTP POST-запросы на /logon.aspx или /default.aspx вместе с параметром password, заданным как '7ux4398!'. Если пароль совпадает, Frebniis расшифровывает и выполняет секцию внедренного кода, которая представляет собой исполняемый код .NET, состоящий из основной функциональности бэкдора. При этом ни один исполняемый файл не сохраняется на диске, что делает бэкдор абсолютно незаметным.
Код .NET обеспечивает функциональность проксирования и удаленное выполнение кода, управляемое вторым параметром HTTP, который представляет собой закодированную строку Base64.
Чтобы включить прокси, закодированная строка декодируется в Base64, а затем расшифровывается (xor 0x08), причем первый символ представляет собой команду прокси, за которой следуют ожидаемые параметры. Прокси используется для отправки и получения данных в кодировке Base64 от других компьютерных систем. Это позволяет злоумышленникам общаться с внутренними ресурсами, которые обычно могут быть заблокированы в Интернете через взломанный сервер IIS.
Код бэкдора .NET также поддерживает удаленное выполнение. Если HTTP-вызов на logon.aspx или default.aspx получен без параметра пароля, но со строкой Base64, предполагается, что строка Base64 является кодом C#, который будет выполнен прямо в памяти. Строка Base64 декодируется, затем расшифровывается (xor 0x08) и ожидается, что это будет XML-документ с кодом C# для выполнения в узле '/doc' под атрибутом 'data' (например, <doc data=C# code>). Код C# извлекается и выполняется. Это позволяет Frebniis незаметно выполнить произвольный код в системе.
Перехватывая и модифицируя код веб-сервера IIS, Frebniis способен перехватывать обычный поток обработки HTTP-запросов и искать специально отформатированные HTTP-запросы. Эти запросы позволяют удаленное выполнение кода и проксирование на внутренние системы незаметным образом. В системе не будет запущено никаких файлов или подозрительных процессов, что делает Frebniis относительно уникальным и редким типом HTTP-бэкдора, встречающимся в природе.
Indicators of Compromise
SHA256
- 6464f9a5da26aa53fb2221255e908fd4da8edf0633f94051beee74a14b9b001c
- b81c177c440e84635f22dc97b0411de93a24a983a41af676ffbbb4439487aaef