4ensiX

4ensiX

FPと言ったものはFPを選んだが表示はTPになっていることに気づいた。

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:::

余談

f:id:Zarat:20210929021851p:plain
https://crackstation.net/

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