これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンドの変動性です。
プログラム:
NAME
乱高下 - 高度なメモリフォレンジックフレームワーク
SYNOPSIS
乱高下 [オプション]
乱高下 -f [画像] - プロフィール=[プロフィール] [プラグイン]
DESCRIPTION
ボラティリティ フレームワークは、次の情報を抽出するための完全にオープンなツールのコレクションです。
揮発性メモリ (RAM) サンプルからのデジタル アーティファクト。 フォレンジック分析に役立ちます。
抽出技術は、システムから完全に独立して実行されます。
調査されていますが、システムの実行時の状態に対する前例のない可視性が提供されます。
Volatility は、MS Windows、Linux、および MAC OSX のいくつかのバージョンをサポートしています。
MS Windows:
· 32 ビット Windows XP Service Pack 2 および 3
· 32 ビット Windows 2003 Server Service Pack 0、1、2
· 32 ビット Windows Vista Service Pack 0、1、2
· 32 ビット Windows 2008 Server Service Pack 1、2 (SP0 はありません)
· 32 ビット Windows 7 Service Pack 0、1
· 32 ビット Windows 8、8.1、および 8.1 Update 1
・32ビットWindows 10(初期サポート)
· 64 ビット Windows XP Service Pack 1 および 2 (SP0 はありません)
· 64 ビット Windows 2003 Server Service Pack 1 および 2 (SP0 はありません)
· 64 ビット Windows Vista Service Pack 0、1、2
· 64 ビット Windows 2008 Server Service Pack 1 および 2 (SP0 はありません)
· 64 ビット Windows 2008 R2 Server Service Pack 0 および 1
· 64 ビット Windows 7 Service Pack 0 および 1
· 64 ビット Windows 8、8.1、および 8.1 Update 1
· 64 ビット Windows Server 2012 および 2012 R2
・64ビットWindows 10(初期サポート)
Linux:
· 32 ビット Linux カーネル 2.6.11 ~ 4.2.3
· 64 ビット Linux カーネル 2.6.11 ~ 4.2.3
· OpenSuSE、Ubuntu、Debian、CentOS、Fedora、Mandriva など
Mac OSX:
· 32 ビット 10.5.x Leopard (64 ビット 10.5 はサーバーのみであり、サポートされていません)
· 32 ビット 10.6.x Snow Leopard
· 64 ビット 10.6.x Snow Leopard
· 32 ビット 10.7.x ライオン
· 64 ビット 10.7.x ライオン
· 64 ビット 10.8.x Mountain Lion (32 ビット バージョンはありません)
· 64 ビット 10.9.x Mavericks (32 ビット バージョンはありません)
· 64 ビット 10.10.x Yosemite (32 ビット バージョンはありません)
· 64 ビット 10.11.x El Capitan (32 ビット バージョンはありません)
サポートされているメモリ形式は次のとおりです。
・生線状サンプル(dd)
· ハイバネーションファイル
・クラッシュダンプファイル
· VirtualBox ELF64 コアダンプ
· VMware の保存された状態およびスナップショット ファイル
・EWF形式(E01)
・LiME(Linux Memory Extractor)形式
・マッハファイル形式
· QEMU仮想マシンのダンプ
・ 火線
・HPAK(FDPro)
サポートされているアドレス空間 (RAM タイプ) は次のとおりです。
· AMD64PagesMemory - 標準 AMD 64 ビット アドレス空間
· ArmAddressSpace - ARM プロセッサのアドレス空間
· FileAddressSpace - これは直接ファイル AS です
· HPAKAddressSpace - この AS は HPAK 形式をサポートします
· IA32PaggedMemoryPae - このクラスは、IA-32 PAE ページング アドレス空間を実装します。
それは責任がある
· IA32PagesMemory - 標準 IA-32 ページング アドレス空間
· LimeAddressSpace - Lime のアドレス空間
· MachOAddressSpace - atc-ny メモリをサポートするための mach-o ファイルのアドレス空間
読者
· OSXPmemELF - この AS は VirtualBox ELF64 コアダンプ形式をサポートします
· QemuCoreDumpElf - この AS は Qemu ELF32 および ELF64 コアダンプ形式をサポートします
· VirtualBoxCoreDumpElf64 - この AS は VirtualBox ELF64 コアダンプ形式をサポートします
· VMWareAddressSpace - この AS は VMware スナップショット (VMSS) と保存された状態をサポートします。
(VMSS) ファイル
· VMWareMetaAddressSpace - この AS は、VMSN/VMSS による VMEM フォーマットをサポートします。
· WindowsCrashDumpSpace32 - この AS は Windows クラッシュ ダンプ フォーマットをサポートします。
· WindowsCrashDumpSpace64BitMap - この AS は Windows BitMap クラッシュ ダンプをサポートします。
形式でアーカイブしたプロジェクトを保存します.
· WindowsCrashDumpSpace64 - この AS は Windows クラッシュ ダンプ フォーマットをサポートします。
· WindowsHiberFileSpace32 - これは Windows の休止状態のアドレス空間です
休止状態ファイル
テスト用のサンプル メモリ イメージが次の場所にあります。
https://github.com/volatilityfoundation/乱高下/wiki/メモリサンプル。
OPTIONS
-NS、 - 助けて
使用可能なすべてのオプションとそのデフォルト値をリストします。 デフォルト値は次のように設定できます。
設定ファイル (/etc/volatilityrc)。
--conf-file=/root/.volatilityrc
ユーザーベースの構成ファイル。
-NS、 - デバッグ
揮発性をデバッグします。
--plugins=プラグイン
NEW プラグイン 使用するディレクトリ (コロン区切り)。
- 情報 登録されているすべてのオブジェクトに関する情報を出力します。
--cache-directory=/root/.cache/volatility
キャッシュ ファイルが保存されるディレクトリ。
- キャッシュ
キャッシュを使用します。
--tz=TZ
pytz (インストールされている場合) または tzset を使用してタイムスタンプを表示するためのタイムゾーンを設定します
-f ファイル名、 --filename = FILENAME
ファイルを開くときに使用するファイル名 画像.
--profile=WinXPSP2x86
ロードするプロファイルの名前 (使用 - 情報 サポートされているプロファイルのリストを参照してください)。
-l 位置、 --location=場所
アドレス空間のロード元となる URN の場所。
-w、 - 書きます
書き込みサポートを有効にします。
--dtb=DTB
DTB アドレス。
--shift=シフト
Mac KASLR のシフト アドレス。
--output=テキスト
この形式で出力します。
--output-file=OUTPUT_FILE
出力をこのファイルに書き込みます。
-v、 -詳細
詳細な情報。
-g KDBG、 --kdbg=KDBG
特定の KDBG 仮想アドレスを指定します。 64 ビット Windows 8 以降の場合、これは
KdCopyDataBlock のアドレス。
- 力
疑わしいプロファイルの使用を強制します。
-k KPCR、 --kpcr=KPCR
特定の KPCR アドレスを指定します。
--cookie=クッキー
nt!ObHeaderCookie のアドレスを指定します (Windows 10 のみ有効)。
PLUGINS そして プロフィール
サポートされている プラグイン コマンド '$ を使用すると、コマンドとプロファイルを表示できます。
乱高下 - 情報'。 Linux および MAC OSX で許可されているプラグインには「linux_」が付いていることに注意してください。
および「mac_」プレフィックス。 これらのプレフィックスのないプラグインは MS Windows 用に設計されています。
プロファイルは、運用システムを理解するために Volatility が使用するマップです。 許可されるMS
Windows プロファイルは Volatility によって提供されます。
Linux および MAC OSX 用の独自のプロファイルを作成する必要があります。 これについては、Debian システムでは次を参照してください。
によって提供される README.Debian ファイル 乱高下-ツールパッケージ。
MS Windows では、OS の種類を確認するために次のコマンドを使用できます。
$ ボラティリティ -f 画像情報
or
$ ボラティリティ -f kdbgscan
ENVIRONMENT 変数
GNU/Linux または OS X システムでは、次の変数を設定できます。
· VOLATILITY_PROFILE - デフォルトとして使用するプロファイルを指定します。
不要な「- プロフィール' オプション.
· VOLATILITY_LOCATION - のパスを指定します。 画像。 つまり、Volatility コマンド
' によるファイル名は必要ありません-f' オプション.
· VOLATILITY_KDBG - KDBG アドレスを指定します。 追加手順をもっと見る
詳細。
その他 プラグイン この方法では、KPCR、DTB、PLUGINS などのフラグを利用できます。 いつ
変数をエクスポートする場合は、フラグ名の前に VOLATILITY_ を付けるだけです (例:
VOLATILITY_KPCR)。 それ以外の場合、フラグ名は、フラグを
設定ファイル
名前にスペース以上が含まれるパスがある場合、スペースは %20 に置き換える必要があります。
代わりに (例: LOCATION=file:///tmp/my%20image.img)。
例:
$export VOLATILITY_PROFILE=Win7SP0x86
$export VOLATILITY_LOCATION=file:///tmp/myimage.img
$ エクスポート VOLATILITY_KDBG=0x82944c28
CONFIGURATION ファイル
構成ファイルは通常、現在のディレクトリにある「volatilityrc」または
'~/.volatilityrc' ユーザーのホーム ディレクトリ、またはユーザーが指定したパスで、 --conf-
file オプション。 ファイルの内容の例を以下に示します。
[デフォルト]
プロファイル=Win7SP0x86
LOCATION=file:///tmp/myimage.img
KDBG=0x82944c28
その他 プラグイン この方法では、KPCR、DTB、PLUGINS などのフラグを利用できます。 いつ
変数をエクスポートする場合は、フラグ名の前に VOLATILITY_ を付けるだけです (例:
VOLATILITY_KPCR)。 それ以外の場合、フラグ名は、フラグを
設定ファイル
名前にスペース以上が含まれるパスがある場合、スペースは %20 に置き換える必要があります。
代わりに (例: LOCATION=file:///tmp/my%20image.img)。
EXTRA 手続き
タイムゾーンの設定
メモリから抽出されたタイムスタンプは、システムのローカル時間または世界時のいずれかになります。
座標 (UTC)。 UTC の場合、Volatility はそれらを時間内に表示するように指示できます。
アナリストが選択したゾーン。 タイムゾーンを選択するには、標準タイムゾーンのいずれかを使用します
名前 (アメリカ/サンパウロ、ヨーロッパ/ロンドン、米国/東部、またはほとんどのオルソンのタイムゾーンなど)
--tz=TIMEZONE フラグ。
Volatility は、インストールされている場合は pytz を使用しようとし、インストールされていない場合は tzset を使用します。
タイムゾーンを指定しても、システムの現地時間の表示方法には影響しないことに注意してください。 もしも
UTC ベースであることがわかっている時刻を特定した場合は、問題トラッカーに問題としてファイルしてください。
デフォルトでは、_EPROCESS の CreateTime および ExitTime タイムスタンプは UTC です。
DTBの設定
DTB (ディレクトリ テーブル ベース) は、Volatility が仮想アドレスを物理アドレスに変換するために使用するものです。
アドレス。 デフォルトでは、カーネル DTB が (アイドル/システム プロセスから) 使用されます。 を使用したい場合は、
別のプロセスの DTB でデータにアクセスする場合は、--dtb=ADDRESS にアドレスを指定します。
KDBG アドレスの設定 (これは Windows のみ) オプション)
ボラティリティは、ハードコーディングされた署名「KDBG」と
一連の健全性チェック。 これらの署名は、オペレーティング システムが機能するために重要ではありません。
したがって、マルウェアは、
サイン。 さらに、場合によっては、複数の「_KDDEBUGGER_DATA64」が存在する可能性があります (
たとえば、OS のメジャー アップデートを適用し、再起動しなかった場合など)、混乱を引き起こし、次のような問題が発生する可能性があります。
プロセスやモジュールのリストが間違っているなどの問題が発生します。 住所がわかれば
「_KDDEBUGGER_DATA64」を追加すると、--kdbg=ADDRESS で指定でき、これにより自動化された
スキャンします。 詳細については、kdbgscan プラグインを参照してください。
KPCR アドレスの設定 (これは Windows のみ) オプション)
システム上の CPU ごとに XNUMX つの KPCR (カーネル プロセッサ制御領域) があります。 ある程度のボラティリティ
プラグインはプロセッサごとの情報を表示します。 したがって、特定の CPU のデータを表示したい場合は、
たとえば、CPU 3 の代わりに CPU 1 を指定すると、--kpcr=ADDRESS を使用してその CPU の KPCR のアドレスを渡すことができます。
すべての CPU の KPCR を見つけるには、kpcrscan プラグインを参照してください。 また、Volatility 2.2 以降では、
idt や gdt などのプラグインの多くは、KPCR のリストを自動的に繰り返し処理します。
書き込みサポートを有効にする
Volatility での書き込みサポートは注意して使用する必要があります。 したがって、実際に有効にするには、次のことを行う必要があります。
コマンドラインで --write と入力するだけでなく、次のような質問に答えて「パスワード」を入力する必要があります。
というプロンプトが表示されます。 ほとんどの場合、書き込みサポートは使用しないほうがよいでしょう。
メモリダンプ内のデータの破損または変更。 ただし、これを可能にする特殊なケースが存在します。
本当に興味深い機能です。 たとえば、次のようにしてライブ システムから特定のマルウェアを駆除できます。
Firewire 経由で RAM に書き込むか、バイトにパッチを適用することで、ロックされたワークステーションに侵入する可能性があります。
winlogon DLL。
追加指定 プラグイン ディレクトリ
Volatility のプラグイン アーキテクチャでは、複数のディレクトリからプラグイン ファイルを一度にロードできます。 の中に
Volatility ソース コード、ほとんどのプラグインは Volatility/plugins にあります。 ただし、別のものがあります
サードパーティ開発者からの貢献のために予約されているディレクトリ (volatility/contrib)、または
サポートが弱く、デフォルトでは有効になっていないプラグイン。 これらのプラグインにアクセスするには、
コマンドラインで --plugins=contrib/plugins と入力します。 別のディレクトリを作成することもできます
コア内のファイルを追加/削除/変更することなく管理できる独自のプラグイン
揮発性ディレクトリ。
注意:
* Debian システムでは、contrib/plugins ディレクトリは /usr/share/volatility/contrib/plugins にあります。
* __init__.py ファイル (空でもかまいません) が存在する限り、サブディレクトリもトラバースされます。
それらの中で。
* --plugins へのパラメータは、次のようなプラグインを含む zip ファイルにすることもできます。
--plugins=myplugins.zip として。 プラグインのロード方法により、外部プラグイン ディレクトリ
または zip ファイルは、プラグイン固有の引数 (ファイル名を含む) の前に指定する必要があります。
プラグイン)。 例:
$ volatility --plugins=contrib/plugins -f XPSP3x86.vmem の例
出力形式の選択
デフォルトでは、プラグインは標準出力へのテキストレンダラーを使用します。 ファイルにリダイレクトしたい場合は、
もちろん、コンソールのリダイレクト (つまり > out.txt) を使用することも、--output-file=out.txt を使用することもできます。
--output=FORMAT も選択できる理由は、プラグインが出力を HTML としてレンダリングできるようにするためです。
JSON、SQL、または任意のものを選択します。 ただし、これらの代替出力形式を備えたプラグインはありません
使用するために事前に設定されているため、render_html、render_json、render_sql という名前の関数を追加する必要があります。
--output=HTML を使用する前に、それぞれを各プラグインに設定します。
プラグイン固有のオプション
多くのプラグインは、グローバル オプションから独立した独自の引数を受け入れます。 見るには
使用可能なオプションのリストを表示するには、コマンドラインでプラグイン名と -h/--help の両方を入力します。
$ ボラティリティ dlllist -h
デバッグモード
Volatility で期待どおりに何かが起こっていない場合は、-d/--debug を指定してコマンドを実行してみてください。
これにより、デバッグ メッセージを標準エラーに出力できるようになります。 より多くのデバッグ レベルにするには、次のように使用します。
pdb デバッガー)、コマンドに -d -d -d を追加します。
Volatility をライブラリとして使用する
Volatility をライブラリとして使用することは可能ですが、(
未来)。 現在、Python スクリプトから Volatility をインポートするには、次のサンプル コードを使用できます。
$パイソン
>>> volatility.conf を conf としてインポート
>>> volatility.registry をレジストリとしてインポート
>>> レジストリ.PluginImporter()
>>> config = conf.ConfObject()
>>> volatility.commands をコマンドとしてインポート
>>> volatility.addrspace を addrspace としてインポート
>>> registry.register_global_options(config、command.Command)
>>> registry.register_global_options(config, addrspace.BaseAddressSpace)
>>> config.parse_options()
>>> config.PROFILE="WinXPSP2x86"
>>> config.LOCATION = "file:///media/memory/private/image.dmp"
>>> volatility.plugins.taskmods を taskmods としてインポートする
>>> p = taskmods.PSList(config)
>>> p.calculate() の処理:
...印刷プロセス
例
利用可能なすべてのプラグイン、プロファイル、スキャナー チェック、およびアドレス スペースを表示するには、次の手順を実行します。
$ ボラティリティ --情報
MS Windows 8 SP0 で見つかったすべてのアクティブなプロセスを一覧表示するには 画像:
$ volatility -f win8.raw --profile=Win8SP0x86 pslist
MS Windows 8 SP0 で見つかったすべてのアクティブなプロセスを一覧表示するには 画像、タイムゾーンを使用:
$ volatility -f win8.raw --profile=Win8SP0x86 pslist --tz=アメリカ/サンパウロ
Linux 3.2.63 からカーネルバッファを表示するには 画像:
$ volatility -f mem.dd --profile=Linux_3_2_63_x64 linux_dmesg
注意事項
このマンページは、ボラティリティに関するいくつかのテストといくつかの公式文書に基づいています。 ために
その他の情報とチュートリアルについては、以下を参照してください。
· http://www.volatilityfoundation.org
・https://github.com/volatilityfoundation/乱高下/ wiki
onworks.net サービスを使用してオンラインでボラティリティを使用する