Как выполнить дамп памяти заданного процесса с помощью Volatility 3?

Вопрос или проблема

Похоже, что опции Volatility изменились. Как я могу извлечь память процесса с помощью Volatility 3?

“Старый способ”, похоже, не работает:

При желании можно использовать плагин для выгрузки содержимого памяти процесса.
vol.py -f [image] –profile=[profile] -p [PID] –dump-dir=[directory/]
Это позволит выгрузить все содержимое памяти процесса в файл в
директории, указанной с помощью опции –dump-dir=.

Я попробовал:

volatility -f mydump.vmem -p 1470 -D procdump

Volatility 3 Framework 1.2.1-beta.1
usage: volatility [-h] [-c CONFIG] [--parallelism [{processes,threads,off}]]
                  [-e EXTEND] [-p PLUGIN_DIRS] [-s SYMBOL_DIRS] [-v] [-l LOG]
                  [-o OUTPUT_DIR] [-q] [-r RENDERER] [-f FILE]
                  [--write-config] [--clear-cache]
                  [--single-location SINGLE_LOCATION]
                  [--stackers [STACKERS [STACKERS ...]]]
                  [--single-swap-locations [SINGLE_SWAP_LOCATIONS [SINGLE_SWAP_LOCATIONS ...]]]
                  plugin ...
volatility: ошибка: аргумент плагина: недопустимый выбор procdump (выберите из banners.Banners, configwriter.ConfigWriter, frameworkinfo.FrameworkInfo, isfinfo.IsfInfo, layerwriter.LayerWriter, linux.bash.Bash, linux.check_afinfo.Check_afinfo, linux.check_creds.Check_creds, linux.check_idt.Check_idt, linux.check_modules.Check_modules, linux.check_syscall.Check_syscall, linux.elfs.Elfs, linux.keyboard_notifiers.Keyboard_notifiers, linux.lsmod.Lsmod, linux.lsof.Lsof, linux.malfind.Malfind, linux.proc.Maps, linux.pslist.PsList, linux.pstree.PsTree, linux.tty_check.tty_check, mac.bash.Bash, mac.check_syscall.Check_syscall, mac.check_sysctl.Check_sysctl, mac.check_trap_table.Check_trap_table, mac.ifconfig.Ifconfig, mac.kauth_listeners.Kauth_listeners, mac.kauth_scopes.Kauth_scopes, mac.kevents.Kevents, mac.list_files.List_Files, mac.lsmod.Lsmod, mac.lsof.Lsof, mac.malfind.Malfind, mac.mount.Mount, mac.netstat.Netstat, mac.proc_maps.Maps, mac.psaux.Psaux, mac.pslist.PsList, mac.pstree.PsTree, mac.socket_filters.Socket_filters, mac.timers.Timers, mac.trustedbsd.Trustedbsd, mac.vfsevents.VFSevents, timeliner.Timeliner, windows.bigpools.BigPools, windows.cachedump.Cachedump, windows.cmdline.CmdLine, windows.dlllist.DllList, windows.driverirp.DriverIrp, windows.driverscan.DriverScan, windows.envars.Envars, windows.filescan.FileScan, windows.getservicesids.GetServiceSIDs, windows.getsids.GetSIDs, windows.handles.Handles, windows.hashdump.Hashdump, windows.info.Info, windows.lsadump.Lsadump, windows.malfind.Malfind, windows.memmap.Memmap, windows.modscan.ModScan, windows.modules.Modules, windows.mutantscan.MutantScan, windows.netscan.NetScan, windows.poolscanner.PoolScanner, windows.privileges.Privs, windows.pslist.PsList, windows.psscan.PsScan, windows.pstree.PsTree, windows.registry.certificates.Certificates, windows.registry.hivelist.HiveList, windows.registry.hivescan.HiveScan, windows.registry.printkey.PrintKey, windows.registry.userassist.UserAssist, windows.ssdt.SSDT, windows.statistics.Statistics, windows.strings.Strings, windows.symlinkscan.SymlinkScan, windows.vadinfo.VadInfo, windows.virtmap.VirtMap)

С andreafortuna -D <directory_path> и --proc-dump <directory_path> одинаковы, и в этом примере я использовал ./procdump/.

Чтобы выгрузить всю память (не только сам бинарный файл) данного процесса в Volatility 3, вам нужно использовать плагин windows.memmap.Memmap с опциями --pid и --dump, как объясняется здесь.

Например:

vol.py -f mydump.vmem -o /path/to/output/dir windows.memmap.Memmap --pid 1233 --dump

Используя последнюю версию Volatility 3 на Python (2.0.0 beta.1), вы можете попробовать это, если это дамп памяти с машины под управлением Windows:

vol.py -f mydump.vmem windows.pslist.PsList --pid 1470 --dump

Параметр –dump довольно новый.

Volatility 3 Framework 2.0.0-beta.1
usage: volatility windows.pslist.PsList [-h] [--physical]
                                        [--pid [PID [PID ...]]] [--dump]

optional arguments:
  -h, --help            показать это сообщение и выйти
  --physical            Показать физические смещения вместо виртуальных
  --pid [PID [PID ...]]
                        Идентификатор процесса для включения (все остальные процессы
                        исключены)
  --dump                Извлечь указанные процессы

Ответ или решение

Чтобы получить дамп памяти определённого процесса с помощью Volatility 3, нужно использовать плагин windows.memmap.Memmap, так как интерфейс и команды в последней версии Volatility изменились. Предыдущий способ с использованием плагина procdump больше не актуален.

Вот шаги, которые вам нужно выполнить:

  1. Убедитесь, что у вас установлен Volatility 3 и что вы используете последнюю версию, так как команда для извлечения дампа процесса может измениться в обновлениях.

  2. Определите PID процесса, для которого вы хотите получить дамп памяти. Используйте плагин windows.pslist.PsList для получения списка процессов и их PID. Например:

    vol.py -f mydump.vmem windows.pslist.PsList

    Это выведет список всех процессов, и вы сможете найти нужный.

  3. Создайте директорий для дампа (если у вас его ещё нет):

    mkdir /path/to/output/dir
  4. Используйте плагин windows.memmap.Memmap, чтобы получить дамп памяти процесса. В команде укажите флаг --pid для конкретного PID и флаг --dump для извлечения памяти. Команда будет выглядеть следующим образом:

    vol.py -f mydump.vmem -o /path/to/output/dir windows.memmap.Memmap --pid 1470 --dump

    Здесь mydump.vmem — это файл дампа памяти, а 1470 — это PID вашего процесса.

  5. Проверьте содержимое директории, которую вы указали для дампа, чтобы убедиться, что файлы успешно извлечены.

Также можно использовать плагин windows.pslist.PsList с флагом --dump, что также работает в более новых версиях Volatility 3. Пример команды:

vol.py -f mydump.vmem windows.pslist.PsList --pid 1470 --dump

Эта команда также позволит вам получить дамп памяти указанного процесса.

Обратите внимание: Флаг --dump является новым, и его использование делает извлечение информации более удобным. Убедитесь, что вы обращаетесь к официальной документации или справке вашего экземпляра Volatility 3 для получения последней информации о доступных параметрах и плагинах.

Оцените материал
Добавить комментарий

Капча загружается...