Wulfric Ransomware – шифровальщик, которого нет

Порой так хочется заглянуть какому-нибудь вирусописателю в глаза и спросить: зачем и почему? С ответом на вопрос «как» мы справимся сами, а вот узнать, чем думал руководствовался тот или иной создатель вредоносного ПО, было бы очень интересно. Тем более, когда нам попадаются такие «жемчужины».

Герой сегодняшней статьи — интересный экземпляр шифровальщика. Задумывался он, по всей видимости, как очередной «вымогатель», но его техническая реализация больше похожа на чью-то злую шутку. Об этой реализации сегодня и поговорим.

К сожалению, проследить жизненный цикл этого энкодера практически невозможно — слишком уже мало статистики по нему, так как распространения он, к счастью, не получил. Поэтому оставим за скобками происхождение, методы заражения и прочие упоминания. Расскажем лишь о нашем случае знакомства с Wulfric Ransomware и о том, как мы помогли пользователю спасти его файлы.
I. Как все начиналось

В нашу антивирусную лабораторию часто обращаются люди, пострадавшие от шифровальщиков. Мы оказываем помощь вне зависимости от того, какие антивирусные продукты у них установлены. В этот раз к нам обратился человек, чьи файлы оказались поражены неизвестным энкодером.

Добрый день! Были зашифрованы файлы на файловом хранилище (samba4) с беспарольным входом. Подозреваю, что зараза пошла с компьютера дочери (Windows 10 со штатной защитой Windows Defender). Компьютер дочери не включали после этого. Файлы зашифрованы в основном .jpg и .cr2. Расширение файлов после шифрования: .aef.

Мы получили от пользователя образцы зашифрованных файлов, записку о выкупе и файл, который, вероятно, является ключом, необходимым автору шифровальщика для расшифровки файлов.
Вот и все наши зацепки:

  • 01c.aef (4481K)
  • hacked.jpg (254K)
  • hacked.txt (0K)
  • 04c.aef (6540K)
  • pass.key (0K)


Давайте взглянем на записку. Сколько биткоинов на этот раз?

Перевод:

Внимание, ваши файлы зашифрованы!
пароль уникален для вашего ПК.
Заплатите сумму 0.05 BTC на биткоин-адрес: 1ERtRjWAKyG2Edm9nKLLCzd8p1CjjdTiF
После оплаты отправьте мне письмо, прикрепив файл pass.key на Wulfric@gmx.com с уведомлением об оплате.
После подтверждения я вышлю вам расшифровщик для файлов.
Вы можете оплатить биткоины онлайн разными способами:
buy.blockexplorer.com — оплата банковской картой
www.buybitcoinworldwide.com
localbitcoins.net
О биткоинах:
en.wikipedia.org/wiki/Bitcoin
Если у вас есть какие-то вопросы, пишите мне на Wulfric@gmx.com
В качестве бонуса я расскажу, как взломан ваш компьютер и как его защитить в будущем.


Пафосный волк, призванный показать жертве серьезность ситуации. Впрочем, могло быть и хуже.
nne9_svoarapfsjf2yajkqb9c84.jpeg
Рис. 1. -As a bonus, I will tell you how to protect your computer in the future. –Seems legit.

II. Приступаем к работе
Первым делом мы взглянули на структуру присланного образца. Как ни странно, он не был похож на файл, пострадавший от шифровальщика. Открываем шестнадцатеричный редактор и смотрим. В первых 4 байтах содержится оригинальный размер файла, следующие 60 байт заполнены нулями. Но самое интересное находится в конце:
0uejnqz2z2-r770dvhba1u90no0.jpeg
Рис. 2 Анализируем поврежденный файл. Что сразу бросается в глаза?

Все оказалось до обидного просто: 0×40 байт из заголовка были перенесены в конец файла. Для восстановления данных достаточно просто вернуть их в начало. Доступ к файлу восстановлен, но зашифрованным осталось название, и с ним все сложнее.

4em3htrjjmfvb4xwspngahu_61w.png
Рис. 3. Зашифрованное название в Base64 выглядит как бессвязный набор символов.

Попробуем разобрать pass.key, отправленный пользователем. В нем мы видим 162-байтную последовательность символов в ASCII.

n6v0c0yosdvlv3gdh3ubgxj4ggy.png
Рис. 4. 162 символа, оставленные на ПК жертвы.

Если приглядеться, то можно заметить, что символы повторяются с определенной периодичностью. Это может свидетельствовать об использовании XOR, где свойственны повторения, частота которых зависит от длины ключа. Разбив строку по 6 символов и проXORив некоторыми вариантами XOR-последовательностей, какого-либо осмысленного результата мы не добились.

