Эксперты Лаборатории цифровой криминалистики из FACCT сообщают о росте активности новых программ-вымогателей семейства Loki Locker. Больше половины жертв этих шифровальщиков находятся в России и близлежащих странах. Злоумышленники требуют выкуп за расшифровку пользовательских файлов в размере от нескольких долларов до сотен тысяч.
Loki Locker шифрует файлы жертвы на локальных дисках и общих сетевых ресурсах с помощью стандартной комбинации AES для шифрования файлов и RSA для защиты ключа. Затем вредонос просит жертву отправить электронное письмо злоумышленникам, чтобы получить инструкции, как заплатить выкуп.
В случае, когда пострадавший не выполняет инструкции, вымогатель удаляет все файлы с устройства и перезаписывает MBR.
MBR (Master Boot Record) — это основная загрузочная запись, располагающаяся в первом секторе жесткого диска компьютера. Она содержит информацию, необходимую для загрузки операционной системы компьютера.
Примечательным в этой кампании является то, что вирус обходят системы с установленным персидским языком в качестве главного языка интерфейса. Под угрозой находятся все версии Windows.
Краткие сведения
Первые атаки с использованием данного шифровальщика были замечены ещё весной 2022 года на Ближнем Востоке.
В то время вирус продавался на подпольных форумах. А с наступлением лета 2022 года появились первые случаи атак в России, и преступники выбрали в качестве своих целей средний и малый бизнес.
Лаборатория цифровой криминалистики, упомянутая ранее, сообщила о не менее чем 62 атаках с использованием Loki Locker по всему миру начиная с июля 2022 года, 21 из которых — в России. С течением времени количество пострадавших только растет, и сейчас эта тревожная тенденция продолжается.
Примечательно, что изначально вредонос распространялся внутри инструментов для брутфорса, таких как:
PayPal Brute Checker
Spotify Brute Checker
PiaVPN Brute Checker от ACTEAM
Брутфорс (Brute Force) — это метод атаки на систему, который основывается на итеративном переборе всех возможных комбинаций паролей или ключей для получения доступа к защищенным данным или системе.
Далее Loki начал распространяться посредством фишинговых почтовых рассылок на корпоративные почты. Письма отличались своей продуманностью, злоумышленники тщательно подделывали содержимое, используя заранее подготовленные шаблоны и легитимные печати известных компаний.
Краткий статистический анализ
По классике, представляю сетап утилит на эту статью:
DIE — Detect It Easy: многофункциональный инструмент, имеющий просто огромный арсенал. Позволит нам опередить тип компилятора вредоноса, язык, библиотеки и таблицы импорта/экспорта с последующим дизассемблированием.
PE Bear — неплохой инструмент для просмотра и редактирования составляющих PE-файла.
Tiny Tracer — утилита для динамического отслеживания исполнения бинарных элементов. Так называемый трейсер.
IDA PRO — инструмент для реверс-инжиниринга.
Reko — декомпилятор, также знакомый нам из прошлых статей.
OLDROD — это автоматизированная утилита, которая поможет дизассемблировать приложение .NET, защищенное виртуализатором KoiVM для ConfuserEx. Кроме того, он поможет перекомпилировать код виртуальной машины обратно в .NET и восстановить исходный код.
Итак, на анализе у нас будет образец самой последней версии, находящийся в свободном доступе. Как всегда, он был выгружен на VirusTotal для формирования общей картины.
Как видим, на данный момент вредонос не представляет опасности для владельцев популярных антивирусных продуктов.
Первичный визуальный осмотр не даст нам много информации — только, что стандартное имя этого приложения svchost.exe. Вредоносные программы часто используют названия дефолтных для Windows процессов, чтобы усложнить процесс обнаружения для обычного пользователя. Но в контексте шифровальщиков это не очень актуально, так как им не нужно скрываться на целевой системе, как, к примеру, стиллерам.
Стиллеры представляют собой вид вредоносного программного обеспечения, созданного для кражи конфиденциальной информации с компьютеров или устройств. Они могут быть установлены на компьютере жертвы без их согласия или знания и работать в фоновом режиме, собирая и передавая информацию злоумышленнику.
Размер исполняемого файла составляет 607 КБ. Небольшой вес является типичным для шифровальщиков. Для получения дополнительных сведений воспользуемся DIE.
Как можно увидеть на скрине, дата и время отличаются от предполагаемого времени разработки и, скорее всего, указаны преднамеренно. Это «Timestomping», он представляет собой антикриминалистический метод, используемый для того, чтобы ввести следствие и специалистов быстрого реагирования в заблуждение.
Также видим, что вредонос является библиотекой .NET, а используемый компилятор — Microsoft Linker, что здорово упрощает фронт работ.
Библиотеки .NET, по сути своей, являются конечным результатом компиляции кода на C#. К нашему счастью, мы с легкостью можем декомпилировать данный образец с помощью утилиты DNspy и провести анализ чистого исходного кода или, по крайней мере, чего-то близкого к нему.
Никакой дополнительной информации из DIE вытянуть не удастся, поэтому сразу переходим к анализу кода в DNspy.
Я думал, что все будет достаточно просто, но не тут-то было: сразу после загрузки образца в утилиту, видим следующую строку:
При попытке просмотреть существующие классы и функции мы везде будем встречать классы «Koi» и «NETGuard», а все остальные названия будут запутаны с помощью латинской литеры «Z».
KoiVM — это виртуальная машина (VM) для обфускации и защиты программного кода, разработанная специально для языка программирования .NET. KoiVM используется для усложнения процесса обратной разработки и анализа программ, защиты от нежелательного доступа к исходному коду и уменьшения риска кражи интеллектуальной собственности.
KoiVM преобразует обычный исполняемый код .NET в низкоуровневый байт-код, который затем выполняется на виртуальной машине KoiVM. Виртуальная машина заменяет часть оригинального исполняющего движка .NET и предоставляет дополнительные механизмы защиты, такие как шифрование кода, динамическая декомпрессия и обфускация.
Одной из основных функций KoiVM является защита от декомпиляции и обратной разработки. KoiVM делает процесс анализа и понимания исходного кода затруднительным, приводя его менее в читаемый и понятный для злоумышленников вид. Это может быть полезным для разработчиков, которые хотят защитить свой код от несанкционированного доступа или внедрения вредоносного программного обеспечения.
Но что делать, когда такую защиту используют сами злоумышленники для усложнения анализа исходного кода их творения? Простые реализации этого механизма можно обойти с помощью инструмента OLDROD, который был разработан специально для того, чтобы победить виртуализацию KoiVM и сделать декомпилированный код более понятным и простым для понимания.
Но очень важно отметить, что изменить несколько переменных, чтобы их не смог обнаружить Олд, очень просто, и вряд ли кто-то будет этим пренебрегать.
Но, как говорится, попытка не пытка, хотя и увенчалась она неудачей, поэтому будем разбираться вручную.
Прежде хотелось бы отметить наличие нескольких интересных классов, содержащих в себе информацию.
Во-первых, класс ZZZC, который отвечает за расширение зашифрованных файлов и указывает почту злоумышленника для обратной связи:
Во-вторых, наличие класса, в котором находятся множество оболочек для различных API-интерфейсов Windows. Использование одной из таких оболочек позволяет импортировать DLL и конкретную функцию, что обеспечивает дополнительное преимущество в виде устранения прямых вызовов API Windows.
Далее я решил искать способы сделать код более понятным и читабельным, что у меня получилось, но с небольшой погрешностью в виде нескольких десятков запущенных Локи на моей виртуальной машине.
К слову, мьютекса у этого вымогателя нет — он может быть запущен на одной и той же машине бесконечное количество раз даже после снятия блокировки. Смешно то, что в его коде имеются строки, которые отвечают за создание мьютекса.
Мьютекс (Mutex) — это синхронизационный механизм, используемый в операционных системах для обеспечения взаимного исключения доступа к ресурсам между потоками или процессами. Мьютекс позволяет предотвратить одновременный доступ нескольких потоков или процессов к общему ресурсу и гарантирует его последовательное использование.
Итак, с этим плюс-минус разобрались, и теперь код отдаленно напоминает что-то понятное, за неимением выбора будем разбираться так.
Общий алгоритм действия Loki Locker:
Закрепление в системе;
Подготовительные мероприятия перед началом шифрования;
Установка связи с командным сервером;
Непосредственно шифрование.
Закрепление в системе
Наверное, как и большинство вредоносов, сразу после своего запуска, Локи пытается закрепиться в системе на случай перезагрузок или непредвиденных сбоев.
Для начала шифровальщик копирует себя в папки «%ProgramData%\winlogon.exe и Автозагрузка и установит на свои копии атрибуты «системный» и «скрытый».
Далее будет создана запись в диспетчере задач, чтобы вредонос выполнялся при каждом входе в систему. И добавлен один ключ реестра, который выполняет те же функции:
Software\Microsoft\CurrentVersion\Run\Michael\Gillespie
Майкл Гиллеспи — известный исследователь шифровальщиков. Достаточно интересная отсылка и очень специфический юмор, который уже использовался ранее в некоторых программах-вымогателях.
Подготовительные мероприятия перед началом шифрования
Стоит отметить, что злоумышленники изрядно постарались, ведь их детище выполняет просто огромное количество манипуляций перед тем, как лишить пользователя его файлов. И все для того, чтобы усложнить процесс расшифровки или вовсе сделать его невозможным.
Начинается все, как и у большинства шифровальщиков, с чтения конфигурационного файла, если он был создан злоумышленником. Когда его нет, вирус выполнит все существующие алгоритмы.
Список алгоритмов:
Уничтожение заданных процессов, которые могут компрометировать вредонос: Process Hacker, TCPView, IDA, DNSpy и многие другие.
Собирает базовую информацию об устройстве: имя пользователя, уникальный идентификатор, размер жесткого диска, количество оперативной памяти и информацию о процессоре.
Отключает функцию Windows, отвечающую за восстановление системы.
Удаляет точки восстановления.
Очищает Корзину. (Неизвестно зачем).
Отключает защитник Windows.
Изменяет дефолтное приветствие Windows, теперь вместо «Добро пожаловать», вы будете видеть сообщение о том, что ваши файлы были зашифрованы.
Изменяет информацию об оборудовании, скорее всего для того, чтобы усложнить процесс расшифровки.
После этих манипуляций вредонос пытается установить связь с командным сервером, чтобы передать ранее собранную информацию.
Установка связи с командным сервером
URL-адрес командного сервера жестко задан в самом коде вредоноса и никак не зашифрован. Прежде чем передавать какую-то информацию, вредонос отправит авторизационные данные, состоящие из уникального идентификатора устройства и пароля, который задан в коде. Это происходит с помощью POST-запроса. Следующим делом вымогатель создаст некий код, который генерируется из системных характеристик устройства жертвы:
Размер диска;
Имя пользователя;
Название процессора;
Количество оперативной памяти;
Имя операционной системы.
Затем с помощью аналогичного POST-запроса шифр будет отправлен на командный сервер.
Непосредственно шифрование
Сперва вредонос генерирует пару ключей RSA-2048. В прошлых анализах программ вымогателей мы уже разбирали этот алгоритм, поэтому опишу его лишь вкратце. И, к сожалению, фрагмент кода, отвечающий за этот процесс является полностью нечитаемым.
RSA 2048 — это криптографический алгоритм, использующий открытый ключ для шифрования и подписи данных. Число 2048 в названии обозначает размер модуля, который используется в алгоритме.
В случае RSA 2048 длина модуля составляет 2048 бит или 256 байт. RSA основан на математической задаче факторизации больших чисел. Безопасность RSA основана на том, что факторизация очень больших простых чисел является вычислительно сложной задачей.
Использование RSA 2048 обеспечивает высокий уровень безопасности для шифрования данных и создания цифровых подписей. Он широко применяется в различных областях, включая защиту информации, электронную коммерцию, аутентификацию и другие сферы, где требуется обеспечить конфиденциальность и целостность данных.
Обычно генерация пары ключей происходит с использованием мастер-ключа, который указан в коде злоумышленником. Примечательно, что вредонос сохраняет их в реестре самого Windows, создавая следующие ветви:
HKCU\Software\Loki\Public — для публичного ключа
HKCU\Software\Loki\Private — для приватного ключа
После этого вредонос проверит наличие доступных сетевых ресурсов, в случае их обнаружения процесс шифрования файлов произойдет и там. Затем будет произведен поиск файлов, которые вирусу необходимо зашифровать.
Затем вредонос выполнит следующие действия:
Изменит метки всех зашифрованных томов на «Locked by Loki»;
Скопирует заметку о выкупе в каждую папку, где были зашифрованы файлы;
Изменит обои рабочего стола, выше на скрине уже были показаны;
Создаст поток, который мгновенно уничтожает процессы cmd.exe, taskmgr.exe и regedit.exe, если они запущены;
После окончания шифрования перезагрузит систему.
Примечательно то, что он не использует обычный поиск всех доступных файлов, а ориентируется исключительно на жестко заданные директории, а также все существующие локальные диски, исключая тот, на котором установлена система:
Избранное
Недавний
Рабочий стол
Пользователи
Мои картинки
Мои видео
Моя музыка
Интересно, что для каждого отдельного ресурса, будь то диск или сетевое устройство, будет создан отдельный поток выполнения.
Под шифрование попадают следующие форматы файлов:
.pdf, .word, .xls, .jpg, .png, .jpeg, .zip, .rar, .7z
И только после этого будет запущен непосредственно процесс шифрования с помощью AES-256 в режиме GCM.
AES-256 в режиме GCM (Galois/Counter Mode) представляет собой комбинацию алгоритма шифрования AES с ключом длиной 256 бит и режима аутентифицированного шифрования GCM.
GCM является одним из режимов работы, который обеспечивает как конфиденциальность, так и аутентичность данных. Он обеспечивает двухфакторную аутентификацию, которая позволяет проверить целостность и подлинность передаваемых данных.
Так как фрагмент кода, отвечающий за этот процесс практически нечитабелен, будет представлен лишь общий алгоритм:
Процесс шифрования AES-256 в режиме GCM включает следующие шаги:
Генерация случайного и непредсказуемого инициализационного вектора (IV).
Генерация ключа шифрования/расшифрования длиной 256 бит.
Инициализация контекста шифрования с использованием ключа и IV в режиме GCM.
Шифрование данных с использованием AES-256 в режиме CTR (Counter mode).
Генерация аутентичности (тега) на основе шифрованных данных с использованием алгоритма галаевой аутентификации.
Вывод шифрованных данных и тега.
После этого будет запущен простой таймер, по истечении которого будет задействован класс Wiper. Он уничтожит все данные и перезапишет МБР.
Иран не в списке?
Ранее уже упоминалось, что вирус не запускается на системах, где установлен персидский язык. Точнее будет сказать, что он запускается и производит все вышеописанные алгоритмы, но в случае обнаружения этого языка все файлы будут автоматически расшифрованы. Вот так выглядит строка, которая отвечает за это странное действие:
Выводы и способы расшифровать свои файлы
Loki Locker — шифровальщик, который атакует в основном малый и средний бизнес. На данный момент не представляет особой угрозы, так как может быть обнаружен большинством антивирусных программ. Также существует достаточно много эффективных декрипторов, но о них чуточку позже.
Так как Локи использует настроенный KoiVM для усложнения процесса реверс-инжиниринга, можно не беспокоиться о появлении модификаций этого вредоноса. Ведь девиртуализировать код полностью и превратить его во что-то работоспособное — очень трудоемкий процесс. В этом плане овчинка выделки не стоит, и вряд ли какой-то безумец будет это делать.
Что же делать, если вы всё-таки стали жертвой вымогателя Локи?
Алгоритм достаточно прост, и я уже описывал его в других статьях о шифровальщиках:
Воспользоваться хорошим антивирусом, чтобы полностью искоренить вредоноса из системы. Вручную делать это не советую.
Далее можно приступать к расшифровке своих файлов. Для этого переходим на портал NO MORE RANSOM. Воспользовавшись поиском, скачиваем декриптор, после чего достаточно просто открыть его на зараженной системе. Спустя несколько минут все ваши файлы вернут себе свой первозданный вид.
Более подробно можете почитать вот здесь.
А на этом у меня все. Бывайте.
Автор статьи @DeathDay
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS
Комментарии (12)
vtal007
19.07.2023 09:03Я проглядел или в списке популярных антивирусов нет Windows Defender. Многие на него полагаются
ruraic
19.07.2023 09:03Вот интересно — вирус удаляет точки восстановления, сможет ли он удалить виндовые бэкапы, сохраненные на скрытый HDD?
NikaLapka
19.07.2023 09:03+14Хочется пожелать, чтобы в подобных новостях, всегда в начале присутствовал и был выделен раздел: "как вирус попадает на компьютер", т.к. сдаётся мне, что как в данном случае уже после пары слов "брутфорс+фишинговые письма", некоторые просто не читая далее, закроют статью.
diakin
19.07.2023 09:03Отключает защитник Windows.
Как он это делает? Это очень актуально, потому что просто так защитника и обновление Windows в 10-ке не отключишь. А защитник грузит систему не по-детски!
Divisi0n
19.07.2023 09:03Не знаю, как делает он, но легко и в любой версии захватить через takeown и отобрать у СИСТЕМЫ права на C:\ProgramData\Microsoft\Windows Defender, а второе гарантинованно и навсегда sc delete wuauserv (не запоминайте, дядя плохому учит).
AntoineLarine
Получается, вирус оставляет ключи расшифровния в системе, если декриптор помогает? Но зачем?
Yuriy_krd
Если вирус предполагает реальную расшифровку файлов после выполнения каких-то условий пользователем, то в системе всегда будут ключи для расшифровки. Иначе как вы расшифруете файлы после получения кода?
Firz
Было бы логично что после шифрования файлов ключи бы уходили на сервер, а после выполнения каких-то условий пользователем уже отправлялись обратно.
vilgeforce
Логично было бы получать ключи с сервера, чтобы избежать неудачной отправки, но в целом примерно то же
vilgeforce
Схема стара как мир: шифруем ключи нашим публичным RSA-ключем и оставляем их в таком виде где хотим