# Форум на русском языке  > Угрозы информационной безопасности  > Вредоносные программы  > Шифровальщики  >  «Крякающий» шифровальщик: версия 6

## thyrex

В ответ на мою предыдущую статью и возросшее количество успешных расшифровок предыдущих версий этого шифровальщика компанией DrWeb автор наваял версию 6. В этой статье будут проанализированы 3 из 4-х существующих на данный момент модификаций.

==================================================  ==========================

*Version 6.0.0.1, 6.0.0.1.fc*

*Существенные изменения*:
Автор отказался от использования графического окна утилиты (хотя и в предыдущей версии оно хоть и создавалось скрытым, но компонент Memo никак не использовался).Автор отказался от использования кодирования пароля при пересылке и кодирования информации в конфигурационном файлеПри шифровании информация на системном диске обрабатывается в последнюю очередь (но мы знаем, что имя системной папки _WINDOWS_ может и отличаться  :Smiley:  )Реальные имена файлов (включая расширение, которое всегда становится длиной 3 символа) после шифрования заменяются сгенерированной случайным образом строкой из латинских символов такой же длины (в первую очередь файлы с расширениями .psd, .png, .mp3, .gif, .tif, .jpg, хотя реально в списке подлежащих шифрованию есть только .psd и .jpg)Мастер-ключ шифрования имеет длину в *2048 байт* и может содержать не только латинские символы (строчные и прописные), но и цифры.

*Типы файлов для шифрования:*



> *.jpg, *.jpeg, *.doc, *.docx, *.xls, *xlsx, *.dbf, *.1cd, *.psd, *.dwg, *.xml, *.zip, *.rar, *.db3, *.pdf,
> *.rtf, *.7z:, .kwm, *.arj, *.xlsm, *.key, *.cer, *.accdb, *.odt, *.ppt, *.mdb, *.dt, *.gsf, *.ppsx, *.pptx, *.txt


Сам *блок, необходимый для расшифровки*, теперь имеет следующий вид:



> StartSignature {CRYPTSTARTDATA}Количество циклов преобразованияМассив с 256 номерами из мастер-ключаMD5 мастер-ключаСмещение первого блока для шифрованияСмещение второго блока для шифрованияСмещение третьего блока для шифрованияMD5 всего файлаДлина блока для замены мусоромИдентификатор зараженного компьютераНомер версииОригинальное имя файлаEndSignature {CRYPTENDBLACKDC}


Если размер файла меньше 1кбайт, то перед количеством циклов записывается еще *{rlf+размер_файла}*. 

Первые две стадии работы шифровальщика не претерпели существенных изменений в сравнении с предыдущей версией, за исключением того, что 
- получение буквы системного диска реализуется без всяких "извращений";
- ключ /install уже не используется.

*Процедура генерации мастер ключа*

О конфигурационном файле

- пока идет процесс шифрования (продолжается после рестарта системы), в нем хранится идентификатор зараженного компьютера и 2048-символьный случайный идентификатор. 
- когда процесс завершен, там записано {CRYPTFULLEND}Скрыть


Как писалось выше, мастер ключ теперь имеет длину 2048 байт и может содержать не только латинские символы (строчные и прописные), но и цифры. После проверки наличия выхода в Интернет (проверяются 5 серверов, ответ FINDED), мастер-пароль модифицируется по следующему правилу:



> byte[2048] = byte[2048]+byte[2047], byte[2047] = byte[2047]+byte[2046], ..., byte[2] = byte[2]+byte[1].


Таким образом, остается неизменным только самый первый байт мастер-ключа.   

*О самом шифровании*
Автор вируса учел мои предыдущие "наезды" и теперь проверяет размер файлов при шифровании: если он превышает *2000000 Кбайт*, то шифрование файла не происходит.

После нахождения подходящего для шифрования файла, вирус:
1) генерирует случайное число из отрезка [0;5001] (будет использоваться в дальнейшем);
2) вычисляет MD5 исходного файла (опять же для отвода глаз не используется функция MD5File, которая есть в используемом модуле);
3) генерирует случайно три адреса блоков, которые будут зашифрованы при первом проходе;
4) генерирует случайное число циклов модификации исходного мастер-ключа (число из отрезка [1;64]) и модифицирует мастер-ключ в соответствии с правилом, указанным выше;
5) выбирает 256 случайных байт из мастер-ключа для генерации ключа шифрования файла;
6) шифрует полученным ключом 1024 байта (если позволяет размер файла) с начала файла + три блока, смещение которых получено в п.3;
7) получает количество блоков в файле размером, равным числу, полученному в п.1, и устанавливает указатель в файле за последним из них, т.е. на начало оставшегося "хвоста" файла;
 :Cool:  этот "хвост" заменяется мусором, причем файл увеличивается в размере уже на данном этапе;
9) получает количество блоков в файле размером, равным числу длине блока, необходимого для расшифровки, и устанавливает указатель в файле за последним из них, т.е. на начало оставшегося "хвоста" файла;
10) сюда копируется блок информации, нужный для дешифровки.
11) реальное имя файла заменяется мусорным + к нему дописывается "признак заражения":
12) для файла выполняется операция Move, что приводит к простому обновлению информации в таблице размещения файлов и делает ненужной в общем-то операцию Delete для оригинала (возможно, просто проверка на случай непредвиденной ошибки при работе с файлами).




Внимание
*Внимание!!! Из-за ошибки реализации пп. 7-10 файл не сможет восстановить даже оригинальный дешифратор от злоумышленника.
*


==================================================  ==========================

*Version 6.1.0.0.b* (есть еще 6.1.0.0; раздобыть не удалось)

*Типы файлов для шифрования:*



> *.jpg, *.jpeg, *.doc, *.docx, *.xls, *xlsx, *.dbf, *.1cd, *.psd, *.dwg, *.xml, *.zip, *.rar, *.db3, *.pdf,
> *.rtf, *.7z:, .kwm, *.arj, *.xlsm, *.key, *.cer, *.accdb, *.odt, *.ppt, *.mdb, *.dt, *.gsf, *.ppsx, *.pptx


Как видим, из списка для шифрования ушли txt-файлы.
Кроме того, в этой версии:
1) автор отказался от дописывания мусора в конец файла;
2) автор отказался от вычисления MD5 всего файла;
3) внес изменения в работу первых двух этапов (я их не анализировал);
4) проверка наличия доступа в интернет теперь основана на ответе любого из трех серверов.

Сам блок, необходимый для расшифровки, тоже *претерпел изменения* и теперь имеет следующий вид:



> StartSignature {CRYPTSTARTDATA}Количество циклов преобразованияМассив с 256 номерами из мастер-ключаMD5 мастер-ключаСмещение первого блока для шифрованияСмещение второго блока для шифрованияСмещение третьего блока для шифрованияMD5 третьего блокаMD5 второго блокаMD5 первогого блокаMD5 блока в начале файлаИдентификатор зараженного компьютераНомер версииОригинальное имя файлаEndSignature {CRYPTENDBLACKDC}


Если размер файла меньше 1кбайт, то перед количеством циклов всё так же записывается *{rlf+размер_файла}* .

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

-------------------------------------------------------------------------------------------------

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

Учитывая, что старт шифрованию дает наличие выхода в Интернет, совет нерадивым пользователям, которые

1) не позаботились о бэкапах на отдельных носителях;
2) расшаривают доступ к сетевым дискам и получают шифрование и особо ценной информации (чаще всего баз 1С);
3) используют легкие пароли для доступа к серверным системам через RDP





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

----------

*mike 1*,  *olejah*

----------

Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:

----------

