フォレンジック調査員は、LNK ショートカット ファイルを使用して、最近アクセスしたファイル (アクセス後に削除されたファイルを含む) に関するメタデータを回復します。最近の調査で、FireEye Mandiant は、攻撃者が Windows Explorer の検索結果に含まれるファイルにアクセスしたことを示す LNK ファイルを発見しました。私たちの経験では、これはフォレンジック アーティファクトの新しい組み合わせでした。標的のシステムに対する攻撃者の行動と目的をより完全に把握するのに役立つため、調査結果を共有できることを嬉しく思います。さらに、これらの調査結果は、内部関係者による脅威の場合にも活用され、ファイルを見つけて開くために使用されるパスを特定することもできます。
Windows LNK 形式
.lnk拡張子は、シェル アイテムと呼ばれるファイルのクラスに関連付けられています。これらのバイナリ形式のファイルには、Windows シェル(グラフィカル ユーザー インターフェイス)で他のデータ オブジェクトにアクセスするために使用できる情報が含まれています。
LNK ショートカット ファイルは、シェル アイテムの一種です。サポートされているアプリケーションからユーザーがファイルにアクセスすると、Windows オペレーティング システムによって自動的に作成されますが、ユーザーが手動で作成することもできます。通常、LNK ショートカット ファイルには、ファイル名とサイズ、元のパス、タイムスタンプ、ボリュームとシステム情報 (ドライブ タイプとシステム ホスト名など)、およびネットワーク情報 (ネットワーク共有パスなど) など、アクセスされたファイルに関するメタデータが含まれています。幸いなことに、これらのファイルを解析できるツールがあります。 Mandiant の内部では、FireEye エンドポイント セキュリティを利用して LNK ファイルを解析し、疑わしいユーザー検索用語を特定していますが、このブログ投稿では、Eric Zimmerman による LECmdを使用します。図 1 は、 LECmd.exeのコマンド ライン オプションを示しています。
LNK ショートカット ファイル内の解析されたメタデータは、システムでのユーザー アクティビティのプロファイリングや削除されたマルウェアへの参照の検索など、複数のユース ケースのフォレンジック調査に関連しています。
ユーザー検索 LNK ファイル
最近、Mandiant は、最初は認識できなかった形式の LNK ファイルに遭遇しました。ファイルは Windows Server 2012 R2 システムからのもので、図 2 に示すようなパスを持っていました。拡張子とファイル パスに基づいて、LNK ショートカット ファイルであると推測しました。ただし、その内容は私たちにはなじみがありませんでした。
C:Users<ユーザー>AppDataRoamingMicrosoftWindowsRecentpassw.lnk C:Users<ユーザー>AppDataRoamingMicrosoftWindowsRecentgov.lnk |
図 2: 見慣れない LNK ファイルの完全なファイル パス
前の例では、フォレンジック調査員は LNK ショートカット ファイル名を使用して、ユーザーがpasswまたはgovという名前のファイルを開いたと結論付けます。次に、 LECmdなどのツールを使用して、追加のメタデータを回復します。これにより、アクセスされたファイルの完全なファイル パスと、アクセスされたときのファイルのタイムスタンプなどのフォレンジック情報が提供されます。
ただし、以前の LNK ファイルでは、期待されるメタデータが明らかになりませんでした。図 3 は、 passw.lnkに対するLECmdの出力を示しています (わかりやすくするために一部の情報は省略されています)。
LECmd バージョン 1.3.2.1 著者: Eric Zimmerman (saericzimmerman@gmail.com) — ヘッダー — ファイルサイズ: 0 — ターゲット ID 情報 (形式: Type ==> Value) — 絶対パス:検索フォルダpassw -ユーザー プロパティ ビュー ==> 検索フォルダー -変数: ユーザー プロパティ ビュー ==> passw — エンドターゲット ID 情報 — — 余分なブロック情報 — >> プロパティ ストア データ ブロック (形式: GUIDID 説明 ==> 値) |
図 3: passw.lnk の LECmd.exe 出力
注目すべきは、LNK ショートカット ファイルに期待される情報が存在しないことです。ただし、ターゲット ID 情報セクションには、 Search FolderpasswやSearch Results in Local Disk (C:)などの興味深い文字列がありました。比較のために、図 4 では、テスト ファイルを使用した標準の LNK ショートカット ファイルの出力を強調表示しています。ターゲット ファイルのタイムスタンプ、ファイル サイズ、完全なファイル パス、およびその他の予想されるファイル メタデータが存在することに注意してください (わかりやすくするために一部の情報は省略されています)。
LECmd バージョン 1.3.2.1 著者: Eric Zimmerman (saericzimmerman@gmail.com) — ヘッダー — ファイルサイズ: 4 相対パス: ……….Desktoptest.txt — リンク情報 — >>ボリューム情報 — ターゲット ID 情報 (形式: Type ==> Value) — -ルート フォルダー: GUID ==> マイ コンピューター -ルート フォルダー: GUID ==> デスクトップ -ファイル ==> test.txt ——— ブロック 0 (Beef0004) ——— — エンドターゲット ID 情報 — — 余分なブロック情報 — >> トラッカー データベース ブロック ボリューム ドロイド: <ボリューム> |
図 4: 標準 LNK ショートカット ファイル test.txt の LECmd.exe 出力
幸いなことに、調査中にユーザーのNTUSER.DATレジストリ ファイルも解析し (Harlan Carvey のRegRipperを使用)、ユーザー エクスプローラーの検索履歴の詳細を示すWorldWheelQueryキーを確認しました。 passw.lnkファイルが急に面白くなりました!図 5 は、レジストリ キーから解析されたエントリを示しています。検索履歴には、LNK ファイルで確認したのと同じ用語passwが含まれていることに注意してください。
wordwheelquery v.20100330 SoftwareMicrosoftWindowsCurrentVersionExplorerWordWheelQuery MRUListEx 順でリストされた検索 14 シークレット |
図 5: ユーザーの NTUSER.DAT レジストリ ファイルから抽出された WorldWheelQuery キー
WorldWheelQueryレジストリ キーを介して、 MRUListExの順序に従って、 passwがユーザーの Explorer 検索履歴で 2 番目に新しい用語であることを特定しました。 MRUListExは、他の値が最近アクセスされた順序を一覧表示するレジストリ値です。つまり、エクスプローラで用語が検索された順序です。また、 passwは、 Search Results in Local Disk (C:)という文字列を含む異常な LNK ファイルのファイル名とも一致しました (図 3 を参照)。これらの詳細は、ユーザー エクスプローラーの検索の結果として LNK ファイルが作成されたことを示唆しているようです。そのため、これらを「ユーザー検索 LNK ファイル」と呼ぶようになりました。
ニュアンスと解釈
ユーザーの Explorer 検索履歴にリストされている用語を使用してシステムで LNK ファイルを検索した後、すべての用語がユーザー検索 LNK ファイルに関連付けられているわけではないことがわかりました。図 6 は、この検索の結果として特定された LNK ファイルとそれに付随するファイルの作成および変更のタイムスタンプを示しています。 WorldWheelQueryレジストリ キーを介して 15 件の検索が見つかりましたが、ユーザー検索の LNK ファイルは 4 件しかないことに注意してください。
2019-11-09 08:33:14 作成 変更 2019-11-09 09:29:11 作成 2019-11-09 08:38:29 作成 2019-11-13 06:57:03 作成 |
図 6: WorldWheelQuery Explorer の検索用語が関連付けられた LNK ファイル
さらに、同時に作成された LNK ファイルのペアが似たような名前であることに気付きました。例として、図 7 に、2019 年 11 月 9 日 08:38:29 UTC に作成された 2 つの LNK ファイルを示します。
C:Users<ユーザー>AppDataRoamingMicrosoftWindowsRecent passw .lnk C:Users<user>AppDataRoamingMicrosoftWindowsRecent passw ord.lnk |
図 7: 同時に作成された LNK ファイル
さらにテストを行った結果、ユーザーがこの検索の結果として生成されたファイルの 1 つを開いた場合に、システムが Explorer 検索の結果としてユーザー検索 LNK ファイルを作成したことが判明しました。検索によって返されたファイルをユーザーが開かなかった場合、ユーザー検索 LNK ファイルが作成されませんでした。
この例では、 password.lnkファイルには、LNK ショートカット ファイルで予想されるように、ターゲット ファイルのメタデータが含まれており、 T:ディレクトリにあるpassword.txtという名前のターゲット ファイルを参照しています。 passw.lnkには、前述のように、ローカル ディスク (C:) 内の検索結果を参照する絶対パスSearch Folderpasswを含む、ユーザー検索 LNK ファイルの予想されるメタデータのみが含まれていました。ただし、このディレクトリの不一致(ローカル ディスク (C:) の検索結果のユーザー検索 LNK ファイル検索コンテキストと、 T:ドライブにある LNK ショートカット ファイル) は、実際には予想どおりです。
LNK ショートカット ファイルには、最近アクセスしたファイルのメタデータが含まれており、ユーザー検索の LNK ファイルについても同様であることがわかりました。 passw.lnkの作成タイムスタンプと変更タイムスタンプの違いに基づいて、ユーザーが少なくとも 1 つの他のインスタンスでpasswを検索し (これら 2 つの時点の間に検索が行われたかどうかを結論付けることができません)、そのファイルからファイルを開いたことがわかります。の検索結果。これは、図 8 のpasswユーザー検索 LNK ファイルのタイムスタンプに見られます。
2019-11-09 08:38:29 作成 2019-11-13 06:47:56 変更 C:Users<ユーザー>AppDataRoamingMicrosoftWindowsRecentpassw.lnk |
図 8: passw.lnk の作成と変更のタイムスタンプ
passwの 2 回目の検索は、2019 年 11 月 13 日に発生しました。この例では、ユーザーは Windows エクスプローラーの検索を使用してpasswという用語を再度検索しましたが、今回はC:ドライブのコンテキスト内で検索しました (ローカルの検索結果Disk (C:) ) をクリックし、続いてpassword2.txtという名前のドキュメントをクリックします。 password2.lnkに対するLECmdの結果を図 9 に示します (明確にするため、およびクライアント情報を保護するために一部の情報は省略されています)。ユーザー検索 LNK ファイルに埋め込まれた情報は、ユーザー検索 LNK ファイルと同時に作成される LNK ショートカット ファイルにも埋め込まれていることに注意してください (下線付きのテキスト)。 passw.lnkの検索コンテキストとpassword2.lnkの完全なファイル パスの場所の両方が一致します: C: 。
LECmd バージョン 1.3.2.1 著者: Eric Zimmerman (saericzimmerman@gmail.com) — ヘッダー — ファイルサイズ: 19 相対パス: …………..<ファイルパス>password2.txt — リンク情報 — >>ボリューム情報 ネットワーク共有情報 ローカル パス: C:<最上位フォルダー> — ターゲット ID 情報 (形式: Type ==> Value) — 絶対パス:検索フォルダpasswpassword2 -ユーザー プロパティ ビュー ==> 検索フォルダー -変数: ユーザー プロパティ ビュー ==> passw -変数: ユーザー プロパティ ビュー ==> password2 — エンドターゲット ID 情報 — — 余分なブロック情報 — >> プロパティ ストア データ ブロック (形式: GUIDID 説明 ==> 値) >> トラッカー データベース ブロック ボリューム ドロイド: <ボリューム> |
図 9: password2.lnk の LECmd.exe 出力
ここでのポイントは、ユーザー検索 LNK ファイルは検索語にのみ関連し、検索コンテキストには関連しないということです。これは、後でユーザーが検索結果を開いたときに同じ検索語 ( passwなど) を検索することを意味しますが、別のドライブまたはディレクトリでは、ユーザー検索 LNK ファイルの変更タイムスタンプと、ユーザー検索に含まれる検索コンテキストが変更されます。 LNK ファイル。これは、完全なファイル パスではなく単純なファイル名に依存する LNK ショートカット ファイルと歩調を合わせます。
タイムスタンプの解釈
これまで、 WorldWheelQueryレジストリ キーの構造と Windows レジストリで利用可能なタイムスタンプが原因で、調査者はレジストリ キーの最終変更時刻を使用して、最新の用語の検索時刻を特定することしかできませんでした。ユーザー検索 LNK ファイルでは、新しいタイムスタンプを使用して、ユーザーがその後検索からファイルを開いたときに、ユーザーが特定の用語を検索した時間を特定できます。さらに、ユーザー検索 LNK ファイルとWorldWheelQuery MRUlistExレジストリ キー値からの証拠を組み合わせて、ユーザーが完了した検索の順序を推測できます。たとえば、ユーザーは gov ( WorldWheelQuery検索インデックス 4)、 passw (インデックス 6)、 private (インデックス 7) を検索したため、 air (インデックス 5) も検索したが、結果のファイルは開かなかったと推測できます。この検索。
結論
LNK ショートカット ファイルは、アクセス時にファイルおよび関連するファイル メタデータへのユーザー アクセスを判断するための信頼できる方法です。ユーザー検索 LNK ファイルを使用すると、Windows エクスプローラーの検索履歴の結果を充実させ、ユーザー エクスプローラー検索の追加のタイムスタンプと検索からのファイルへのその後のアクセスを通じて、ユーザー アクティビティのより詳細な全体像を取得できるようになりました。
謝辞
Phillip Kealy と William Ballenthin のテクニカル レビューと全体的なプレゼンテーションに関するフィードバックに感謝します。
参照: https://www.mandiant.com/resources/blog/the-missing-lnk-correlating-user-search-lnk-files
Comments