Порой так хочется заглянуть какому-нибудь вирусописателю в глаза и спросить: зачем и почему? С ответом на вопрос «как» мы справимся сами, а вот узнать, чем думал руководствовался тот или иной создатель вредоносного ПО, было бы очень интересно. Тем более, когда нам попадаются такие «жемчужины».
Герой сегодняшней статьи – интересный экземпляр шифровальщика. Задумывался он, по всей видимости, как очередной «вымогатель», но его техническая реализация больше похожа на чью-то злую шутку. Об этой реализации сегодня и поговорим.
К сожалению, проследить жизненный цикл этого энкодера практически невозможно – слишком уже мало статистики по нему, так как распространения он, к счастью, не получил. Поэтому оставим за скобками происхождение, методы заражения и прочие упоминания. Расскажем лишь о нашем случае знакомства с Wulfric Ransomware и о том, как мы помогли пользователю спасти его файлы.
В нашу антивирусную лабораторию часто обращаются люди, пострадавшие от шифровальщиков. Мы оказываем помощь вне зависимости от того, какие антивирусные продукты у них установлены. В этот раз к нам обратился человек, чьи файлы оказались поражены неизвестным энкодером.
Мы получили от пользователя образцы зашифрованных файлов, записку о выкупе и файл, который, вероятно, является ключом, необходимым автору шифровальщика для расшифровки файлов.
Вот и все наши зацепки:
Давайте взглянем на записку. Сколько биткоинов на этот раз?
Перевод:
Пафосный волк, призванный показать жертве серьезность ситуации. Впрочем, могло быть и хуже.
Рис. 1. -As a bonus, I will tell you how to protect your computer in the future. –Seems legit.
Первым делом мы взглянули на структуру присланного образца. Как ни странно, он не был похож на файл, пострадавший от шифровальщика. Открываем шестнадцатеричный редактор и смотрим. В первых 4 байтах содержится оригинальный размер файла, следующие 60 байт заполнены нулями. Но самое интересное находится в конце:
Рис. 2 Анализируем поврежденный файл. Что сразу бросается в глаза?
Все оказалось до обидного просто: 0х40 байт из заголовка были перенесены в конец файла. Для восстановления данных достаточно просто вернуть их в начало. Доступ к файлу восстановлен, но зашифрованным осталось название, и с ним все сложнее.
Рис. 3. Зашифрованное название в Base64 выглядит как бессвязный набор символов.
Попробуем разобрать pass.key, отправленный пользователем. В нем мы видим 162-байтную последовательность символов в ASCII.
Рис. 4. 162 символа, оставленные на ПК жертвы.
Если приглядеться, то можно заметить, что символы повторяются с определенной периодичностью. Это может свидетельствовать об использовании XOR, где свойственны повторения, частота которых зависит от длины ключа. Разбив строку по 6 символов и проXORив некоторыми вариантами XOR-последовательностей, какого-либо осмысленного результата мы не добились.
Рис. 5. Видите повторяющиеся константы в середине?
Решили погуглить константы, потому что да, так тоже можно! И все они в итоге привели к одному алгоритму − Batch Encryption. После изучения скрипта стало понятно, что наша строка – это не что иное, как результат его работы. Следует упомянуть, что это вовсе не шифровальщик, а всего-навсего кодировщик, заменяющий символы на 6-байтные последовательности. Никаких тебе ключей или других секретов :(
Рис. 6. Кусок оригинального алгоритма неизвестного авторства.
Алгоритм не работал бы как надо, если бы не одна деталь:
Рис. 7. Morpheus approved.
С помощью обратной подстановки превращаем строку из pass.key в текст из 27 символов. Особого внимания заслуживает человеческий (скорее всего) текст ‘asmodat’.
Рис.8. USGFDG=7.
Нам снова поможет Google. После небольшого поиска находим интересный проект на GitHub – Folder Locker, написанный на .Net и использующий библиотеку ‘asmodat’ с другого аккаунта на «Гите».
Рис. 9. Интерфейс Folder Locker. Обязательно проверили на вредоносность.
Утилита представляет собой шифратор для Windows 7 и выше, который распространяется с открытым исходным кодом. При шифровке используется пароль, необходимый для последующей дешифровки. Позволяет работать как с отдельными файлами, так и с целыми директориями.
Ее библиотека использует симметричный алгоритм шифрования Rijndael в режиме CBC. Примечательно, что размер блока был выбран равным 256 бит – в отличие от принятого в стандарте AES. В последнем размер ограничивается 128 битами.
Наш ключ формируется по стандарту PBKDF2. При этом паролем выступает SHA-256 от введенной в утилите строки. Остается лишь найти эту строку, чтобы сформировать ключ дешифровки.
Что ж, вернемся к нашему уже раскодированному pass.key. Помните ту строчку с набором цифр и текстом ‘asmodat’? Пробуем использовать первые 20 байт строки в качестве пароля для Folder Locker.
Гляди-ка, работает! Кодовое слово подошло, и все прекрасно расшифровалось. Судя по символам пароля – это HEX-представление определенного слова в ASCII. Попробуем отобразить кодовое слово в текстовом виде. Получаем ‘shadowwolf’. Уже чувствуете симптомы ликантропии?
Давайте еще раз взглянем на структуру пораженного файла, теперь уже зная механизм работы локера:
Красным и желтым выделены само зашифрованное имя и перенесенный заголовок соответственно.
Рис. 10. Красным выделено зашифрованное имя, желтым – перенесенный заголовок.
А теперь сравним зашифрованное и расшифрованное имена в шестнадцатеричном представлении.
Структура расшифрованных данных:
Рис. 11. IMG_4114 выглядит куда лучше.
Возвращаясь к началу. Мы не знаем, чем руководствовался автор Wulfric.Ransomware и какую цель он преследовал. Безусловно, для рядового пользователя результат работы даже такого шифровальщика покажется большой бедой. Файлы не открываются. Все названия пропали. Вместо привычной картинки – волк на экране. Заставляют читать про биткоины.
Правда, в этот раз под личиной «страшного энкодера» скрывалась такая вот нелепая и бестолковая попытка вымогательства, где злоумышленник использует готовые программы и оставляет ключи прямо на месте преступления.
Кстати, о ключах. У нас не было вредоносного скрипта или трояна, по которому можно было бы понять, как возник этот pass.key – механизм появления файла на зараженном ПК остается неизвестным. Но, помнится, в своей записке автор упоминал об уникальности пароля. Так вот, кодовое слово для расшифровки настолько же уникально, насколько уникальным является юзернейм shadow wolf :)
И все же, теневой волк, зачем и почему?
Герой сегодняшней статьи – интересный экземпляр шифровальщика. Задумывался он, по всей видимости, как очередной «вымогатель», но его техническая реализация больше похожа на чью-то злую шутку. Об этой реализации сегодня и поговорим.
К сожалению, проследить жизненный цикл этого энкодера практически невозможно – слишком уже мало статистики по нему, так как распространения он, к счастью, не получил. Поэтому оставим за скобками происхождение, методы заражения и прочие упоминания. Расскажем лишь о нашем случае знакомства с 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
В качестве бонуса я расскажу, как взломан ваш компьютер и как его защитить в будущем.
Пафосный волк, призванный показать жертве серьезность ситуации. Впрочем, могло быть и хуже.
Рис. 1. -As a bonus, I will tell you how to protect your computer in the future. –Seems legit.
II. Приступаем к работе
Первым делом мы взглянули на структуру присланного образца. Как ни странно, он не был похож на файл, пострадавший от шифровальщика. Открываем шестнадцатеричный редактор и смотрим. В первых 4 байтах содержится оригинальный размер файла, следующие 60 байт заполнены нулями. Но самое интересное находится в конце:
Рис. 2 Анализируем поврежденный файл. Что сразу бросается в глаза?
Все оказалось до обидного просто: 0х40 байт из заголовка были перенесены в конец файла. Для восстановления данных достаточно просто вернуть их в начало. Доступ к файлу восстановлен, но зашифрованным осталось название, и с ним все сложнее.
Рис. 3. Зашифрованное название в Base64 выглядит как бессвязный набор символов.
Попробуем разобрать pass.key, отправленный пользователем. В нем мы видим 162-байтную последовательность символов в ASCII.
Рис. 4. 162 символа, оставленные на ПК жертвы.
Если приглядеться, то можно заметить, что символы повторяются с определенной периодичностью. Это может свидетельствовать об использовании XOR, где свойственны повторения, частота которых зависит от длины ключа. Разбив строку по 6 символов и проXORив некоторыми вариантами XOR-последовательностей, какого-либо осмысленного результата мы не добились.
Рис. 5. Видите повторяющиеся константы в середине?
Решили погуглить константы, потому что да, так тоже можно! И все они в итоге привели к одному алгоритму − Batch Encryption. После изучения скрипта стало понятно, что наша строка – это не что иное, как результат его работы. Следует упомянуть, что это вовсе не шифровальщик, а всего-навсего кодировщик, заменяющий символы на 6-байтные последовательности. Никаких тебе ключей или других секретов :(
Рис. 6. Кусок оригинального алгоритма неизвестного авторства.
Алгоритм не работал бы как надо, если бы не одна деталь:
Рис. 7. Morpheus approved.
С помощью обратной подстановки превращаем строку из pass.key в текст из 27 символов. Особого внимания заслуживает человеческий (скорее всего) текст ‘asmodat’.
Рис.8. USGFDG=7.
Нам снова поможет Google. После небольшого поиска находим интересный проект на GitHub – Folder Locker, написанный на .Net и использующий библиотеку ‘asmodat’ с другого аккаунта на «Гите».
Рис. 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 – размер перенесенного заголовка.
Красным и желтым выделены само зашифрованное имя и перенесенный заголовок соответственно.
Рис. 10. Красным выделено зашифрованное имя, желтым – перенесенный заголовок.
А теперь сравним зашифрованное и расшифрованное имена в шестнадцатеричном представлении.
Структура расшифрованных данных:
- 78 B9 B8 2E – мусор, созданный утилитой (4 байта);
- 0С 00 00 00 – длина расшифрованного имени (12 байт);
- далее идет, собственно, имя файла и дополнение нулями до нужной длины блока (паддинг).
Рис. 11. IMG_4114 выглядит куда лучше.
III. Выводы и заключение
Возвращаясь к началу. Мы не знаем, чем руководствовался автор Wulfric.Ransomware и какую цель он преследовал. Безусловно, для рядового пользователя результат работы даже такого шифровальщика покажется большой бедой. Файлы не открываются. Все названия пропали. Вместо привычной картинки – волк на экране. Заставляют читать про биткоины.
Правда, в этот раз под личиной «страшного энкодера» скрывалась такая вот нелепая и бестолковая попытка вымогательства, где злоумышленник использует готовые программы и оставляет ключи прямо на месте преступления.
Кстати, о ключах. У нас не было вредоносного скрипта или трояна, по которому можно было бы понять, как возник этот pass.key – механизм появления файла на зараженном ПК остается неизвестным. Но, помнится, в своей записке автор упоминал об уникальности пароля. Так вот, кодовое слово для расшифровки настолько же уникально, насколько уникальным является юзернейм shadow wolf :)
И все же, теневой волк, зачем и почему?