拾い物のコンパス

まともに書いたメモ

volatilityにSANSのプラグインを追加する方法

volatilityでmimikatzを使いたくなった.
セットアップ方法が見つからなかったから書き残す.

mimikatzとは

Windowsのパスワードなどの各種認証情報をメモリから抜き出すツール.
管理者権限の取得やなりすましにも使える.
CTFではメモリダンプからアカウントの平文パスワードを抜き出すのによく使う.
デフォルトではvolatilityと連携して使うことができない.
SANSがプラグインを書いて公開しているから,それを追加してやれば良い.

やり方

基本はプラグインをコピーするだけ.

$ git clone https://github.com/volatilityfoundation/volati
$ git clone https://github.com/sans-dfir/sift-files       
$ cp sift-files/volatility/* volatility/volatility/plugins

これでmimikatzコマンド自体は使えるよう.しかし・・・

$ python2 volatility/vol.py -f ./memdump.mem mimikatz
Volatility Foundation Volatility Framework 2.6
*** Failed to import volatility.plugins.openioc_scan (ImportError: No module named ioc_writer)
ERROR   : volatility.debug    : You must specify something to do (try -h)

pythonモジュール不足でまだ動かない.
ERROR : volatility.debug : You must specify something to do (try -h)はコマンドが無いときにも出る.わかりにくい.
モジュールについてはvirtualenv2でローカル環境を作成して,整えていく.

$ virtualenv2 ENV && . ENV/bin/activate
$ pip install distorm3 pycrypto lxml ioc_writer colorama construct==2.5.5-reupload

Crypt.HashモジュールのためにpycryptoAttributeError: 'module' object has no attribute 'ULInt32'construct==2.5.5-reuploadで対処.

$ python2 volatility/vol.py -f <mem file> --profile=WinXPSP2x86 mimikatz

これで動く.

参考

error in attribute with construct module · Issue #15 · volatilityfoundation/community · GitHub

python - ImportError: No module named Crypto.Cipher - Stack Overflow

lsass.exe のダンプからユーザーパスワードを抽出 :mimikatz

https://www.iij.ad.jp/dev/tech/techweek/pdf/171108_02.pdf

GitHub - gentilkiwi/mimikatz: A little tool to play with Windows security