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

Подготовка рабочего окружения

Все эксперименты по анализу малвари мы будем выполнять в нашей лаборатории, это заранее подготовленная виртуальная среда с предустановленной Windows XP. Да-да, старушка ХР нам очень даже подойдет, поскольку некоторые изучаемые образцы могут вызывать ошибки при запуске на новых версиях ОС. И к тому же все программные инструменты проверены и гарантированно будут работать на ХР.

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

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

 

Анализ семпла Lab01: динамический анализ

Используемые инструменты:

  • IDA Pro;
  • PEiD;
  • RegShot;
  • Procmon;
  • INetSim;
  • Wireshark;
  • Process Explorer;
  • OllyDbg.

WARNING


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

Итак, первым делом запускаем PEview и смотрим импорт функций, который использует этот вредонос. Видим, что используется функция ExitProcess из системной библиотеки kernel32.

Просмотр функции ExitProcess системной библиотеки kernel32
Просмотр функции ExitProcess системной библиотеки kernel32

А вот и сам импорт в подробностях:

Окно PEview с подробностями импорта
Окно PEview с подробностями импорта

Так-так, мы видим ключи реестра, которые прописывает вредонос после своего запуска. Обращаем внимание на присутствие некоторой DNS-записи веб-ресурса и создаваемый файл vmx32to64.exe, маскирующийся под драйвер видеоадаптера с именем WinVMX32.

У нас есть подсказка, мы должны отследить сетевую активность ресурса http://www.practicalmalwareanalysis.com. Мы можем также отслеживать и проверять ключи реестра SOFTWARE\Classes\http\shell\open\commandV (IExplorer.exe) и Software\Microsoft\Active Setup\Installed Components\.

Первым делом мы должны разобраться с файлом для vmx32to64.exe, который вредонос создает после своего запуска и копирует в папку C:\Windows\system32. Запускаем анализатор PEiD, видим, что файл ничем не упакован.

Анализ бинарного файла с помощью PEiD
Анализ бинарного файла с помощью PEiD

Однако используются некоторые фичи для затруднения отладки exe-файла. Ниже приведен скриншот из отладчика OllyDbg.

Просмотр malware в отладчике OllyDbg
Просмотр malware в отладчике OllyDbg

По адресу 0x401259 был выполнен вызов к 0x401265. Это опкод, который вызывает обратный адрес 0x40125e выполнения в стеке. По первому адресу, 0x401265, был сделан вызов к библиотеке kernel32.LoadLibraryA. Но мы-то знаем, что функция LoadLibrary нуждается в некотором аргументе LPCSTR, передаваемом в... массив символов! Обратный адрес 0x40125e заворачивает вызов опкодом в библиотеку user32.

 

Продолжаем исследование. Смотрим реестр

Запускаем RegShot.

Результат анализа в RegShot
Результат анализа в RegShot

Из лога RegShot мы выяснили, что вредонос пытается выполнить команду C:\WINDOWS\system32\vmx32to64.exe при своем запуске.

Помним, что, помимо ключей реестра, в импорте мы нашли некую DNS-запись веб-ресурса. Хотим узнать подробности?

 

Запускаем сетевую акулу Wireshark

Анализ сетевых пакетов в Wireshark
Анализ сетевых пакетов в Wireshark

Мы видим запрос на сайт http://www.practicalmalwareanalysis.com и соединение SSL. Если приглядеться внимательно, то можно увидеть, что в пакетах TCP присутствует отправка случайных 256 байт данных через порт 80 и 443.

Передаваемые 256 байт в пакетах TCP
Передаваемые 256 байт в пакетах TCP
 

Что нам покажет Process Explorer?

Это окно с описанием мьютекса WinVMX32:

Описание мьютекса WinVMX32
Описание мьютекса WinVMX32

Строки, найденные при сканировании
Строки, найденные при сканировании

Используя Process Explorer, мы можем видеть больше строк, содержащихся в памяти и хендле мьютекса.

Строки, отображаемые в Process Explorer
Строки, отображаемые в Process Explorer

А вот и процедура записи файлов в Windows\system32\vmx32to64.exe:

Процедура записи файлов в Windows
Процедура записи файлов в Windows

WARNING


Будь осторожен при скачивании и распаковке архивов с образцами malware на твой компьютер. Все исследования выполняй только в изолированной виртуальной среде! Не выполняй действий, в которых на 100% не уверен. И делай регулярные snapshot’ы системы для быстрого отката.
 

Возвращаемся к OllyDbg

Позиционируемся на функции LoadLibrary. Мы уже выяснили, что вредонос на самом деле загружает эти библиотеки:

0012EFC4 0040123C /CALL to LoadLibraryA from Lab03-01.00401236
0012EFC8 0040122D \FileName = "advapi32"
0012EFC4 00401253 /CALL to LoadLibraryA from Lab03-01.0040124D
0012EFC8 00401247 \FileName = "ntdll"3.
0012EFC4 0040126B /CALL to LoadLibraryA from Lab03-01.00401265
0012EFC8 0040125E \FileName = "user32"
0012EFC4 00401505 /CALL to LoadLibraryA from Lab03-01.004014FF
0012EFC8 004014F7 \FileName = "advpack"

А что же с замаскированным файлом WinVMX32? Тут все просто: если vmx32to64.exe создан и находится в C:\WINDOWS\system32, то, скорее всего, процесс запущен в памяти. Проверяем, открыт ли мьютекс WinVMX32 в оперативной памяти.

Мьютекс WinVMX32
Мьютекс WinVMX32

Нашли! Машина инфицирована.

Ну и напоследок картинки из IDA Pro.

Получим вызов kernel-based
Получим вызов kernel-based

Обращаем внимание на смещение peb + 30h & 0ch offset
Обращаем внимание на смещение peb + 30h & 0ch offset

Листинг функции
Листинг функции

INFO


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

Заключение

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

В следующих статьях нас ждут крутые и более сложные вредоносы.
Всем удачи в исследованиях!

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    21 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии