Python-digital-forensics-important-artifacts-in-ms-windows
Windows-IIの重要なアーティファクト
この章では、Windowsの重要なアーティファクトとPythonを使用した抽出方法について説明します。
ユーザー活動
さまざまなユーザーアクティビティを保存するための NTUSER.DAT ファイルを持つWindows。 すべてのユーザープロファイルには、 NTUSER.DAT のようなハイブがあります。このハイブには、そのユーザーに特に関連する情報と構成が保存されます。 したがって、法医学アナリストによる調査の目的には非常に有用です。
次のPythonスクリプトは、システム上のユーザーのアクションを調べるために NTUSER.DAT のキーの一部を解析します。 先に進む前に、Pythonスクリプトの場合、サードパーティのモジュール、つまり Registry、pytsk3 、pyewfおよび Jinja2 をインストールする必要があります。 pipを使用してインストールできます。
次の手順に従って、 NTUSER.DAT ファイルから情報を抽出できます-
- まず、システム内のすべての NTUSER.DAT ファイルを検索します。
- 次に、各 NTUSER.DAT ファイルの WordWheelQuery、TypePathおよびRunMRU キーを解析します。
- 最後に、 Jinja2 fmoduleを使用して、既に処理されたこれらのアーティファクトをHTMLレポートに書き込みます。
Pythonコード
この目的のためにPythonコードを使用する方法を見てみましょう-
まず、次のPythonモジュールをインポートする必要があります-
次に、コマンドラインハンドラーの引数を指定します。 ここでは、3つの引数を受け入れます-最初は証拠ファイルへのパス、2番目は証拠ファイルのタイプ、3番目はHTMLレポートへの望ましい出力パスです、以下に示すように-
次に、示されているように、すべての NTUSER.DAT ファイルを検索するための* main()*関数を定義しましょう-
今、私たちは NTUSER.DAT ファイルでキーを見つけようとし、それを見つけたら、以下に示すようにユーザー処理機能を定義します-
今、次のように* write_html()*メソッドに辞書オブジェクトとそのパスを渡します-
次に、 pytsk ファイルハンドルを取得し、 StringIO クラスを介してRegistryクラスに読み込むメソッドを定義します。
今、私たちは次のように NTUSER.DAT ファイルから WordWheelQuery キーを解析して処理する関数を定義します-
ここで、次のように NTUSER.DAT ファイルから TypedPaths キーを解析および処理する関数を定義します-
今、私たちは次のように NTUSER.DAT ファイルから RunMRU キーを解析して処理する関数を定義します-
さて、次の機能はHTMLレポートの作成を処理します-
最後に、レポート用のHTMLドキュメントを作成できます。 上記のスクリプトを実行した後、NTUSER.DATファイルからHTMLドキュメント形式の情報を取得します。
LINKファイル
ショートカットファイルは、ユーザーまたはオペレーティングシステムが、頻繁に使用、ダブルクリック、または接続ストレージなどのシステムドライブからアクセスされるファイルのショートカットファイルを作成するときに作成されます。 このような種類のショートカットファイルは、リンクファイルと呼ばれます。 これらのリンクファイルにアクセスすることにより、調査員はこれらのファイルにアクセスした時間や場所などのウィンドウのアクティビティを見つけることができます。
これらのWindows LINKファイルから情報を取得するために使用できるPythonスクリプトについて説明しましょう。
Pythonスクリプトの場合、サードパーティのモジュール、つまり pylnk、pytsk3、pyewf をインストールします。 次の手順に従って、 lnk ファイルから情報を抽出できます。
- まず、システム内で lnk ファイルを検索します。
- 次に、ファイルを反復処理して、そのファイルから情報を抽出します。
- さて、最後にこの情報をCSVレポートに追加する必要があります。
Pythonコード
この目的のためにPythonコードを使用する方法を見てみましょう-
まず、次のPythonライブラリをインポートします-
次に、コマンドラインハンドラーの引数を指定します。 ここでは、3つの引数を受け入れます。1つ目は証拠ファイルへのパス、2つ目は証拠ファイルのタイプ、3つ目はCSVレポートへの望ましい出力パスです(以下を参照)-
次に、 TSKUtil のオブジェクトを作成して証拠ファイルを解釈し、ファイルシステムを反復処理して、 lnk で終わるファイルを見つけます。 それは次のように* main()*関数を定義することで実行できます-
今、次のコードの助けを借りて、次のような関数を作成して lnk ファイルを反復処理します-
次に、2つの関数を定義する必要があります。1つは pytsk ファイルオブジェクトを開き、もう1つは以下に示すようにCSVレポートの作成に使用されます-
上記のスクリプトを実行した後、CSVレポートで検出された lnk ファイルから情報を取得します-
ファイルのプリフェッチ
アプリケーションが特定の場所から初めて実行されるたびに、Windowsは prefetch files を作成します。 これらは、アプリケーションの起動プロセスを高速化するために使用されます。 これらのファイルの拡張子は .PF で、*” \ Root \ Windows \ Prefetch” *フォルダーに保存されます。
デジタルフォレンジックの専門家は、ユーザーの詳細とともに、指定された場所からのプログラム実行の証拠を明らかにすることができます。 プリフェッチファイルは、プログラムが削除またはアンインストールされた後でもエントリが残るため、審査官にとって有用なアーティファクトです。
以下に示すように、Windowsプリフェッチファイルから情報を取得するPythonスクリプトについて説明しましょう-
Pythonスクリプトの場合、サードパーティのモジュール、つまり pylnk、pytsk3 および unicodecsv をインストールします。 前の章で説明したPythonスクリプトでこれらのライブラリを使用したことを思い出してください。
- まず、*。pf *拡張ファイルまたはプリフェッチファイルをスキャンします。
- 次に、署名検証を実行して、誤検知を排除します。
- 次に、Windowsプリフェッチファイル形式を解析します。 これは、Windowsバージョンによって異なります。 たとえば、Windows XPでは17、Windows VistaおよびWindows 7では23、Windows 8.1では26、Windows 10では30です。
- 最後に、解析結果をCSVファイルに書き込みます。
Pythonコード
この目的のためにPythonコードを使用する方法を見てみましょう-
まず、次のPythonライブラリをインポートします-
次に、コマンドラインハンドラーの引数を指定します。 ここでは、2つの引数を受け入れます。1つ目は証拠ファイルへのパス、2つ目は証拠ファイルのタイプです。 また、プリフェッチファイルをスキャンするパスを指定するためのオプションの引数も受け入れます-
次に、 TSKUtil のオブジェクトを作成して証拠ファイルを解釈し、ファイルシステムを反復処理して、。pf *で終わるファイルを見つけます。 それは次のように main()*関数を定義することで実行できます-
次に、以下に示すように署名の検証を行うメソッドを定義します-
次に、Windowsプリフェッチファイルの処理を開始します。 ここでは、Windows XPプリフェッチファイルの例を取り上げています-
今、次のように構造体を使用して、プリフェッチされたファイル内に埋め込まれたデータを抽出します-
Windows XPのプリフェッチバージョンを提供しましたが、他のWindowsのプリフェッチバージョンに遭遇した場合はどうでしょうか。 その後、次のようにエラーメッセージを表示する必要があります-
今、次のようにCSVレポートに結果を書き込むための方法を定義します-
上記のスクリプトを実行した後、Windows XPバージョンのプリフェッチファイルからスプレッドシートに情報を取得します。