hacktricks/forensics/basic-forensic-methodology/windows-forensics/README.md

33 KiB
Raw Blame History

Windows Artifacts

Windows Artifacts

ゼロからヒーローまでAWSハッキングを学ぶ htARTEHackTricks AWS Red Team Expert

HackTricksをサポートする他の方法

一般的なWindowsアーティファクト

Windows 10通知

パス\Users\<username>\AppData\Local\Microsoft\Windows\Notificationsには、Windows Anniversaryより前のappdb.datまたはWindows Anniversary以降のwpndatabase.dbというデータベースがあります。

このSQLiteデータベース内には、興味深いデータを含む可能性があるすべての通知XML形式を含むNotificationテーブルがあります。

タイムライン

タイムラインは、訪れたWebページ、編集されたドキュメント、実行されたアプリケーションの時間順の履歴を提供するWindowsの特性です。

データベースは、パス\Users\<username>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.dbにあります。このデータベースは、SQLiteツールまたはWxTCmdというツールで開くことができます。これにより、2つのファイルが生成され、TimeLine Explorerで開くことができます。

ADS代替データストリーム

ダウンロードされたファイルには、ADS Zone.Identifierが含まれており、それがイントラネット、インターネットなどからどのようにダウンロードされたかを示しています。一部のソフトウェアブラウザなどは、通常、ファイルがダウンロードされたURLなどのさらに多くの情報を追加します。

ファイルのバックアップ

リサイクルビン

Vista/Win7/Win8/Win10では、リサイクルビンはドライブのルートにあるフォルダ**$Recycle.bin**にあります(C:\$Recycle.bin)。
このフォルダでファイルが削除されると、2つの特定のファイルが作成されます

  • $I{id}: ファイル情報(削除された日付)
  • $R{id}: ファイルの内容

これらのファイルを使用して、ツールRifiutiを使用して、削除されたファイルの元のアドレスと削除された日付を取得できますVista Win10用にrifiuti-vista.exeを使用します)。

.\rifiuti-vista.exe C:\Users\student\Desktop\Recycle

ボリュームシャドウコピー

Shadow Copyは、Microsoft Windowsに含まれる技術で、コンピュータファイルやボリュームのバックアップコピーやスナップショットを作成できます。これは、使用中であっても可能です。

これらのバックアップは通常、ファイルシステムのルートにある\System Volume Informationにあり、名前は以下の画像に示すUIDで構成されています:

ArsenalImageMounterを使用してフォレンジックイメージをマウントすると、ツールShadowCopyViewを使用してシャドウコピーを検査し、シャドウコピーのバックアップからファイルを抽出することができます。

レジストリエントリHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestoreには、バックアップしないファイルとキーが含まれています:

レジストリHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSSには、Volume Shadow Copiesに関する構成情報も含まれています。

Officeの自動保存ファイル

Officeの自動保存ファイルは、次の場所にあります: C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\

シェルアイテム

シェルアイテムは、別のファイルにアクセスする方法に関する情報を含むアイテムです。

最近のドキュメントLNK

Windowsは、ユーザーがファイルを開いたり使用したり作成したりすると、これらのショートカット自動的に作成します:

  • Win7-Win10: C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\
  • Office: C:\Users\\AppData\Roaming\Microsoft\Office\Recent\

フォルダが作成されると、そのフォルダへのリンク、親フォルダへのリンク、祖父フォルダへのリンクも作成されます。

これら自動的に作成されたリンクファイルには、ファイルフォルダか、そのファイルのMACタイム、ファイルが保存されている場所のボリューム情報ターゲットファイルのフォルダが含まれる情報があります。これらの情報は、削除された場合にこれらのファイルを回復するのに役立ちます。

また、リンクファイルの作成日は、元のファイルが最初に使用された時間であり、リンクファイルの変更日は、元のファイルが最後に使用された時間です。

これらのファイルを検査するには、LinkParserを使用できます。

