昨日は泥のように寝てて丸一日無くなってました・・・・・
1日空いてしまいましたが、日課の記事投稿です。
Web関連のネタは普段業務でやってるから、しばらくは記事にする優先順位低めでいいかな・・・?
というわけで、今回はフォレンジックでお馴染みのVolatilityのチートシートを作成してみました。
※当方は普段は脆弱性診断をしているもので、VolatilityはCTFで使用する程度です。おかしな点などありましたら指摘いただけると幸いです。
今回は以下を参考にさせていただきました。
Volatility
Volatility Frameworkはメモリイメージを解析するためフレームワーク。
オープンソースでWindows、Linux、Macなど多くのプラットフォームに対応している。
インストール
以下からダウンロード
yarascan プラグイン(ルール)
pipでインストールするだけ。
pip install yara
基本コマンド
volatility.exe -f [メモリダンプ名] --profile=[プロファイル] [プラグイン]
プラグイン
| プラグイン名 | オプション | 用途 |
|---|---|---|
| imageinfo | 対象メモリのプロファイルを推測 | |
| hivelist | レジストリハイブの仮想アドレスを表示 | |
| hivedump | –o [仮想アドレス] | 対象ハイブの全キーを表示 |
| printkey | -o [仮想アドレス] –K [対象キー] | 対象キー(相対パス)を表示 |
| dumpregistry | -o [仮想アドレス] --dump-dir [出力フォルダ] | 対象ハイブをバイナリ出力 |
| userassist | ユーザーが起動したアプリの履歴を表示 | |
| hashdump | ログインユーザーとパスワードハッシュを表示 | |
| autoruns | -v | 自動起動するプロセスを表示(要インストール) |
| pslist | 起動中のプロセスを表示 | |
| pstree | 起動中のプロセスツリーを表示 | |
| dlllist | DLLのオフセットを表示 | |
| netscan | ネットワーク使用中のプロセスを表示 | |
| malfind | -p [プロセスID] | 対象プロセスが改変されているかチェック |
| procdump | -p [プロセスID] --dump-dir [出力フォルダ] | 対象プロセスをexeとしてダンプ |
| memdump | -p [プロセスID] --dump-dir [出力フォルダ] | 対象プロセスの使用メモリをダンプ |
| yarascan | -p [プロセスID] --yara-rules="[文字列]" | 指定プロセスのメモリから文字列を検索(要インストール) |
| filescan | ファイルのオフセットを表示 | |
| dumpfiles | -Q [ファイルのオフセット] -D [出力フォルダ] | 対象ファイルをダンプ |
| cmdscan | コマンドプロンプトのコマンド履歴を表示 | |
| consoles | コマンドプロンプトの出力履歴を表示 | |
| shimcache | AppCompatCacheをダンプ(具体的にはOSの重要DLLであるkernel32.dllの共有メモリ) | |
| clipboard | クリップボードを出力 |