Упаковщик: нет
Ключи: нет
SHA1-хеш:
- aee131ba1bfc4b6fa1961a7336e43d667086ebd2c7ff81029e14b2bf47d9f3a7
Описание
Троян-шифровальщик, работающий в среде 32- и 64-битных операционных систем семейства Microsoft Windows. Представляет собой исполняемую библиотеку, написанную на C++. Для шифрования пользовательских файлов использует алгоритмы ChaCha20 и RSA. Впервые замечен в июле 2020 года. Является дальнейшим развитием шифровальщиков Maze и Sekhmet, с которыми имеет много общего. Используется для целевых атак на частные компании. Самоназвание шифровальщика – Egregor Ransomware.
Принцип действия
Исследованный образец представляет собой исполняемый файл в формате DLL с оригинальной точкой входа и тремя экспортируемыми функциями:
Статический анализ кода показывает, что вредоносная активность содержится в функции DllRegisterServer. При запуске образца на виртуальных машинах троянская программа не выполняется. Поскольку шифровальщик предназначен для целевых атак, мы полагаем, что он запускается по команде через командную строку. Для начального запуска используется команда rundll32.exe C:\Windows\%SAMPLE%,DllRegisterServer -passegregor10.
После этого троян запускает полезную нагрузку, предварительно расшифровав ее по тому же алгоритму, который используется для шифрования пользовательских файлов (ChaCha20). Однако в этом случае ключ и одноразовый код (nonce) лежат в открытом доступе. Для расшифровки необходимы 32-байтная строка KojihuDJUFDHGufhdjnbgDfgudfhdfg3 в качестве ключа и 8-байтная строка O_IJDhfs в качестве nonce:
Содержимое полезной нагрузки зашито в теле трояна и зашифровано:
Полезная нагрузка представляет собой загрузчик в виде powershell-скрипта, который подключается к amajai-technologies.industries. На момент анализа этот сервер уже не отвечал, и загружаемый файл остается неизвестным. При этом стоит отметить, что через него операторы шифровальщика могли похищать информацию. Функциональность управления принтерами для печати записок о выкупе в исследованном образце не найдена и, возможно, содержится в загружаемом файле.
Для запуска дальнейшего шифрования используется пакетный файл, который запускает рассматриваемый образец с функцией DllRegisterServer, но с другими параметрами командной строки:
Полезная нагрузка в системе маскируется под продукты компании LogMeIn:
Следует отдельно отметить, что шифровальщик использует именно алгоритм ChaCha20 (разновидность шифра Salsa20), а не AES, как написано в некоторых источниках. Это подтверждается строками expand 16-byte k и expand 32-byte k:
На использование ChaCha20 также указывает алгоритм шифрования в функции quarter-round:
Ниже представлено сравнение quarter-round Salsa20 (слева) и ChaCha20 (справа):
Для генерации самого ключа используется функция RtlGenRandom через вызов SystemFunction036. Генератор на основе RtlGenRandom оценивается как криптостойкий. Подбор ключей в этом случае невозможен:
Большая часть кода написана вручную и обфусцирована, что многократно затрудняет анализ. Данные об оригинальном расположении проекта содержатся в отладочной информации: M:\sc\p\testbuild.pdb.
Одна из особенностей шифровальщика – в том, что расширения каждого файла отличаются даже в пределах одного компьютера. Аналогично Sekhmet, для каждого файла используется новое случайное расширение. Для идентификации зашифрованных файлов используется файловый маркер из четырех DWORD в конце файла (EOF): 00 00 00 00, 00 00 XX XX, 00 00 XX XX, XX XX 6B B1 (байты вместо XX отличаются для каждого файле). По этим значениям можно определить, что файл был заражен именно этим шифровальщиком.
Переход по ссылке, предоставляемой вымогателями после заражения, ведет на их страницу, доступную через сеть Tor.