Главная

Tuesday, 23 November 2021

Практические кейсы с Volatility.

Всем привет.

Анализ памяти ОС актуален в ситуации, когда есть или был физичес­кий дос­туп к компьютеру и была возможность снять дамп опе­ратив­ной памяти. По слепку оперативной памяти мож­но опре­делить, какие при­ложе­ния запус­кались во вре­мя работы компьютера, дан­ные про­цес­сов и получить другую полезную информацию. Все это можно сделать пока пользователь не вык­лючил или не перезаг­рузил компь­ютер. 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

А что вы думаете по этому поводу?