Дамп оперативной памяти mac os

Получаем образ оперативной памяти


Содержание оперативной памяти является очень важной информацией при изучении предыдущих действий с машиной. Оперативная память может содержать как части самих исполняемых процессов, так и части удаленных файлов, пользовательских сессий, криптографических ключей. При современном распространении сложных систем защиты информации, основанных на криптовании восстановление их ключей становиться чуть-ли не одной из основных задач для исследования. В защищенных системах зачастую оперативная память это единственное место где могут сохраниться защитные ключи и другая временная, но очень важная информация.

Процесс получения информации, которая содержится в оперативной памяти состоит из двух этапов: изъятие содержимого оперативной памяти
и
анализ полученных во время изъятия данных.

Обращая внимание на первый этап стоит заметить, что изъятие оперативной памяти может быть выполнено с помощью ряда средств: непосредственный доступ к памяти с использованием специальных плат расширения, порта FireWire, и даже физическом изъятии запоминающего устройства оперативной памяти (потребует замораживания плат),

но в данном материале мы рассмотрим программные средства, которые позволяют изъять содержимое оперативной памяти защищенных машин путем так называемой «горячей» перезагрузки и запуска машины в Live-режиме.

Для выполнения этой задачи будем использовать специальный дистрибутив Ubuntu CyberPack (IRF) 1.0, состоящий из минимального набора компонент, а именно, только те, которые необходимы для изъятия данных из памяти. Соответственно отсутствует и графический интерфейс.

Использование такого подхода к изъятию содержимого оперативной памяти имеет ряд преимуществ и недостатков сравнительно с другими перечисленными выше средствами.
Плюсы:
— использование Live-дистрибутива позволяет проводить действие не зависимо от того какая операционная система установлена на исследуемой машине;
— отсутствуют затраты на приобретение дорогостоящих специальных устройств, кабелей, плат, и др.
Недостаток:
— содержимое оперативной памяти будет неполным — ее часть будет перезаписана данными, необходимыми для запуска Live-дистрибутива (приблизительно 125 Мб).

Для использования доступны специально собранные дистрибутивы для машин с памятью объемом до 3 Гб (і386) и свыше 3 Гб (amd64). С их помощью можно создать загрузочный CD/DVD-диск или загрузочный USB-диск.

Замечания:
второго шанса система нам не дает — у нас есть только одна попытка. т. е. при повторной перезагрузке исследуемого компьютера большая вероятность того что мы уже не найдем необходимой информации. Отсюда следует что не надо перезагружать его несколько раз, экспериментировать, прицеливаться.
Необходимо заранее подготовится и знать как компьютер себя поведет после перезагрузки.
Большинство современных компьютеров позволяют прямо при старте указать откуда производить загрузку, но если этого нет, тогда необходимого настроить BIOS машины на загрузку с CD/DVD-привода или USB-привода/накопителя, после чего загрузить Live-дистрибутив с указанного устройства.

Перезагружаем компьютер.
ВАЖНО: перезагрузка ни в коем случае не должна быть холодной (путем нажатия кнопки «ресет» или выключение\включение питания), а именно — перезагрузка должна быть осуществлена средствами самой работающей системы (например нажатием кнопок Ctrl-Alt-Del или путем выбора пункта «перезагрузка» в системе)

Читайте также:  Интерактивная панель android windows

После загрузки дистрибутива пользователю доступна привычная строка консоли Linux, и краткая информация для запуска модуля.

Подготовка к работе программы fmem заключается в выполнении следующих команд:
$ sudo -s
# cd /opt (переход в папку где находиться программа);
# ./run-fmem.sh (скрипт запуска модуля съема памяти);

Замечание: Для дальнейших действий понадобиться примонтировать заранее подготовленный носитель (внешний жесткий диск, флеш-накопитель) с файловой системой ext2/3/4, в который будет сохраняться файл с содержимым оперативной памяти.