このツールでは、2つのセットのタイムスタンプが見つかります:

  • 最初のセット:
  1. FileModifiedDate
  2. FileAccessDate
  3. FileCreationDate
  • 2番目のセット:
  1. LinkModifiedDate
  2. LinkAccessDate
  3. LinkCreationDate.

最初のセットのタイムスタンプは、ファイル自体のタイムスタンプを参照します。2番目のセットは、リンクされたファイルのタイムスタンプを参照します。

同じ情報を取得するには、Windows CLIツールLECmd.exeを実行できます。

LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs

ジャンプリスト

これは、アプリケーションごとに示される最近使用されたファイルのリストです。各アプリケーションでアクセスできる最近使用されたファイルのリストです。これらは自動的に作成されるか、カスタムで作成されることがあります。

自動的に作成されたジャンプリストは、C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\に保存されます。ジャンプリストは、初期IDがアプリケーションのIDである形式に従って名前が付けられます。

カスタムジャンプリストは、C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\に保存され、通常はアプリケーションによって作成されます。これは、ファイルに何か重要なことが起こったためかもしれません(お気に入りとしてマークされたかもしれません)。

どのジャンプリストの作成時刻は、ファイルにアクセスされた最初の時間を示し、変更時刻は最後の時間を示します。

JumplistExplorerを使用してジャンプリストを調査できます。

JumplistExplorerによって提供されるタイムスタンプは、ジャンプリストファイル自体に関連しています

シェルバッグ

こちらのリンクを参照して、シェルバッグとは何かを学びます。

Windows USBの使用

USBデバイスが使用されたことを特定することが可能です。これは次のようにして行われます

  • Windows最近使用したフォルダ
  • Microsoft Office最近使用したフォルダ
  • ジャンプリスト

一部のLNKファイルは、元のパスを指す代わりにWPDNSEフォルダを指します

フォルダWPDNSE内のファイルは、元のファイルのコピーであり、したがってPCの再起動を行うと消えます。GUIDはシェルバッグから取得されます。

レジストリ情報

USB接続されたデバイスに関する興味深い情報を含むレジストリキーを確認するには、このページを参照してください。

setupapi

USB接続が行われたタイムスタンプを取得するには、ファイルC:\Windows\inf\setupapi.dev.logを確認してください(Section startを検索)。

USB Detective

USBDetectiveを使用して、イメージに接続されたUSBデバイスに関する情報を取得できます。

プラグアンドプレイのクリーンアップ

「プラグアンドプレイのクリーンアップ」として知られるスケジュールされたタスクは、古いドライバーバージョンを削除するために主に設計されています。最新のドライバーパッケージバージョンを保持することが明示されているにもかかわらず、オンラインソースによると、過去30日間非アクティブだったドライバーも対象となる可能性があります。その結果、過去30日間接続されていないリムーバブルデバイスのドライバーは削除の対象となる可能性があります。

このタスクは次の場所にあります: C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup

タスクの内容を示すスクリーンショットが提供されています:

タスクの主要なコンポーネントと設定:

  • pnpclean.dll: このDLLは実際のクリーンアッププロセスを担当しています。
  • UseUnifiedSchedulingEngine: TRUEに設定されており、一般的なタスクスケジューリングエンジンが使用されていることを示しています。
  • MaintenanceSettings:
  • Period ('P1M'): タスクスケジューラに、定期的な自動メンテナンス中に月次のクリーンアップタスクを開始するよう指示します。
  • Deadline ('P2M'): タスクスケジューラに、2か月連続でタスクが失敗した場合、緊急時の自動メンテナンス中にタスクを実行するよう指示します。

この構成により、ドライバーの定期的なメンテナンスとクリーンアップが確保され、連続した失敗の場合にタスクを再試行するための規定があります。

詳細はこちらを参照: https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html

メール

メールには2つの興味深い部分が含まれます: ヘッダーとコンテンツです。ヘッダーには次のような情報が含まれます:

  • メールを送信したメールアドレス、IP、メールをリダイレクトしたメールサーバー
  • メールがいつ送信されたか

