Анализ памяти ОС актуален в ситуации, когда есть или был физический доступ к компьютеру и была возможность снять дамп оперативной памяти. По слепку оперативной памяти можно определить, какие приложения запускались во время работы компьютера, данные процессов и получить другую полезную информацию. Все это можно сделать пока пользователь не выключил или не перезагрузил компьютер. Suspend состояние ОС идеально для этого подходит.
Как правило, для анализа оперативной памяти используют несколько приложений: Volatility, Memoryze и Autopsy. Autopsy конечно же удобный инструмент, который может одним нажатием кнопки сделать комплексный анализ всего дампа. Но, если речь идет о кейсах когда вы ограничены о времени, тогда важна скорость получения результатов, т.е. лучше использовать, что-то другое консольное. Поэтому сегодня я для анализа дампа оперативной памяти буду использовать Volatility.
Для своих тестов я взял три дампа Windows:
1) ch2.dmp, Win7SP0x86 получен здесь.
2) memdump.mem, WinXPSP3x86 получен самостоятельно.
3) challenge.vmem, Win10x64_18362 получен здесь.
Сразу оговорюсь что с третьим кейсом у меня получился фейл. Традиционный запрос на определение профиля дампа:
volatility_2.6_win64_standalone.exe -f challenge.vmem imageinfo
мне ничего не выдал. Даже подстановка вручную профиля Win10x64 к успеху не привела. Так что далее я работал только с первыми двумя дампами.
Case 1.
Получение имени компьютера, с моей точки зрения, не является чем-то важным, поэтому это присходит буквально за два шага извлечением значения ключа реестра из ControlSet001\Control\ComputerName\ActiveComputerName:
volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 hivelist
volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 hivedump -o 0x8b21c008 > hi_dump.txt
findstr "ComputerName" hi_dump.txt
volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName"
В качестве бонуса к заданию я попытался реконструировать снимок последнего desktop-a.
volatility_2.6_win64_standalone.exe -f ch2.dmp --profile=Win7SP0x86 screenshot -D F:\Case\Dump
Однако сборка версии 2.6 заточена на библиотеку PIL, где и я получил ошибку "Please Install PIL". PIL уже давно именуется как Pillow, что требует перекомпиляцию всего кода volatility, поэтому более быстрым решением стало использование версии volatility 2.4:
volatility-2.4.standalone.exe -f ch2.dmp --profile=Win7SP0x86 screenshot --dump-dir=/