Для того, что бы узнать какой идентификатор присоединенному носителю присвоила система, необходимо после его подключения к компьютеру ввести следующую команду:
# dmesg | tail (Команда выводит на экран информацию буфера сообщений ядра. Нас будет интересовать последняя запись.)
Как например вот это:
[16091.995428] sd 9:0:0:0: Attached scsi generic sg2 type 0
[16091.995996] sd 9:0:0:0: [sdb] 32096120 512-byte logical blocks: (16.4 GB/15.3 GiB)
[16091.998192] sd 9:0:0:0: [sdb] Write Protect is off
[16091.998205] sd 9:0:0:0: [sdb] Mode Sense: 0b 00 00 08
[16091.999433] sd 9:0:0:0: [sdb] No Caching mode page found
[16091.999447] sd 9:0:0:0: [sdb] Assuming drive cache: write through
[16092.003486] sd 9:0:0:0: [sdb] No Caching mode page found
[16092.003495] sd 9:0:0:0: [sdb] Assuming drive cache: write through
[16092.004251] sdb: sdb1

(где «sdb» — присвоенное обозначение физического накопителя, а «sdb1» — присвоенное обозначение логического раздела накопителя).

Далее следует примонтировать логический раздел накопителя к папке /tmp загруженной в Live-режиме операционной системы:

# mount /dev/sdb1 /tmp
(где
«mount» — команда монтирования устройства
«/dev/sdb1» — адрес файла логического раздела присоединенного накопителя
«/tmp» — папка в которую необходимо подключить накопитель).

Все подготовительные шаги сделаны — можно переходить к изъятию содержимого оперативной памяти:

# dd if=/dev/fmem of=/tmp/ram-image.mem bs=1K count=`head -1 /proc/meminfo | awk ‘‘`
(где
«dd» — команда создания образа
«if=/dev/fmem» — источник данных, а именно оперативная память
«of=/tmp/ram-image.mem» — запись в файл «ram-image.mem» в папку «/tmp»
«bs=1K» — размер блока информации — 1 Кб
«count=`head -1 /proc/meminfo | awk ‘‘`» — объем оперативной памяти, информация о которой извлекается из файла /proc/meminfo).

И ждем…
В результате удачного выполнения команды, мы получим сообщение похожее на это:

521453568 bytes (521 MB) copied, 158.405 s, 3.3 MB/s
(где
«521453568 bytes (521 MB) copied» — объем скопированной информации
«158.405 s» — время в течении которого проводилась операция
«3.3 MB/s» — скорость при которой проводилась операция)

В результате мы получили содержимое оперативной памяти машины в файле «ram-image.mem» на накопителе. Теперь его можно обрабатывать в т.ч. извлекая части исполняемых процессов, удаленных файлов, информацию о пользовательских сессиях, криптографических ключах и многое другое.

Читайте также:  Kali linux package manager

P.S.
Также стоит обратить внимание что все современные системы используют в своей работе и swap-память (так называемый «файл подкачки»)
Файл подкачки – это своеобразное дополнение к оперативной памяти (которая занимается временным хранением данных для быстрой доставки их на обработку процессору) Вашего компьютера. Даже не столько дополнение, сколько её уширение или, можно сказать, продолжение. Дело в том, что когда не хватает оперативной памяти система может переносить данные из памяти на диск (так называемая дополнительная память), в котором соответственно также хранятся данные.
И для полной картины анализа памяти необходимо также получить и их.
Различные операционные системы используют разные способы их хранения.

В случае с Windows это обычно файлы в корне на системном диске С:
pagefile.sys для Win XP и Win 7 и достаточно просто скопировать файл

Для Linux — это отдельный раздел на носителе.
Например:
Команда sudo fdisk -l /dev/sda
покажет нам все разделы в системе
/dev/sda1 * 2048 78125055 39061504 83 Linux
/dev/sda2 78125056 117186559 19530752 82 Linux своп / Solaris
/dev/sda3 117186560 625141759 253977600 83 Linux
Исходя из чего мы видим что раздел подкачки находиться в /dev/sda2
Скопировать его можно также с помощию команды dd.
Например:
dd if=/dev/sda2 of=/media/ /linux-swap.dd

Для MacOS необходимо скопировать все файлы из директории /private/var/vm/swapfile*

Обработка и анализ полученных результатов (как дампа оперативной памяти так и swap-памяти) может проводиться как в ручную с помощью например HEX-редактора, так и с помощью ряда программ о которых будет рассказано в следующий раз.

Источник

HoldMyBeer