また、ReferencesIn-Reply-Toヘッダー内には、メッセージのIDが含まれています

Windowsメールアプリ

このアプリケーションは、メールをHTMLまたはテキストで保存します。メールは\Users\<username>\AppData\Local\Comms\Unistore\data\3\内のサブフォルダ内に保存され、.dat拡張子で保存されます。

メールのメタデータ連絡先は、EDBデータベース内で見つけることができます:\Users\<username>\AppData\Local\Comms\UnistoreDB\store.vol

ファイルの拡張子を.volから.edbに変更し、ESEDatabaseViewツールを使用して開くことができます。Messageテーブル内でメールを確認できます。

Microsoft Outlook

ExchangeサーバーやOutlookクライアントが使用されている場合、いくつかのMAPIヘッダーが存在します

  • Mapi-Client-Submit-Time: メールが送信されたシステムの時間
  • Mapi-Conversation-Index: スレッドの子メッセージ数とスレッドの各メッセージのタイムスタンプ
  • Mapi-Entry-ID: メッセージ識別子
  • Mappi-Message-FlagsおよびPr_last_Verb-Executed: MAPIクライアントに関する情報メッセージが読まれたか、未読か、返信済みか、リダイレクトされたか、オフィスを外出中かなど

Microsoft Outlookクライアントでは、送信/受信したメッセージ、連絡先データ、カレンダーデータが次の場所に保存されます:

  • %USERPROFILE%\Local Settings\Application Data\Microsoft\OutlookWinXP
  • %USERPROFILE%\AppData\Local\Microsoft\Outlook

レジストリパスHKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlookは使用されているファイルを示します。

PSTファイルを開くには、Kernel PST Viewerツールを使用できます。

Microsoft Outlook OSTファイル

Microsoft OutlookがIMAPまたはExchangeサーバーと構成されている場合、OSTファイルが生成され、PSTファイルと同様の情報が保存されます。このファイルはサーバーと同期され、過去12か月間のデータを最大50GBまで保持し、PSTファイルと同じディレクトリに保存されます。OSTファイルを表示するには、Kernel OST viewerを利用できます。

添付ファイルの取得

失われた添付ファイルは次の場所から回復できる場合があります:

  • IE10の場合:%APPDATA%\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook
  • IE11以降の場合:%APPDATA%\Local\Microsoft\InetCache\Content.Outlook

Thunderbird MBOXファイル

Thunderbirdはデータを保存するためにMBOXファイルを使用し、\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profilesに保存されます。

画像サムネイル

  • Windows XPおよび8-8.1:サムネイルが表示されるフォルダにアクセスすると、削除後も画像プレビューを保存するthumbs.dbファイルが生成されます。
  • Windows 7/10UNCパスを介してネットワーク経由でアクセスすると、thumbs.dbが作成されます。
  • Windows Vista以降:サムネイルプレビューは%userprofile%\AppData\Local\Microsoft\Windows\Explorerに集約され、thumbcache_xxx.dbという名前のファイルに保存されます。これらのファイルを表示するためのツールとして、ThumbsviewerThumbCache Viewerがあります。

Windowsレジストリ情報

Windowsレジストリは、広範なシステムおよびユーザーのアクティビティデータを保存しており、次の場所にファイルが保存されています

  • HKEY_LOCAL_MACHINEのさまざまなサブキーに対しては%windir%\System32\Config
  • HKEY_CURRENT_USERに対しては%UserProfile%{User}\NTUSER.DAT
  • Windows Vista以降では、HKEY_LOCAL_MACHINEレジストリファイルは%Windir%\System32\Config\RegBack\にバックアップされます。
  • さらに、プログラムの実行情報は、Windows VistaおよびWindows 2008 Server以降では%UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DATに保存されます。

ツール

