Це нестабільність команд, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн емулятор Windows або онлайн емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
мінливість - розширена система криміналістики пам'яті
СИНТАКСИС
мінливість [варіант]
мінливість -f [зображення] --профіль=[профіль] [підключати]
ОПИС
Volatility Framework — це повністю відкрита колекція інструментів для вилучення
цифрові артефакти із зразків енергозалежної пам’яті (RAM). Це корисно в криміналістичному аналізі.
Методи вилучення виконуються повністю незалежно від системи
досліджено, але пропонує безпрецедентну видимість стану системи під час виконання.
Volatility підтримує кілька версій MS Windows, Linux і MAC OSX:
MS Windows:
· 32-розрядна Windows XP з пакетом оновлень 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 з пакетом оновлень 0, 1
· 32-розрядні Windows 8, 8.1 і 8.1 Оновлення 1
· 32-розрядна Windows 10 (початкова підтримка)
· 64-розрядна Windows XP з пакетом оновлень 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 з пакетом оновлень 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 тощо
MacOSX:
· 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-розрядної версії немає)
Підтримувані формати пам'яті:
· Неочищений лінійний зразок (dd)
· Файл режиму глибокого сну
· Файл аварійного дампа
· Дамп ядра VirtualBox ELF64
· Файли збереженого стану та знімків VMware
· Формат EWF (E01)
· Формат LiME (Linux Memory Extractor).
· Формат файлу Mach-o
· Дампи віртуальної машини QEMU
· Firewire
· HPAK (FDPro)
Підтримувані адресні простори (типи RAM):
· AMD64PageMemory - Стандартний 64-розрядний адресний простір AMD
· ArmAddressSpace - Адресний простір для процесорів ARM
· FileAddressSpace - це прямий файл AS
· HPAKAddressSpace – ця AS підтримує формат HPAK
· IA32PageMemoryPae – Цей клас реалізує простір адрес пейджингового сторінки IA-32 PAE.
Це відповідальне
· IA32PageMemory - Стандартний адресний простір сторінки IA-32
· LimeAddressSpace - Адресний простір для Lime
· MachOAddressSpace - Адресний простір для файлів mach-o для підтримки пам'яті atc-ny
читач
· OSXPmemELF — ця AS підтримує формат coredump VirtualBox ELF64
· QemuCoreDumpElf - ця AS підтримує формат Qemu ELF32 і ELF64 coredump
· VirtualBoxCoreDumpElf64 - ця AS підтримує формат coredump VirtualBox ELF64
· VMWareAddressSpace - ця AS підтримує моментальний знімок VMware (VMSS) і збережений стан
(VMSS).
· VMWareMetaAddressSpace - ця AS підтримує формат VMEM з VMSN/VMSS
метадані
· WindowsCrashDumpSpace32 - ця AS підтримує формат аварійного дампу Windows
· WindowsCrashDumpSpace64BitMap - ця AS підтримує аварійний дамп Windows BitMap
формат
· WindowsCrashDumpSpace64 - ця AS підтримує формат аварійного дампу Windows
· WindowsHiberFileSpace32 – це адресний простір сплячого режиму для Windows
файли режиму глибокого сну
Є зразки зображень пам’яті для тестів на
https://github.com/volatilityfoundation/мінливість/wiki/Зразки пам'яті.
ВАРІАНТИ
-h, --допомога
Перелік усіх доступних опцій та їх значень за замовчуванням. Можуть бути встановлені значення за замовчуванням
файл конфігурації (/etc/volatilityrc).
--conf-file=/root/.volatilityrc
Конфігураційний файл на основі користувача.
-d, --відлагоджувати
Нестабільність налагодження.
--plugins=ПЛАГІНИ
Додатковий підключати каталоги для використання (розділені двокрапкою).
--інформація Роздрукувати інформацію про всі зареєстровані об'єкти.
--cache-directory=/root/.cache/volatility
Каталог, де зберігаються файли кешу.
--кеш
Використовуйте кешування.
--tz=TZ
Встановіть часовий пояс для відображення міток часу за допомогою pytz (якщо встановлено) або tzset
-f НАЗВА ФАЙЛУ, --filename=ІМ'Я ФАЙЛУ
Ім'я файлу для використання під час відкриття файлу зображення.
--profile=WinXPSP2x86
Назва профілю для завантаження (використ --інформація щоб побачити список підтримуваних профілів).
-l РОЗТАШУВАННЯ, --location=ЛОКАЦІЯ
Розташування URN, з якого завантажується адресний простір.
-w, --пиши
Увімкнути підтримку запису.
--dtb=DTB
Адреса DTB.
--shift=SHIFT
Адреса зміни Mac KASLR.
--output=текст
Виведення в цьому форматі.
--output-file=ВИХОДНИЙ_ФАЙЛ
Запишіть вихід у цей файл.
-v, -багатослівний
Детальна інформація.
-g KDBG, --kdbg=KDBG
Вкажіть конкретну віртуальну адресу KDBG. Для 64-розрядної ОС Windows 8 і вище це
адреса KdCopyDataBlock.
--сила
Примусове використання підозрюваного профілю.
-k KPCR, --kpcr=KPCR
Вкажіть конкретну адресу KPCR.
--cookie=COOKIE
Вкажіть адресу nt!ObHeaderCookie (дійсно лише для Windows 10).
плагіни І ПРОФІЛІ
Підтримувані підключати команди та профілі можна переглянути за допомогою команди '$
мінливість --інформація'. Зверніть увагу, що дозволені плагіни для Linux і MAC OSX матимуть «linux_»
і префікси 'mac_'. Плагіни без цих префіксів були розроблені для MS Windows.
Профілі – це карти, які використовує Volatility для розуміння операційних систем. Дозволені MS
Профілі Windows надаються Volatility.
Ви повинні створити власні профілі для Linux і MAC OSX. Для цього в системах Debian прочитайте
файл README.Debian, наданий мінливість- пакет інструментів.
У MS Windows для визначення типу ОС можна використовувати:
$ волатильність -f imageinfo
or
$ волатильність -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
КОНФІГУРАЦІЯ ФАЙЛИ
Файли конфігурації зазвичай є "volatilityrc" у поточному каталозі або
'~/.volatilityrc' в домашньому каталозі користувача або за вказаним користувачем шляху, використовуючи файл --conf-
файл варіант. Нижче наведено приклад вмісту файлу:
[DEFAULT]
ПРОФІЛЬ=Win7SP0x86
LOCATION=file:///tmp/myimage.img
KDBG=0x82944c28
Інше підключати таким чином можна використовувати прапорці, наприклад KPCR, DTB або PLUGINS. Коли
експортуючи змінні, просто поставте префікс VOLATILITY_ перед назвою прапорця (наприклад
VOLATILITY_KPCR). В іншому випадку назва прапора залишається незмінною під час додавання його до
файлу конфігурації.
Якщо у вас є шлях із пробілом або більше в імені, пробіли слід замінити на %20
замість цього (наприклад, LOCATION=file:///tmp/my%20image.img).
EXTRA ПРОЦЕДУРИ
Встановлення часового поясу
Позначки часу, витягнуті з пам'яті, можуть бути в системному місцевому часі або в універсальному часі
Координати (UTC). Якщо вони знаходяться в UTC, Volatility можна вказати відображати їх у певний час
зона вибору аналітика. Щоб вибрати часовий пояс, використовуйте один із стандартних часових поясів
назви (наприклад, Америка/Сан-Паулу, Європа/Лондон, США/Східний або більшість часових поясів Олсона) з
прапор --tz=TIMEZONE.
Volatility намагається використовувати pytz, якщо він встановлений, інакше він використовує tzset.
Зауважте, що вказівка часового поясу не вплине на відображення системного місцевого часу. Якщо
ви визначаєте час, який, як вам відомо, заснований на UTC, запишіть це як проблему в системі відстеження проблем.
За замовчуванням часові позначки _EPROCESS CreateTime і ExitTime представлені в UTC.
Налаштування DTB
DTB (Directory Table Base) — це те, що використовує Volatility для перетворення віртуальних адрес у фізичні
адреси. За замовчуванням використовується DTB ядра (з процесу Idle/System). Якщо ви хочете використовувати a
DTB іншого процесу під час доступу до даних, укажіть адресу --dtb=АДРЕСА.
Встановлення адреси 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. Однак є й інше
каталог (волатильність/внесок), який зарезервовано для внесків сторонніх розробників, або
слабо підтримувані плагіни, які просто не ввімкнені за замовчуванням. Щоб отримати доступ до цих плагінів, вам просто
введіть --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 у командному рядку.
$ volatility dlllist -h
Режим налагодження
Якщо щось не відбувається в Volatility, як очікувалося, спробуйте запустити команду за допомогою -d/--debug.
Це дозволить роздрукувати повідомлення про помилку зі стандартною помилкою. Щоб отримати більше рівнів налагодження, як у використанні
pdb), додайте -d -d -d до команди.
Використання Volatility як бібліотеки
Хоча можна використовувати Volatility як бібліотеку, (планується покращити її підтримку в
майбутнє). Наразі для імпорту Volatility зі скрипту Python можна використовувати такий приклад коду:
$ python
>>> імпортуйте volatility.conf як conf
>>> імпортуйте volatility.registry як реєстр
>>> registry.PluginImporter()
>>> config = conf.ConfObject()
>>> імпортуйте volatility.commands як команди
>>> імпортуйте volatility.addrspace як addrspace
>>> registry.register_global_options(config, commands.Command)
>>> 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(config)
>>> для процесу в p.calculate():
... процес друку
ПРИКЛАДИ
Щоб переглянути всі доступні плагіни, профілі, перевірки сканера та адресні простори:
волатильність $ --інформація
Щоб перерахувати всі активні процеси, знайдені в MS Windows 8 SP0 зображення:
$ volatility -f win8.raw --profile=Win8SP0x86 pslist
Щоб перерахувати всі активні процеси, знайдені в MS Windows 8 SP0 зображення, використовуючи часовий пояс:
$ volatility -f win8.raw --profile=Win8SP0x86 pslist --tz=Америка/Сан-Паулу
Щоб показати буфер ядра з 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
