«Крякающий» шифровальщик: версия 6

Тема в разделе "Борьба с типовыми зловредами", создана пользователем thyrex, 21 дек 2014.

  1. thyrex
    Оффлайн

    thyrex Команда форума Супер-Модератор Ассоциация VN/VIP

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

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

    Version 6.0.0.1, 6.0.0.1.fc

    Существенные изменения:
    • Автор отказался от использования графического окна утилиты (хотя и в предыдущей версии оно хоть и создавалось скрытым, но компонент Memo никак не использовался).
    • Автор отказался от использования кодирования пароля при пересылке и кодирования информации в конфигурационном файле
    • При шифровании информация на системном диске обрабатывается в последнюю очередь (но мы знаем, что имя системной папки WINDOWS может и отличаться :) )
    • Реальные имена файлов (включая расширение, которое всегда становится длиной 3 символа) после шифрования заменяются сгенерированной случайным образом строкой из латинских символов такой же длины (в первую очередь файлы с расширениями .psd, .png, .mp3, .gif, .tif, .jpg, хотя реально в списке подлежащих шифрованию есть только .psd и .jpg)
    • Мастер-ключ шифрования имеет длину в 2048 байт и может содержать не только латинские символы (строчные и прописные), но и цифры.
    Типы файлов для шифрования:
    Сам блок, необходимый для расшифровки, теперь имеет следующий вид:
    Если размер файла меньше 1кбайт, то перед количеством циклов записывается еще {rlf+размер_файла}.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    уж если открываете неизвестное письмо и запускаете вложение из него, то делайте это при отключенном интернете. Это предотвратит шифрование, как минимум, до возобновления доступа в Интернет, как максимум, до перезагрузки и последующего подключения к Интернету. А за это время можно найти способы связаться с "авторами" письма и уточнить факт отсылки информации. И не забудьте сменить пароли, если не смогли предотвратить шифрование.
     
    Последнее редактирование модератором: 22 дек 2014
    machito, -SEM-, SNS-amigo и 6 другим нравится это.

Поделиться этой страницей