いくつかのツールがレジストリファイルを分析するのに役立ちます:

  • レジストリエディタ: Windowsにインストールされています。現在のセッションのWindowsレジストリをナビゲートするためのGUIです。
  • Registry Explorer: レジストリファイルをロードし、GUIでナビゲートすることができます。興味深い情報を含むキーをハイライトするブックマークが含まれています。
  • RegRipper: ロードされたレジストリをナビゲートするためのGUIがあり、ロードされたレジストリ内の興味深い情報をハイライトするプラグインも含まれています。
  • Windows Registry Recovery: ロードされたレジストリから重要な情報を抽出できる別のGUIアプリケーションです。

削除された要素の回復

キーが削除されると、そのようにマークされますが、そのスペースが必要になるまで削除されません。そのため、Registry Explorerなどのツールを使用すると、これらの削除されたキーを回復することが可能です。

最終書き込み時刻

各キー値には、最後に変更された時刻を示すタイムスタンプが含まれています。

SAM

ファイル/ハイブSAMには、システムのユーザー、グループ、ユーザーパスワードのハッシュが含まれています。

SAM\Domains\Account\Usersでは、ユーザー名、RID、最終ログイン、最終失敗ログオン、ログインカウンター、パスワードポリシー、アカウント作成日時を取得できます。ハッシュを取得するには、ファイル/ハイブSYSTEMも必要です。

Windowsレジストリの興味深いエントリ

{% content-ref url="interesting-windows-registry-keys.md" %} interesting-windows-registry-keys.md {% endcontent-ref %}

実行されたプログラム

基本的なWindowsプロセス

この記事では、疑わしい動作を検出するための一般的なWindowsプロセスに

.\PECmd.exe -d C:\Users\student\Desktop\Prefetch --html "C:\Users\student\Desktop\out_folder"

Superprefetch

Superprefetchは、prefetchと同じ目標を持ち、次に読み込まれるものを予測してプログラムを高速に読み込むことです。ただし、prefetchサービスを置き換えるものではありません。
このサービスは、C:\Windows\Prefetch\Ag*.dbにデータベースファイルを生成します。

これらのデータベースには、プログラムの名前実行回数開かれたファイルアクセスされたボリューム完全なパス時間枠タイムスタンプが含まれています。

この情報には、CrowdResponseツールを使用してアクセスできます。

SRUM

System Resource Usage MonitorSRUMは、プロセスによって消費されるリソースを監視します。W8に登場し、データはC:\Windows\System32\sru\SRUDB.datにあるESEデータベースに保存されます。

次の情報が提供されます:

  • AppIDとパス
  • プロセスを実行したユーザー
  • 送信バイト数
  • 受信バイト数
  • ネットワークインターフェース
  • 接続期間
  • プロセス期間

この情報は60分ごとに更新されます。

このファイルからデータを取得するには、srum_dumpツールを使用できます。

.\srum_dump.exe -i C:\Users\student\Desktop\SRUDB.dat -t SRUM_TEMPLATE.xlsx -o C:\Users\student\Desktop\srum

AppCompatCache (ShimCache)

AppCompatCache、またはShimCacheとしても知られるものは、Microsoftが開発したApplication Compatibility Databaseの一部であり、アプリケーションの互換性の問題に対処するためのものです。このシステムコンポーネントは、次のファイルメタデータを記録します:

  • ファイルの完全なパス
  • ファイルのサイズ
  • $Standard_InformationSIの下の最終更新時刻
  • ShimCacheの最終更新時刻
  • プロセス実行フラグ

このようなデータは、オペレーティングシステムのバージョンに基づいてレジストリ内の特定の場所に保存されます:

  • XPの場合、データはSYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCacheに保存され、96エントリを格納できます。
  • Server 2003、およびWindowsバージョン2008、2012、2016、7、8、および10の場合、ストレージパスはSYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCacheで、それぞれ512および1024エントリを収容します。

保存された情報を解析するには、AppCompatCacheParserツールの使用をお勧めします。

Amcache

Amcache.hveファイルは、システムで実行されたアプリケーションの詳細を記録するレジストリハイブです。通常、C:\Windows\AppCompat\Programas\Amcache.hveにあります。

このファイルは、実行されたプロセスの記録、実行可能ファイルへのパス、およびそれらのSHA1ハッシュを保存するために注目されています。この情報は、システム上のアプリケーションの活動を追跡するために貴重です。

Amcache.hveからデータを抽出して分析するには、AmcacheParserツールを使用できます。次のコマンドは、Amcache.hveファイルの内容を解析し、結果をCSV形式で出力するための使用例です:

AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\genericUser\Desktop\outputFolder

最も興味深いCSVファイルは、Amcache_Unassociated file entriesです。

RecentFileCache

このアーティファクトは、W7にのみC:\Windows\AppCompat\Programs\RecentFileCache.bcfにあり、一部のバイナリの最近の実行に関する情報を含んでいます。

ファイルを解析するには、RecentFileCacheParseツールを使用できます。

スケジュールされたタスク

これらはC:\Windows\TasksまたはC:\Windows\System32\Tasksから抽出し、XMLとして読むことができます。

サービス

これらはSYSTEM\ControlSet001\Servicesのレジストリ内にあります。実行される内容と実行されるタイミングを確認できます。

Windowsストア

インストールされたアプリケーションは\ProgramData\Microsoft\Windows\AppRepository\にあります。
このリポジトリには、データベース内の**StateRepository-Machine.srdという名前の各インストールされたアプリケーションに関するログ**があります。

このデータベースのApplicationテーブル内には、"Application ID"、"PackageNumber"、"Display Name"という列があります。これらの列には、プリインストールされたアプリケーションとインストールされたアプリケーションに関する情報が含まれており、インストールされたアプリケーションのIDが連続しているかどうかを確認できます。

また、レジストリパスSoftware\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\内にインストールされたアプリケーションを見つけることができます。
そして、アンインストールされたアプリケーションSoftware\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\にあります。

Windowsイベント

Windowsイベントに表示される情報は次のとおりです

  • 何が起こったか
  • タイムスタンプUTC + 0
  • 関与するユーザー
  • 関与するホストホスト名、IP
  • アクセスされたアセット(ファイル、フォルダ、プリンター、サービス)

ログは、Windows Vistaより前ではC:\Windows\System32\configに、Windows Vista以降ではC:\Windows\System32\winevt\Logsにあります。Windows Vistaより前では、イベントログはバイナリ形式であり、その後はXML形式であり、.evtx拡張子を使用します。

イベントファイルの場所は、SYSTEMレジストリ内の**HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}**にあります。

Windowsイベントビューアーeventvwr.msc)やEvent Log ExplorerEvtx Explorer/EvtxECmdなどの他のツールで表示できます。

Windowsセキュリティイベントの理解

セキュリティ構成ファイルに記録されるアクセスイベントは、C:\Windows\System32\winevt\Security.evtxにあります。このファイルのサイズは調整可能であり、容量が達すると古いイベントが上書きされます。記録されるイベントには、ユーザーログインとログオフ、ユーザーアクション、セキュリティ設定の変更、ファイル、フォルダ、共有アセットへのアクセスが含まれます。

ユーザー認証のための主要なイベントID

  • EventID 4624: ユーザーが正常に認証されたことを示します。
  • EventID 4625: 認証の失敗を示します。
  • EventIDs 4634/4647: ユーザーログオフイベントを表します。
  • EventID 4672: 管理特権でのログインを示します。

EventID 4634/4647内のサブタイプ

  • Interactive (2): 直接ユーザーログイン。
  • Network (3): 共有フォルダへのアクセス。
  • Batch (4): バッチプロセスの実行。
  • Service (5): サービスの起動。
  • Proxy (6): プロキシ認証。
  • Unlock (7): パスワードで画面のロック解除。
  • Network Cleartext (8): 明示的なパスワード送信、主にIISから。
  • New Credentials (9): アクセスのための異なる資格情報の使用。
  • Remote Interactive (10): リモートデスクトップまたはターミナルサービスへのログイン。
  • Cache Interactive (11): ドメインコントローラーに連絡せずにキャッシュされた資格情報でのログイン。
  • Cache Remote Interactive (12): キャッシュされた資格情報でのリモートログイン。
  • Cached Unlock (13): キャッシュされた資格情報でのロック解除。