Cause every great story starts with «Hold my beer»

Windows, Mac OSX and Linux Memory Dump How To

Dumping memory from an operating system can be complicated and is not built-in feature. You also have to keep in mind that memory dumps are a snapshot in time of what is in the memory. The memory is constantly changing every second so having the right tool can be the difference between getting the data you need and having it lost forever. There are various tools for each operating system to accomplish memory dumps. Some tools are easier to setup and use than others and some tools are portable apps. I have provided links at the bottom of this post to all the tools I cover within this post.

Windows Memory Dump

Method 1: Break Windows for Memory Dump Tool

  1. Open run and enter “sysdm.cpl”
  2. Select “Advance System Settings” on the left.
  3. Select “Settings” under “Startup and recovery” section
  4. Select “Complete memory dump” under “Write debugging information”
    1. If “Complete memory dump is not an option please follow these steps.
    2. Open run and enter “regedit”.
    3. Go to HKEY_LOCAL_MAHCINE\SYSTEM\CurrentControlSet\Control\CrashControl.
    4. In the right-hand panel double-click “CrashDumpEnabled” and set the value to “1”.
    5. Reboot and follow steps 1 -4.
  5. Must reboot computer for settings to take effect.
  6. Now time to break windows, muhahahaha.
  7. Quick dirty method
    1. Open Powershell as Administrator.
    2. Enter “get-process | stop-process -f”.
  8. Better method
    1. Open run and enter “regedit”.
    2. Go to “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042\Parameters”.
    3. Create a new DWORD and enter “CrashOnCtrlScroll”.
    4. Modify new DWORD and set value to “1”.
    5. Reboot system
    6. Now to crash your system by Holding “Ctrl” and pressing “Scroll Lock” twice.
  9. Memory dump will be located in “C:\Windows\System32\MEMORY.DMP”.
  10. The memory dumps from windows can be a lil buggy with volatility.
Читайте также:  Запустить автоматические обновления для windows

Method 2: Red Line Memory Dump Tool (Personal favorite)

  1. Download the software, extract it, and install tool
  2. Now keep in mind RedLine is meant to keep a low footprint meaning it creates a script to run from a USB drive. We are going to create to script and run it from the same machine.
  3. Select “Create a Standard Collector”.
  4. Select “Acquire memory image” at the top.
  5. Enter a location to save the RedLine collector.
  6. Open RedLine Collector folder and double-click “RunRedlineAudit”
  7. The collection process takes close to 20-30mins. In a later post I will go in depth of the analysis part of the RedLine tool.

Method 3: Moonsol DumpIt Memory Dump Tool

  1. Download the software and extract it.
  2. Right-click “DumpIt” and select “Run as Administrator”
  3. Enter “y” for the default path.
    1. For 2GB capture it took roughly 5 secs.
  4. Confirmation this software works with volatility.

Method 4: Belkasoft Memory Dump Tool

  1. Download the software and extract it.
  2. Right-click “RamCapture” and select “Run as Administrator”
  3. Enter path to save memory dump in “Output path”
  4. Select “Capture”
    1. For 2GB capture it took roughly seconds to create a dump.
  5. Confirmation this software works with volatility.

Linux Memory Dump

Method 1: Lime kernel module

  1. git clone https://github.com/504ensicsLabs/LiME.git
  2. cd Lime/src
  3. make
  4. cd
  • sudo insmod ./LiME/src/lime.ko “path= format=lime [dio=0|1]”
    1. path the output file for the memory dump
    2. format is the type of dump
      1. raw – concatenates all System RAM ranges
      2. padded – pads all non-System RAM ranges with 0s
      3. lime – each range prepended with fixed-size header containing address space info
    3. dio
      1. 0 – default, do not attempt Direct IO
      2. 1 – attempt to enable Direct IO
  • Mac OSX Memory Dump

    1. Download software and extract it.
    2. Cd to directory with “osxpmem.app” binary
    3. kextload osxpmem.app/MacPmem.kext
      1. Had issues with El Captain make sure you have the latest build.
    4. ./osxpmem.app/osxpmem -o /tmp/ .aff4

    Tools

    Windows – Moonsols DumpIt – Only place I could find it

    Источник

    Оцените статью