Анализ памяти ОС актуален в ситуации, когда есть или был физический доступ к компьютеру и была возможность снять дамп оперативной памяти. По слепку оперативной памяти можно определить, какие приложения запускались во время работы компьютера, данные процессов и получить другую полезную информацию. Все это можно сделать пока пользователь не выключил или не перезагрузил компьютер. 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=/
Case 2.
Второй кейс для меня был более интересным. Тут было несколько задач, я искал следующее:
- пароль администратора
- IP-адрес и имя компьютера
- содержание clipboard
- содержание IE history.
2.1. Достанем пароль администратора.
Получаем хеш паролей:
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 hivelist
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 hashdump -y 0xe1035b60 -s 0xe2047008
И с помощью плагина mimikatz извлекаем пароль:
volatility_2.6_win64_standalone.exe --plugins=F:\Case\ -f memdump.mem --profile=WinXPSP3x86 mimikatz
2.2. Получим IP-адрес и имя компьютера.
Следующая команда не сработает на дампе WinXPSP3x86 ибо volatility поддерживает netscan выше Windows Vista:
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 netscan
Поэтому надо покопаться в реестре:
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 printkey -o 0xe1035b60 -K "ControlSet003\Services\Tcpip\Parameters\Interfaces\{C1D1F5FE-0F30-4569-BE57-0C79C2CCCCCD}"
Имя ОС получаем как в предыдущем кейсе:
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 hivedump -o 0x8b21c008 > hi_dump.txt
findstr "ComputerName" hi_dump.txt
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 printkey -o 0xe1035b60 -K "ControlSet003\Control\ComputerName\ActiveComputerName"
2.3. Получим содержимое clipboard.
Полезный шаг, иногда тут застревают пароли и другая ценная информация:
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 clipboard
2.4. Получим IE history.
Не менее полезный шаг. Это, конечно, не Chrome, но IE кеш иногда хранит время и пути к файлам которые открывались локально из комадной строки:
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 iehistory
2.5. Исследуем процесс по PID 32860.
volatility_2.6_win64_standalone.exe -f memdump.mem --profile=WinXPSP3x86 dlllist -p 32860
2.6. Получим псевдоскриншот Desktop-a.
Не знаю насколько полезно, но все таки:
volatility-2.4.standalone.exe -f memdump.mem --profile=WinXPSP3x86 screenshot --dump-dir=F:\Case\Shots
Успехов.
No comments:
Post a Comment
А что вы думаете по этому поводу?