Содержание статьи
Подготовка рабочего окружения
Все эксперименты по анализу малвари мы будем выполнять в нашей лаборатории, это заранее подготовленная виртуальная среда с предустановленной Windows XP. Да-да, старушка ХР нам очень даже подойдет, поскольку некоторые изучаемые образцы могут вызывать ошибки при запуске на новых версиях ОС. И к тому же все программные инструменты проверены и гарантированно будут работать на ХР.
Образцы малвари, приведенной в этой статье, можно найти здесь. Каждый изучаемый бинарный код вредоноса мы будем называть лабами (Labs). Помни, при распаковке архива с лабами антивирус будет распознавать файлы соответствующим образом, что, если вдуматься, очень логично :).
И еще один совет. Поскольку мы будем запускать малварь, выполнять код пошагово в отладчике или мониторить активность вредоноса в системе, в результате этих действий может пострадать операционная система, а именно реестр, системные файлы и прочее. Поэтому перед началом любых экспериментов рекомендуем создавать снимки системы (snapshots) для быстрого отката в случае необходимости.
Анализ семпла Lab01: динамический анализ
Используемые инструменты:
- IDA Pro;
- PEiD;
- RegShot;
- Procmon;
- INetSim;
- Wireshark;
- Process Explorer;
- OllyDbg.

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

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

Так-так, мы видим ключи реестра, которые прописывает вредонос после своего запуска. Обращаем внимание на присутствие некоторой 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, видим, что файл ничем не упакован.

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

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

Из лога RegShot мы выяснили, что вредонос пытается выполнить команду C:\WINDOWS\system32\vmx32to64.exe
при своем запуске.
Помним, что, помимо ключей реестра, в импорте мы нашли некую DNS-запись веб-ресурса. Хотим узнать подробности?
Запускаем сетевую акулу Wireshark

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

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

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


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 в оперативной памяти.

Нашли! Машина инфицирована.
Ну и напоследок картинки из IDA Pro.

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