изменчивость
Это волатильность команд, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
изменчивость - расширенная структура криминалистики памяти
СИНТАКСИС
изменчивость [вариант]
изменчивость -f [изображение] --профиль= [профиль] [плагин]
ОПИСАНИЕ
Volatility Framework - это полностью открытый набор инструментов для извлечения
цифровые артефакты из образцов энергозависимой памяти (RAM). Это полезно при криминалистическом анализе.
Методы извлечения выполняются полностью независимо от системы.
исследованы, но обеспечивают беспрецедентную видимость состояния выполнения системы.
Volatility поддерживает несколько версий MS Windows, Linux и MAC OSX:
МС Windows:
· 32-битная Windows XP Service Pack 2 и 3
· 32-битная Windows 2003 Server Service Pack 0, 1, 2
· 32-битная Windows Vista с пакетом обновления 0, 1, 2
· 32-битная Windows 2008 Server Service Pack 1, 2 (нет SP0)
· 32-битная Windows 7 Service Pack 0, 1
· 32-битная Windows 8, 8.1 и 8.1 с обновлением 1
· 32-битная Windows 10 (начальная поддержка)
· 64-битная Windows XP Service Pack 1 и 2 (нет SP0)
· 64-битная Windows 2003 Server Service Pack 1 и 2 (нет SP0)
· 64-битная Windows Vista с пакетом обновления 0, 1, 2
· 64-битная Windows 2008 Server Service Pack 1 и 2 (нет SP0)
· 64-битная Windows 2008 R2 Server Service Pack 0 и 1
· 64-битная Windows 7 с пакетами обновления 0 и 1
· 64-битная Windows 8, 8.1 и 8.1 с обновлением 1
· 64-битные Windows Server 2012 и 2012 R2
· 64-битная Windows 10 (начальная поддержка)
Linux:
· 32-битные ядра Linux с 2.6.11 по 4.2.3
· 64-битные ядра Linux с 2.6.11 по 4.2.3
· OpenSuSE, Ubuntu, Debian, CentOS, Fedora, Mandriva и т. Д.
Mac OS X:
· 32-битный 10.5.x Leopard (единственный 64-битный 10.5 - это сервер, который не поддерживается)
· 32-битная версия 10.6.x Snow Leopard
· 64-битная версия 10.6.x Snow Leopard
· 32-битная версия 10.7.x Lion
· 64-битная версия 10.7.x Lion
· 64-битная версия 10.8.x Mountain Lion (32-битной версии нет)
· 64-битная версия 10.9.x Mavericks (32-битной версии нет)
· 64-битная 10.10.x Yosemite (32-битной версии нет)
· 64-битная 10.11.x El Capitan (32-битной версии нет)
Поддерживаемые форматы памяти:
· Сырой линейный образец (дд)
· Файл гибернации
· Файл аварийного дампа
· Дамп ядра VirtualBox ELF64
· Сохраненные файлы состояния и снимков VMware
· Формат EWF (E01)
· Формат LiME (Linux Memory Extractor)
· Формат файла Mach-o
· Дампы виртуальных машин QEMU
· FireWire
· HPAK (ФДПро)
Поддерживаемые адресные пространства (типы RAM):
· AMD64PagedMemory - стандартное 64-битное адресное пространство AMD
· ArmAddressSpace - адресное пространство для процессоров ARM
· FileAddressSpace - это прямой файл AS
· HPAKAddressSpace - эта AS поддерживает формат HPAK.
· IA32PagedMemoryPae - этот класс реализует адресное пространство подкачки PAE IA-32.
Это ответственно
· IA32PagedMemory - стандартное адресное пространство подкачки IA-32
· LimeAddressSpace - адресное пространство для Lime
· MachOAddressSpace - адресное пространство для файлов mach-o для поддержки памяти atc-ny
читатель
· OSXPmemELF - эта AS поддерживает формат резервного копирования VirtualBox ELF64.
· QemuCoreDumpElf - эта AS поддерживает формат дампа ядра Qemu ELF32 и ELF64.
· VirtualBoxCoreDumpElf64 - эта AS поддерживает формат ядра VirtualBox ELF64.
· VMWareAddressSpace - эта AS поддерживает моментальные снимки VMware (VMSS) и сохраненное состояние.
(VMSS) файлы
· VMWareMetaAddressSpace - эта AS поддерживает формат VMEM с VMSN / VMSS.
метаданных
· WindowsCrashDumpSpace32 - эта AS поддерживает формат Windows Crash Dump.
· WindowsCrashDumpSpace64BitMap - эта AS поддерживает аварийный дамп Windows BitMap.
формат
· WindowsCrashDumpSpace64 - эта AS поддерживает формат Windows Crash Dump.
· WindowsHiberFileSpace32 - это адресное пространство гибернации для Windows.
файлы гибернации
Образцы изображений памяти для тестов есть на сайте
https://github.com/volatilityfoundation/изменчивость/ wiki / Образцы памяти.
ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ
-час, --Помогите
Перечислите все доступные параметры и их значения по умолчанию. Значения по умолчанию могут быть установлены в
файл конфигурации (/ etc / volatilityrc).
--conf-файл = / корень / .volatilityrc
Пользовательский файл конфигурации.
-д, --отлаживать
Отладка волатильности.
--plugins = ПЛАГИНЫ
дополнительный плагин каталоги для использования (через двоеточие).
--Информация Распечатать информацию обо всех зарегистрированных объектах.
--cache-directory = / корень / .cache / volatility
Каталог, в котором хранятся файлы кеша.
--кэш
Используйте кеширование.
--tz = TZ
Установите часовой пояс для отображения временных меток с помощью pytz (если установлен) или tzset
-f ИМЯ ФАЙЛА, --filename = ИМЯ ФАЙЛА
Имя файла для использования при открытии изображение.
--profile = WinXPSP2x86
Имя профиля для загрузки (используйте --Информация чтобы увидеть список поддерживаемых профилей).
-l МЕСТО НАХОЖДЕНИЯ, --location = МЕСТО
Расположение URN, из которого загружается адресное пространство.
-ш, --записывать
Включите поддержку записи.
--dtb = DTB
Адрес DTB.
--shift = СДВИГ
Адрес смены Mac KASLR.
--output = текст
Вывод в этом формате.
--output-file = OUTPUT_FILE
Запишите вывод в этот файл.
-в, --подробный
Подробная информация.
-g КДБГ, --kdbg = KDBG
Укажите конкретный виртуальный адрес KDBG. Для 64-битной Windows 8 и выше это
адрес KdCopyDataBlock.
--сила
Принудительное использование подозрительного профиля.
-k КПЦР, --kpcr = KPCR
Укажите конкретный адрес KPCR.
--cookie = ПЕЧЕНЬЕ
Укажите адрес nt! ObHeaderCookie (действует только для Windows 10).
PLUGINS И ПРОФИЛИ
Поддерживаемый плагин команды и профили можно просмотреть, используя команду '$
изменчивость --Информация'. Обратите внимание, что разрешенные плагины Linux и MAC OSX будут иметь 'linux_'
и префиксы "mac_". Плагины без этих префиксов были разработаны для MS Windows.
Профили - это карты, используемые Volatility для понимания операционных систем. Разрешенная MS
Профили Windows предоставляются Volatility.
Вы должны создать свои собственные профили для Linux и MAC OSX. Для этого в системах Debian прочтите
файл README.Debian, предоставленный изменчивость-инструментальный пакет.
В MS Windows для определения типа ОС можно использовать:
$ volatility -f imageinfo
or
$ volatility -f kdbgscan
ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ
В системе GNU / Linux или OS X эти переменные могут быть установлены:
· VOLATILITY_PROFILE - определяет профиль, который будет использоваться по умолчанию, делая
ненужный--профиль' вариант.
· VOLATILITY_LOCATION - указывает путь к изображение. Итак, команда Volatility
не потребуется имя файла через '-f' вариант.
· VOLATILITY_KDBG - указывает адрес KDBG. См. ДОПОЛНИТЕЛЬНЫЕ ПРОЦЕДУРЫ, чтобы узнать больше
Другое плагин флаги могут использоваться таким образом, например KPCR, DTB или PLUGINS. Когда
при экспорте переменных просто префикс VOLATILITY_ перед именем флага (например,
VOLATILITY_KPCR). В противном случае имя флага останется прежним при добавлении его в
Файл конфигурации.
Если у вас есть путь с пробелом или более в имени, пробелы следует заменить на% 20
вместо этого (например, LOCATION = file: ///tmp/my%20image.img).
Пример:
$ экспорт VOLATILITY_PROFILE = Win7SP0x86
$ export VOLATILITY_LOCATION = file: ///tmp/myimage.img
$ экспорт VOLATILITY_KDBG = 0x82944c28
КОНФИГУРАЦИЯ FILES
Файлы конфигурации обычно представляют собой volatilityrc в текущем каталоге или
'~ / .volatilityrc'в домашнем каталоге пользователя или по указанному пользователем пути, используя --conf-
файл вариант. Пример содержимого файла показан ниже:
[ПО УМОЛЧАНИЮ]
ПРОФИЛЬ = Win7SP0x86
МЕСТОПОЛОЖЕНИЕ = файл: ///tmp/myimage.img
KDBG = 0x82944c28
Другое плагин флаги могут использоваться таким образом, например KPCR, DTB или PLUGINS. Когда
при экспорте переменных просто префикс VOLATILITY_ перед именем флага (например,
VOLATILITY_KPCR). В противном случае имя флага останется прежним при добавлении его в
Файл конфигурации.
Если у вас есть путь с пробелом или более в имени, пробелы следует заменить на% 20
вместо этого (например, LOCATION = file: ///tmp/my%20image.img).
ЭКСТРА ПРОЦЕДУРЫ
Установка часового пояса
Отметки времени, извлеченные из памяти, могут быть либо в локальном системном времени, либо во всемирном времени.
Координаты (UTC). Если они находятся в формате UTC, Volatility можно указать, чтобы отображать их вовремя.
зона выбора аналитика. Чтобы выбрать часовой пояс, используйте один из стандартных часовых поясов
имена (например, Америка / Сан-Паулу, Европа / Лондон, США / Восточный или большинство часовых поясов Олсона) с
флаг --tz = TIMEZONE.
Volatility пытается использовать pytz, если он установлен, в противном случае - tzset.
Обратите внимание, что указание часового пояса не повлияет на отображение местного времени в системе. Если
вы определяете время, которое, как вы знаете, основано на UTC, укажите его как проблему в системе отслеживания проблем.
По умолчанию метки времени _EPROCESS CreateTime и ExitTime указаны в формате UTC.
Установка DTB
DTB (База таблиц каталогов) - это то, что Volatility использует для преобразования виртуальных адресов в физические.
адреса. По умолчанию используется DTB ядра (из процесса Idle / System). Если вы хотите использовать
DTB другого процесса при доступе к данным, укажите адрес --dtb = ADDRESS.
Установка адреса KDBG (это только для Windows вариант)
Сканирование волатильности структуры '_KDDEBUGGER_DATA64' с использованием жестко запрограммированных подписей «KDBG» и
серия проверок на вменяемость. Эти подписи не критичны для работы операционной системы.
должным образом, таким образом вредоносные программы могут перезаписать их, пытаясь отбросить инструменты, которые полагаются на
подпись. Кроме того, в некоторых случаях может быть более одного _KDDEBUGGER_DATA64 (для
пример, если вы применяете крупное обновление ОС и не перезагружаетесь), что может вызвать путаницу и привести к
неправильные списки процессов и модулей, среди других проблем. Если вы знаете адрес
добавьте '_KDDEBUGGER_DATA64', вы можете указать его с помощью --kdbg = ADDRESS, и это переопределит автоматический
сканирование. Для получения дополнительной информации см. Плагин kdbgscan.
Установка адреса KPCR (это только для Windows вариант)
Для каждого ЦП в системе существует один KPCR (область управления процессором ядра). Некоторая волатильность
плагины отображают информацию о процессоре. Таким образом, если вы хотите отображать данные для определенного процессора, для
например CPU 3 вместо CPU 1, вы можете передать адрес KPCR этого CPU с помощью --kpcr = ADDRESS.
Чтобы найти KPCR для всех ЦП, см. Плагин kpcrscan. Также обратите внимание, что начиная с Volatility 2.2,
многие плагины, такие как idt и gdt, автоматически перебирают список KPCR.
Включение поддержки записи
Поддержка записи в Volatility следует использовать с осторожностью. Следовательно, чтобы действительно включить его, вы должны
не только введите --write в командной строке, но вы должны ввести «пароль» в ответ на вопрос, который
вам будет предложено ввести. В большинстве случаев вы не захотите использовать поддержку записи, поскольку это может привести к
повреждение или изменение данных в дампе вашей памяти. Однако существуют особые случаи, когда это
особенность действительно интересная. Например, вы можете очистить действующую систему от определенных вредоносных программ,
запись в ОЗУ через FireWire, или вы можете взломать заблокированную рабочую станцию, исправив байты в
Winlogon DLL.
Указание дополнительных плагин каталоги
Архитектура плагинов Volatility может загружать файлы плагинов одновременно из нескольких каталогов. в
Исходный код Volatility, большинство плагинов находится в volatility / plugins. Однако есть еще один
каталог (volatility / contrib), зарезервированный для участия сторонних разработчиков, или
слабо поддерживаемые плагины, которые просто не включены по умолчанию. Чтобы получить доступ к этим плагинам, вы просто
введите --plugins = contrib / plugins в командной строке. Это также позволяет вам создать отдельный каталог
ваших собственных плагинов, которыми вы можете управлять без необходимости добавлять / удалять / изменять файлы в ядре
Справочники волатильности.
Ноты:
* В системах Debian каталог contrib / plugins находится в / usr / share / volatility / contrib / plugins.
* Подкаталоги также будут просматриваться, пока существует файл __init__.py (который может быть пустым)
внутри них.
* Параметр --plugins также может быть zip-файлом, содержащим плагины, такие как
как --plugins = myplugins.zip. Из-за способа загрузки плагинов каталог внешних плагинов
или zip-файл должен быть указан перед любыми аргументами, специфичными для плагина (включая имя
плагин). Пример:
$ volatility --plugins = contrib / plugins -f Пример XPSP3x86.vmem
Выбор формата вывода
По умолчанию плагины используют средства визуализации текста для стандартного вывода. Если вы хотите перенаправить в файл, вы
можно, конечно, использовать перенаправление консоли (т.е.> out.txt) или вы можете использовать --output-file = out.txt.
Причина, по которой вы также можете выбрать --output = FORMAT, заключается в том, чтобы разрешить плагинам также отображать вывод как HTML,
JSON, SQL или что угодно по вашему выбору. Однако нет плагинов с этими альтернативными форматами вывода.
предварительно настроен для использования, поэтому вам нужно добавить функцию с именем render_html, render_json, render_sql,
соответственно каждому плагину перед использованием --output = HTML.
Параметры, специфичные для плагина
Многие плагины принимают собственные аргументы, которые не зависят от глобальных параметров. Чтобы увидеть
список доступных параметров, введите имя плагина и -h / - help в командной строке.
$ волатильность dlllist -h
Отладочный режим работы
Если что-то не происходит в Volatility ожидаемым образом, попробуйте запустить команду с -d / - debug.
Это позволит печатать сообщения отладки до стандартной ошибки. Чтобы получить больше уровней отладки, например, при использовании
pdb debugger), добавьте к команде -d -d -d.
Использование Volatility как библиотеки
Хотя можно использовать Volatility в качестве библиотеки (есть планы улучшить ее поддержку в
будущее). В настоящее время для импорта Volatility из скрипта Python можно использовать следующий пример кода:
$ питон
>>> импортировать volatility.conf как conf
>>> импортировать volatility.registry как реестр
>>> registry.PluginImporter ()
>>> config = conf.ConfObject ()
>>> импортировать volatility.commands как команды
>>> импортировать volatility.addrspace как addrspace
>>> registry.register_global_options (конфигурация, команды, команда)
>>> registry.register_global_options (config, addrspace.BaseAddressSpace)
>>> config.parse_options ()
>>> config.PROFILE = "WinXPSP2x86"
>>> config.LOCATION = "file: ///media/memory/private/image.dmp"
>>> импортировать volatility.plugins.taskmods как taskmods
>>> p = taskmods.PSList (конфигурация)
>>> для процесса в p.calculate ():
... процесс печати
ПРИМЕРЫ
Чтобы увидеть все доступные плагины, профили, проверки сканера и адресные пространства:
$ волатильность --info
Чтобы перечислить все активные процессы, обнаруженные в MS Windows 8 SP0 изображение:
$ volatility -f win8.raw --profile = Win8SP0x86 pslist
Чтобы перечислить все активные процессы, обнаруженные в MS Windows 8 SP0 изображение, используя часовой пояс:
$ volatility -f win8.raw --profile = Win8SP0x86 pslist --tz = America / Sao_Paulo
Чтобы показать буфер ядра из Linux 3.2.63 изображение:
$ volatility -f mem.dd --profile = Linux_3_2_63_x64 linux_dmesg
ПРИМЕЧАНИЯ
Эта страница руководства была основана на некоторых тестах и нескольких официальных документах о Volatility. Для
другую информацию и учебные пособия см .:
· http://www.volatilityfoundation.org
· Https://github.com/volatilityfoundation/изменчивость/ Вики
Используйте волатильность онлайн с помощью сервисов onworks.net