Ручная распаковка. Вскрываем кастомный пакер на примере вымогателя GlobeImposter 2.0

При реверсе вирусов зачастую обнаруживается, что малварь накрыта какой-нибудь «навесной» защитой вроде пакера или протектора. Причем часто используется не общедоступный вариант, а кастомный упаковщик, что серьезно усложняет дело. Я покажу, как быть в такой ситуации, на примере распаковки рансомвари GlobeImposter 2.0, пронесшейся в конце прошлого года.

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

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

Первый взгляд на GlobeImposter

В конце 2017 года антивирусные сети зафиксировали распространение ботнетом Necurs новой версии GlobeImposter — шифровальщика, требующего выкуп за зашифрованные им файлы. Образец этого вредоносного ПО несколько отличается от остальных, и он сам немного поможет нам его победить. Как именно, расскажу дальше, а сейчас просто загрузим семпл в дизассемблер IDA.

Нераспакованный образец GlobeImposter

WARNING

Все описанные в статье действия выполнялись внутри виртуальной машины, которая была изолирована от Сети. Если повторять их на основном компьютере, вирус-вымогатель GlobeImposter может заразить его и зашифровать твои данные.

Мы видим, что кода совсем мало, — IDA не разобрала львиную долю файла. Это похоже на какую-то упаковку, поэтому смотрим, что нам покажет Detect It Easy — популярный детектор пакеров и протекторов.

Анализ DIE
Энтропия

DIE не показывает нам ничего, параметры энтропии и секции тоже как будто в норме. Теперь загрузим наш семпл в программу pestudio, она дает много информации о структуре файла и проверяет образец на VirusTotal.


Нераспакованный образец GlobeImposter в pestudio

Разумеется, VirusTotal дает массу срабатываний, так как перед нами известный образец малвари. Но вирусные индикаторы не приносят нам практически никакой интересной информации, разве что сообщают о некоторых подозрительных WinAPI. В любом случае мы понимаем, что наш семпл упакован и нам его придется распаковывать. Для дальнейшей работы с образцом нужно включать виртуальную машину и загружать вирус в отладчик. Мы будем пользоваться отладчиком x64dbg, точнее его тридцатидвухбитной версией.

Нераспакованный образец GlobeImposter в x32dbg

Приступаем к распаковке

Итак, семпл загружен в отладчик, и перед нами некоторое количество вызовов и переходов. Переключаемся в представление кода в виде графа, нажав горячую клавишу G. Визуальное представление кода изменилось, и стало немного проще. Как это всегда бывает при распаковке, нам нужно найти OEP (Original Entry Point — оригинальная точка входа), чтобы, встав на нее, снять дамп с процесса. Если опуститься на пару экранов вниз, можно увидеть код, напоминающий работу с базовым адресом загрузки модуля. Конструкция стандартная и простая, передача параметров через стек и вызов функции.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Комментарии (6)

  • Добрый день. Так же зашифрованы все файлы. В Каспере сказали что это GlobeImposter 2 и лекарства пока нет.
    Кто может помочь за вознаграждение

  • У меня та же проблема. Шифровальщик запаковал важные файлы. Можете помочь с дешифровкой. Готов предоставить зашифрованный фаил, фаил оригинал и денег за помощь.

  • Nik очень нужна твоя помощь.. есть шифровщик, есть файлы зашифрованные и оригиналы.. Можешь помочь сделать расшифровщик?

  • рассмотрена распаковка без дешифрации? Разве сабж не использует aes-2048 бит закрытый ключ?

  • Примитивный пакер. Нет ни анти дебага. А быдлометод обфускации строк {'V', 'i', 'r', 't', 'u', 'a', 'l', 'A', 'l', 'l', 'o', 'c'} вообще повеселил

    • Тоже не узнал ничего нового, прочитав статью. Одни примитивные антиотладочные методы.