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

    Пафосный волк, призванный показать жертве серьезность ситуации. Впрочем, могло быть и хуже.


    Рис. 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 :)

    И все же, теневой волк, зачем и почему?
    Доктор Веб
    Компания

    Комментарии 9

      0

      с миру по нитке… что-нибудь автору в итоге капнуло.

        0
        Всего получено 0.05561146 BTC
        и кажется ни одного платежа 0.05 BTC
        +2
        Судя по подходу, сие поделие должно было запускаться минимум из под Electron, «шоп кроссплатформенно, что бы это не значило!»
          +7
          Знакомый моего знакомого, который знает лично shadow wolf'а передал ответ на вопрос «зачем»: «Деньги нужны очень сильно, а программировать я умею плохо».
          P.S.: И это не «теневой волк», а «волк в тени»! Фотка для чего прикреплена? А ещё доктор называется…
            0
            :)
              0
              … чтобы научиться программировать :)
              +1

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

                0
                Как мило, «зачем». А давно-ли подменяли userini? И это был ещё высший класс. Потому, что те, кто попроще, запускали скринсейвер из автозагрузки или даже зацикливали страницу в браузере. Вот это вот всё зачем было? Да просто потому, что антивирусы это не отлавливали, а один из ста переводил 100-300 рублей на указанный телефон. ИЧСХ, хрень была повальной, но я не слышал не об одном уголовном деле по этому поводу.
                  +1
                  за «color a» — р3сп3кт :)

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое