Понякога толкова много искате да погледнете на очите на вирусописаца и да попитате: защо и как? На въпроса „как“ можем да отговорим сами, но да разберем какво е мислил този или онзи създател на злонамерен софтуер, би било наистина интересно. Особено когато попаднем на такива "перли".
Героят на днешната статия е интересен екземпляр на шифровалщик. По всяка вероятност, той е замислен като пореден "изнудвач", но техническата му реализация повече прилича на нечия зла шега. За тази реализация ще говорим днес.
За съжаление, проследяването на жизнения цикъл на този енкодер е почти невъзможно – статистиката за него е много оскъдна, тъй като, за щастие, не е получил разпространение. Затова ще оставим настрана произхода, методите на заразяване и други упоменавания. Ще разкажем само за нашия случай на среща с 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 с уведомление за плащането.След потвърждаване, ще ви изпратя декодер за файловете.
Можете да платите биткойни онлайн по различни начини:
— плащане с банковата карта
За биткойните:
Ако имате въпроси, пишете ми на Wulfric@gmx.com
В знак на благодарност, ще ви разкажа как вашият компютър беше хакнат и как да го защитите в бъдеще.
Патетичен вълк, повикан да покаже на жертвата сериозността на ситуацията. Въпреки това, можеше да бъде и по-зле.

Рис. 1. -В знак на благодарност, ще ви разкажа как да защитите компютъра си в бъдеще. –Изглежда легитимно.
II. Започваме работа
Първо разгледахме структурата на изпратения образец. Както и да го погледнеш, той не изглеждаше като файл, пострадал от ransomware. Отваряме шестнайсетичен редактор и гледаме. В първите 4 байта е оригиналният размер на файла, следващите 60 байта са запълнени с нули. Но най-интересното е в края:

Рис. 2. Анализираме повредения файл. Какво не би привлякло вниманието?
Всичко беше до обидно просто: 0х40 байта от заглавката бяха преместени в края на файла. За възстановяване на данните е достатъчно просто да ги върнем в началото. Достъпът до файла е възстановен, но името остава криптирано, и с него е по-сложно.

Рис. 3. Криптираното име в Base64 изглежда като безсмислен набор от символи.
Нека опитаме да го анализираме pass.key, изпратен от потребителя. В него виждаме 162-байтна последователност от символи в ASCII.

Рис. 4. 162 символа, оставени на ПК на жертвата.
Ако се вгледате, ще забележите, че символите се повтарят с определена периодичност. Това може да свидетелства за използването на XOR, където повторенията са характерни и тяхната честота зависи от дължината на ключа. Разделяйки стринга на 6 символа и прилаатайки някои варианти на XOR последователности, не получихме никакъв смислен резултат.

Рис. 5. Виждате ли повтарящи се константи в средата?
Решихме да погуглим константите, защото да, и това е възможно! И всичките те в крайна сметка ни доведоха до един алгоритъм – Batch Encryption. След изучаване на скрипта стана ясно, че нашият стринг не е нищо друго освен резултат от неговата работа. Трябва да се спомене, че това изобщо не е ransomware, а просто кодер, който заменя символи с 6-байтни последователности. Никакви ключове или други тайни 🙁

Рис. 6. Парче от оригиналния алгоритъм с неизвестен произход.
Алгоритъмът нямаше да работи, ако не беше една подробност:

Рис. 7. Одобрено от Morpheus.
С помощта на обратна замяна превръщаме стринга от 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 🙂
И все пак, теневи вълци, защо и защо?
Източник: habr.com