3cgpvqvoieizntwut0pk8g2pczo.png
Рис. 5. Видите повторяющиеся константы в середине?

Решили погуглить константы, потому что да, так тоже можно! И все они в итоге привели к одному алгоритму − Batch Encryption. После изучения скрипта стало понятно, что наша строка — это не что иное, как результат его работы. Следует упомянуть, что это вовсе не шифровальщик, а всего-навсего кодировщик, заменяющий символы на 6-байтные последовательности. Никаких тебе ключей или других секретов :(

bvlnejuy9fwyzjlofrrfi1rpuoi.png
Рис. 6. Кусок оригинального алгоритма неизвестного авторства.

Алгоритм не работал бы как надо, если бы не одна деталь:

xkocqz5aldw_y5sthecwwumvyqo.jpeg
Рис. 7. Morpheus approved.

С помощью обратной подстановки превращаем строку из pass.key в текст из 27 символов. Особого внимания заслуживает человеческий (скорее всего) текст «asmodat».

hj0agdeqdmzzwzyob5skbrnr8rq.png
Рис. 8. USGFDG=7.

Нам снова поможет Google. После небольшого поиска находим интересный проект на GitHub — Folder Locker, написанный на .Net и использующий библиотеку «asmodat» с другого аккаунта на «Гите».

pnzzqzct6wwxs6gks6rwwjgrthk.png
Рис. 9. Интерфейс Folder Locker. Обязательно проверили на вредоносность.

Утилита представляет собой шифратор для Windows 7 и выше, который распространяется с открытым исходным кодом. При шифровке используется пароль, необходимый для последующей дешифровки. Позволяет работать как с отдельными файлами, так и с целыми директориями.

Ее библиотека использует симметричный алгоритм шифрования Rijndael в режиме CBC. Примечательно, что размер блока был выбран равным 256 бит — в отличие от принятого в стандарте AES. В последнем размер ограничивается 128 битами.

Наш ключ формируется по стандарту PBKDF2. При этом паролем выступает SHA-256 от введенной в утилите строки. Остается лишь найти эту строку, чтобы сформировать ключ дешифровки.

Что ж, вернемся с нашему уже раскодированному pass.key. Помните ту строчку с набором цифр и текстом «asmodat»? Пробуем использовать первые 20 байт строки в качестве пароля для Folder Locker.

Гляди-ка, работает! Кодовое слово подошло, и все прекрасно расшифровалось. Судя по символам пароля — это HEX-представление определенного слова в ASCII. Попробуем отобразить кодовое слово в текстовом виде. Получаем »shadowwolf». Уже чувствуете симптомы ликантропии?

Давайте еще раз взглянем на структуру пораженного файла, теперь уже зная механизм работы локера:

  • 02 00 00 00 — режим шифрования имен;
  • 58 00 00 00 — длина зашифрованного и закодированного в base64 имени файла;
  • 40 00 00 00 — размер перенесенного заголовка.


Красным и желтым выделены само зашифрованное имя и перенесенный заголовок соответственно.

lc4xcnocaus9bh9e3hgezu9_pka.jpeg
Рис. 10. Красным выделено зашифрованное имя, желтым — перенесенный заголовок.

А теперь сравним зашифрованное и расшифрованное имена в шестнадцатеричном представлении.

Структура расшифрованных данных:

  • 78 B9 B8 2E — мусор, созданный утилитой (4 байта);
  • 0С 00 00 00 — длина расшифрованного имени (12 байт);
  • далее идет, собственно, имя файла и дополнение нулями до нужной длины блока (паддинг).


ttadkjqsidbzxibbzfghqp60eee.jpeg
Рис. 11. IMG_4114 выглядит куда лучше.

III. Выводы и заключение
Возвращаясь к началу. Мы не знаем, чем руководствовался автор Wulfric.Ransomware и какую цель он преследовал. Безусловно, для рядового пользователя результат работы даже такого шифровальщика покажется большой бедой. Файлы не открываются. Все названия пропали. Вместо привычной картинки — волк на экране. Заставляют читать про биткоины.

Правда, в этот раз под личиной «страшного энкодера» скрывалась такая вот нелепая и бестолковая попытка вымогательства, где злоумышленник использует готовые программы и оставляет ключи прямо на месте преступления.

Кстати, о ключах. У нас не было вредоносного скрипта или трояна, по которому можно было бы понять, как возник этот pass.key — механизм появления файла на зараженном ПК остается неизвестным. Но, помнится, в своей записке автор упоминал об уникальности пароля. Так вот, кодовое слово для расшифровки настолько же уникально, насколько уникальным является юзернейм shadow wolf:)

И все же, теневой волк, зачем и почему?

© Habrahabr.ru