-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path21.txt
More file actions
94 lines (80 loc) · 4.18 KB
/
21.txt
File metadata and controls
94 lines (80 loc) · 4.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Установка
Проект Volatility появился несколько лет назад и совсем недавно был полностью переписан. Мало того что кодовая
база теперь основана на Python3, был проведен рефакторинг всего фреймворка, так чтобы его компоненты стали
независимыми, - для работы подключаемых модулей достаточно их собственного внутреннего состояния.
Создадим виртуальное окружение специально для работы с Volatility. В этом примере мы используем Python 3, в
терминале PowerShell на компьютере с Windows. Если вы пользуетесь Windows, убедитесь, что у вас установлена система
управления версиями git. Можете скачать ее на странице https://got-scm.com/downloads/
PS> python3 -m venv vol3
PS> vol3/Scripts/activate.ps1
PS> cd vol3/
PS git clone https://github.com/volatilityfoundation/volatility3.git
PS> cd volatility3/
PS> python setup.py install
PS> pip install pycryptodome
В начале мы создаем и активируем окружение vol3. Затем переходим в каталог виртуального окружения, клонируем
репозиторий Volatility 3, размещенный на GitHub, и устанавливаем его вместе с пакетом pycryptodome, который нам
понадобится позже.
Чтобы просмотреть подулючаемые модули и параметры, которые предлагает Volatility, используйте следующю команду
(в Windows)
PS> vol --help
В Linux and Mac нужно запустить интерпретатор Python, находясь в виртуальном окружении, как показано ниже:
$> python vol.py --help
В этой главе мы будем использовать Volatility в командной строке, но с этим фреймворком можно работать по-разному.
Например, у нее есть веб-интерфейс Volumetric с открытым исходным кодом, написанный теми же разработчиками
(https://github.cim/volatilityfoundation/volumetric/). Вы можете исследовать примеры кода в проекте Volumetric,
чтобы лучше понять, как применять Volatility в собственных программах. Кроме того, можете воспользоваться
интерфейсом volshell, который позволяет работать с фреймворком Volatility и имеет вид обычной интерактивной оболочки
Python.
В следующих примерах будем использовать командную строку Volatility. Для экономии места вывод отредактирован - в нем
показано только то, что мы обсуждаем. Поэтому имейте в виду, что в нашем выводе будет больше строчек и столбцов.
Прежде чем углубляться в код, заглянем внутрь Volatility:
PS> cd volatility/framework/plugins/windows/
PS> ls
_init_.py
bigpools.py
cachedump.py
callbacks.py
cmdline.py
dillist.py
driverirp.py
driverscan.py
filescan.py
handles.py
hashdump.py
info.py
lsadump.py
malfind.py
memmap.py
modscan.py
modules.py
mutantscan.py
netscan.py
poolscanner.py
pslist.py
psscan.py
pstree.py
registry/
ssdt.py
strings.py
svcscan.py
symlinkscan.py
vadinfo.py
vadyarscan.py
verinfo.py
virtmap.py
В этом листинге мы видим файлы Python внутри каталога с подключаемыми модулями в Windows. Настоятельно советуем
потратить какое-то время на исследование кода в этих файлах. Вы сможете увидеть, что структура подключаемых модулей
Volatility формируется по одной и той же схеме. Это поможет вам лучше разобраться в данном фреймворке и, что еще важнее,
даст общее представление об образе мышления и намерениях тех, кто обеспечивает безопасность. Понимание того, на что они
способны и как достигают своих целей, сделает вас более умелым хакером и научит лучше избегать обнаружения.
Итак, мы подготовили платформу анализа к работе. Теперь нужно проанализировать какие-то образы памяти. Проще всего
для этого сделать снимок собственной виртуальной машины с Windows 10.
Сначала включите свою ВМ и запустите несколько процессов (например, блокнот, калькулятор и браузер) - мы проанализируем
ее память и понаблюдаем за тем, как эти процессы стартуют. Затем сделайте снимок с помощью своего гипервизора. В папке,
в которой гипервизор хранит образы виртуальных машин, появится новый файл с расширением .vmem или .mem. Давайте
его исследуем!
Стоит отметить что в интернете може можно найти множество образов памяти. Один из них, который мы рассматриваем в этой
главе, предоставлен компанией PassMark Software по адресу: https://www.osforensics.com/tools/volatility-workbench.html/
На веб-сайте Volatility Foundation тоже есть несколько образов, с которыми можно поэкспериментировать:
https://github.com/volatilityfoundation/volatility/wiki/Memory-Samples/.