Debianにとりあえずpython2を入れて最低限volatilityを使えるようにするメモ
インストール
python2でvolatilityを動かすために必要なものをinstall
volatility@deb-vol:~$ sudo apt install build-essential zlib1g-dev libssl-dev libsqlite3-dev
python2でvolatilityを使うための最低限のものしか入れていないので、このpython2環境を他の作業に利用する場合は間違いなくライブラリ等が足りない。
参考 [解決済み]Python3.8.5で「ssl module in python is not available」 - Qiita
python2 sourceのダウンロード
Python Release Python 2.7.18 | Python.org
volatility@deb-vol:~/Download$ wget --inet4-only https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz ~~~ volatility@deb-vol:~/Download$ tar xf Python-2.7.18.tgz volatility@deb-vol:~/Download$ cd Python-2.7.18/ volatility@deb-vol:~/Download/Python-2.7.18$ ls aclocal.m4 configure Doc install-sh Mac Modules PC Python setup.py config.guess configure.ac Grammar Lib Makefile.pre.in Objects PCbuild README Tools config.sub Demo Include LICENSE Misc Parser pyconfig.h.in RISCOS
自分の環境ではipv6での名前解決に時間がかかり過ぎるのでwgetに--inet4-only付き。
tarはファイルで形式を判断してくれるようになってたらしい。
python2のインストール
volatility@deb-vol:~/Download/Python-2.7.18$ ./configure ~~~ volatility@deb-vol:~/Download/Python-2.7.18$ make && sudo make install
python2 pip のダウンロード
volatility@deb-vol:~$ wget --inet4-only https://bootstrap.pypa.io/pip/2.7/get-pip.py -O get-pip.py
python2のpipの入れ方は少しクセがある。
今後作業中に何度も
WARNING: The scripts pip, pip2 and pip2.7 are installed in '/home/volatility/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The scripts easy_install and easy_install-2.7 are installed in '/home/volatility/.local/bin' which is not on PATH.
というようなメッセージが表示されるので気になるならばPATHに追加するなりする。
volatilityのダウンロード
volatility@deb-vol:~$ wget https://github.com/volatilityfoundation/volatility/archive/refs/tags/2.6.1.tar.gz ~~~ volatility@deb-vol:~$ tar xf 2.6.1.tar.gz volatility@deb-vol:~$ cd volatility-2.6.1/ volatility@deb-vol:~/volatility-2.6.1$ ls AUTHORS.txt contrib LEGAL.txt Makefile PKG-INFO pyinstaller.spec resources tools vol.py CHANGELOG.txt CREDITS.txt LICENSE.txt MANIFEST.in pyinstaller README.txt setup.py volatility
volatilityのために必要なpython2ライブラリのインストール
python2ライブラリの前にまずpython-dev
volatility@deb-vol:~$ sudo apt install python-dev ~~~
yaraのインストール
Releases · VirusTotal/yara · GitHubから次にインストールするyara-pythonのバージョンに合わせてダウンロードしてインストールする。
参考 Getting started — yara 4.1.0 documentation
volatility@deb-vol:~$ wget https://github.com/VirusTotal/yara/archive/refs/tags/v4.1.2.tar.gz ~~~ volatility@deb-vol:~$ tar xf v4.1.2.tar.gz volatility@deb-vol:~$ cd yara-4.1.2/ volatility@deb-vol:~/yara-4.1.2$ ls appveyor.yml bootstrap.sh cli COPYING extra Makefile.am sample.rules windows yara.man AUTHORS BUILD.bazel configure.ac dist libyara README.md sandbox WORKSPACE.bazel bazel build.sh CONTRIBUTORS docs m4 sample.file tests yarac.man
yaraのインストールに必要なパッケージもインストールしてから、yaraを入れる。
volatility@deb-vol:~/yara-4.1.2$ sudo apt install automake libtool pkg-config ~~~ volatility@deb-vol:~/yara-4.1.2$ ./bootstrap.sh ~~~ volatility@deb-vol:~/yara-4.1.2$ ./configure ~~~ volatility@deb-vol:~/yara-4.1.2$ make && sudo make install
改めてvolatilityのために必要なpython2ライブラリをインストール
volatility@deb-vol:~$ python2.7 -m pip install distorm3==3.4.4 yara-python pycrypto ~~~
distorm3はv3.4.4までしかvolatility対応が確認されていない。
volatilityのsetup(任意)
volaitlityのsetup.pyでinstallするとvol.pyがコマンドに登録される。
volatility@deb-vol:~/volatility-2.6.1$ sudo python2.7 setup.py install
動作確認
TryHackMe | Memory Forensicsのtask2のファイルを使い動作確認を行う。
volatility@deb-vol:~$ vol.py -f Snapshot6.vmem imageinfo Volatility Foundation Volatility Framework 2.6.1 INFO : volatility.debug : Determining profile based on KDBG search... Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_24000, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_24000, Win7SP1x64_23418 AS Layer1 : WindowsAMD64PagedMemory (Kernel AS) AS Layer2 : FileAddressSpace (/home/volatility/Snapshot6.vmem) PAE type : No PAE DTB : 0x187000L KDBG : 0xf80002c4a0a0L Number of Processors : 1 Image Type (Service Pack) : 1 KPCR for CPU 0 : 0xfffff80002c4bd00L KUSER_SHARED_DATA : 0xfffff78000000000L Image date and time : 2020-12-27 06:20:05 UTC+0000 Image local date and time : 2020-12-26 22:20:05 -0800 volatility@deb-vol:~$ vol.py -f Snapshot6.vmem --profile=Win7SP1x64 hivelist Volatility Foundation Volatility Framework 2.6.1 Virtual Physical Name ------------------ ------------------ ---- 0xfffff8a001453010 0x000000003b039010 \??\C:\Users\John\AppData\Local\Microsoft\Windows\UsrClass.dat 0xfffff8a00000f010 0x0000000027324010 [no name] 0xfffff8a000024010 0x00000000271af010 \REGISTRY\MACHINE\SYSTEM 0xfffff8a000061010 0x00000000272ee010 \REGISTRY\MACHINE\HARDWARE 0xfffff8a000790010 0x00000000211b5010 \Device\HarddiskVolume1\Boot\BCD 0xfffff8a0007f1010 0x0000000021368010 \SystemRoot\System32\Config\SOFTWARE 0xfffff8a000a8e010 0x000000001b1e8010 \SystemRoot\System32\Config\DEFAULT 0xfffff8a000cce010 0x00000000172b1010 \SystemRoot\System32\Config\SECURITY 0xfffff8a000cf8010 0x0000000016ce6010 \SystemRoot\System32\Config\SAM 0xfffff8a000d81010 0x00000000162d5010 \??\C:\Windows\ServiceProfiles\NetworkService\NTUSER.DAT 0xfffff8a000e0e010 0x0000000016073010 \??\C:\Windows\ServiceProfiles\LocalService\NTUSER.DAT 0xfffff8a0013ee010 0x000000003bc0d010 \??\C:\Users\John\ntuser.dat volatility@deb-vol:~$ vol.py -f Snapshot6.vmem --profile=Win7SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a000cf8010 Volatility Foundation Volatility Framework 2.6.1 Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: John:1001:aad3b435b51404eeaad3b435b51404ee:47fbd6536d7868c873d5ea455f2fc0c9::: HomeGroupUser$:1002:aad3b435b51404eeaad3b435b51404ee:91c34c06b7988e216c3bfeb9530cabfb:::
余談
libyara.soが無い等でエラーの場合
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'; sudo ldconfig
または
libyara.soをfindして、sudo ln -s /<見つけたパス>/libyara.so /usr/local/lib/libyara.so