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

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

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

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

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

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

WARNING

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

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

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

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


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

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

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

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

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

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

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

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


4 комментария

  1. haje

    31.05.2018 at 23:43

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

    • northon

      11.06.2018 at 09:00

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

  2. Асыл

    18.07.2018 at 19:23

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

  3. wolf_ktl

    06.10.2018 at 20:12

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

Оставить мнение

Check Also

Возрождение эксплоит-китов. Вспоминаем самые убойные паки эксплоитов всех времен

На страницах «Хакера» ты наверняка встречал немало упоминаний об эксплоит-паках. Однако за…