EventID 4625のステータスおよびサブステータスコード

  • 0xC0000064: ユーザー名が存在しない - ユーザー名の列挙攻撃を示す可能性があります。
  • 0xC000006A: 正しいユーザー名が間違ったパスワード - パスワードの推測または総当たり攻撃の試行が考えられます。
  • 0xC0000234: ユーザーアカウントがロックアウトされている - 多数の失敗したログインをもたらす総当たり攻撃の結果として発生する可能性があります。
  • 0xC0000072: アカウントが無効になっている - 無効になったアカウントへの不正アクセス試行。
  • 0xC000006F: 許可された時間外のログオン - 設定されたログイン時間外にアクセスを試みることは、不正アクセスの可能性を示すかもしれません。
  • 0xC0000070: ワークステーションの制限の違反 - 許可されていない場所からのログイン試行。
  • 0xC0000193: アカウントの有効期限切れ - 期限切れのユーザーアカウントでのアクセス試行。
  • 0xC0000071: パスワードの有効期限切れ - 期限切れのパスワードでのログイン試行。
  • 0xC0000133: 時間同期の問題 - クライアントとサーバー間の大きな時間のずれは、パスザチケットなどの高度な攻撃の兆候となる可能性があります。
  • 0xC0000224: 強制的なパスワード変更が必要 - 頻繁な強制的な変更は、アカウントセキュリティを不安定にする試みを示す可能性があります。
  • 0xC0000225: セキュリティ問題ではなく、システムのバグを示します。
  • 0xC000015b: 拒否されたログオンタイプ - ユーザーがサービスログオンを実行しようとするなど、許可されていないログオンタイプでのアクセス試行。

EventID 4616:

  • 時間の変更: システム時間の変更、イベントのタイムラインを曖昧にする可能性があります。

EventID 6005および6006:

  • システムの起動およびシャットダウン: EventID 6005はシステムの起動を示し、EventID 6006はシャットダウンを示します。

EventID 1102:

  • ログの削除: 不正行為を隠すための赤信号であるセキュリティログのクリア。

USBデバイストラッキングのためのEventID

  • 20001 / 20003 / 10000: USBデバイスの初回接続。
  • 10100: USBドライバーの更新。
  • EventID 112: USBデバイスの挿入時刻。

これらのログインタイプや資格情報ダンプの機会をシミュレートする実践的な例については、Altered Securityの詳細ガイドを参照してください。

イベントの詳細、特にEvent ID 4625でのステータスおよびサブステータスコードは、イベントの原因に関するさらなる洞察を提供します。

Windowsイベントの回復

削除されたWindowsイベントを回復する可能性を高めるためには、疑わしいコンピューターの電源を直接抜いて電源を切ることをお勧めします。.evtx拡張子を指定する回復ツールであるBulk_extractorを使用して、このようなイベントを回復しようとすることをお勧めします。

Windowsイベントを通じた一般的な攻撃の特定

一般的なサイバー攻撃を特定するためにWindowsイベントIDを利用する包括的なガイドについては、Red Team Recipeを参照してください。

総当たり攻撃

複数のEventID 4625レコードによって識別され、攻撃が成功した場合はEventID 4624が続きます。

時間の変更

EventID 4616によって記録され、システム時間の変更はフォレンジック分析を複雑にします。

USBデバイストラッキング

USBデバイストラッキングのための有用なシステムイベントIDには、初回使用のための20001/20003/10000、ドライバー更新のための10100、および挿入タイムスタンプのためのDeviceSetupManagerからのEventID 112が含まれます。

システム電源イベント

EventID 6005はシステムの起動を示し、EventID 6006はシャットダウンを示します。

ログの削除

セキュリティEventID 1102はログの削除を示し、フォレンジック分析にとって重要なイベントです。