• XSS.stack #1 – первый литературный журнал от юзеров форума

Volatility Framework

grunt

CD-диск
Пользователь
Регистрация
04.12.2014
Сообщения
10
Реакции
0
Вводная часть

Страшно? Неуютно? Но так и должно быть. Будущее создается тобою, но не для тебя. бр. Стругацкие

Механизм реверсинга исполняемых файлов несет за собой огромный багаж знаний и далекую историю начавшую свой путь с разбора прошивок микросхем, заучиванием листингов с Virus Bulletin. Беспощадный прогресс закинул в дальний угол старые инструменты и методики принеся с собой гораздо совершенные методы анализа. Романтика анализа лога дизассемблера и выявления перекрестных ссылок сейчас вызывает лишь улыбку при работе с механизмами чей потенциал можно сравнить с автономными системами управления.

О чем эта заметка?

Прогресс не стоит на месте и жестко смывает традиционные нам методы и инструменты, поэтому всегда надо поглядывать на новые творения. В этой заметке я хочу познакомить вас с новым комплексом для анализа вредоносных программ Volatility Framework. При нахождении ошибок или неточностей, то пожалуйста отпишитесь в комментариях, так же буду рад пожеланиям и критике.

Начало

Из практики криптования и создания подобных продуктов хорошо усвоен урок: идеальная защита стоит дорого и жизнеспособность подобных файлов мала по сравнению с обычными крипторами. Навороченные защиты содержат в себе антиэмуляцию, несколько слойное шифрование, генерацию ложных апи вызовов, однако ахилесовой пятой большинства является передача управления распакованному модулю (1). Если кто помнит, на васме несколько лет назад была серия статей "Об упаковщиках последний раз". С тех пор ситуация сильно не поменялась. Управление передается модулю через банальный вызов или прыжок. Давайте расмотрим конкретнее на примере. Грузим образчик в отладчик(2), ставим брейкпойнт на VirtualAlloc, F9. Отладчик успешно отработал свою работу, чтобы вернутся к адресу вызова можем смотреть стек или комбинация клавиш: Ctrl+F9, F8.

N33n3qu.png


Дальше следует анализ копирование образа в выделенную память и поиск в образе сигнатур PE хидера поможет сохранить дамп.

Так мы делали и делаем до сих пор. Однако начали появляться полноценные комплексы для разбора малвари. Ярчайшим представителем является Volatility Framework.

Что есть этот фреймворк: Volatility представляет собой полностью открытый пакет утилит и инструментов для анализа памяти, написанных на Python и распространяющихся под лицензией GNU General Public License 2. Главная особенность Volatility - хорошо развитая система плагинов расширяющие возможности фреймворка от сняти обычного дампа и поиска малвари в памяти до работы с DNS кешем и распаковки крипторов.


Преимущества:
-Расширяемость за счет создание в Python'e
-Open Source GPLv2.
-Работает везде где есть Python: WIndows, Linux, Mac
-Расширяемый скриптовый язык для создания плагинов
-Серьезная и хорошо развитая система поддержки.
-Ориентирован на АВ индустрию

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

Установка.

Ссылка для скачивания: github.com/volatilityfoundation

Есть разные виды установщиков, но мы будем ориентироваться на Windows. и так, установщик содержит в себе: пакет Python 2.7, файлы необходимые для работы фреймворка. Далее мы будем использовать версию 2.4 (последнюю на данный момент). Вся работа с программой происходит через консоль и желательно дать привилегии администратора для cmd.exe.


Запуск и настройка:


Как уже писалось выше фреймворк не умеет работать напрямую с памятью и ей обязательно нужен дамп. Мы будем использовать снимки (snapshot) VMWare

v8lr0fR.png


В папке виртуальный машины будет сброшен дамп с расширением .vmem, его мы и будем использовать для дальнейших экспериментов. Первый запуск утилиты должен быть с параметрами:
volt.exe -f Windows_7-Snapshot1.vmem imageinfo

где -f имя файла, Windows_7-Snapshot1.vmem имя дампа, imageinfo - отобразит служебную информацию, в том числе имя профиля, которое понадобится нам дальше.

Продолжение следует.

(1). Передача управления - чтобы понять, нужно представить работу простешего криптора. Сжатие модуля, шифровка, внедрение в тело носителя. При запуске pe лоадер обрабатывает файл и запускает его в памяти. И вот здесь есть подвох: запуск происходит через вызов точки входа криптуемого файла. Обычно вызов происходит комбинацией команд: call/jmp eax, push xxx/ret, где регистр содержит точку входа

Обязательно к просмотру

Analysis of Zeus Bot Malware with Volatility Framework

Analyzing Stuxnet with Volatility

The Art of Memory Forensics: Detecting Malware and Threats in Windows, Linux, and Mac Memory
 
Ну получилось так, что вводная часть нормальная, ожидал увидеть интересную тех часть, а увидел пару строчек с аргументами запуска фреймворка..
Чтож, будем ждать продолжения статьи.

однако ахилесовой пятой большинства является передача управления распакованному модулю
Что касается передачи управления, то да, это одна из слабейших сторон почти любого криптора сегодня.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх