Windows Artifacts
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
パス \Users\<username>\AppData\Local\Microsoft\Windows\Notifications
には、データベース appdb.dat
(Windows アニバーサリー前)または wpndatabase.db
(Windows アニバーサリー後)があります。
この SQLite データベース内には、興味深いデータを含む可能性のあるすべての通知(XML 形式)の Notification
テーブルがあります。
Timeline は、訪問したウェブページ、編集した文書、実行したアプリケーションの時系列履歴を提供する Windows の機能です。
データベースは、パス \Users\<username>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db
にあります。このデータベースは、SQLite ツールまたはツール WxTCmd を使用して開くことができ、2 つのファイルを生成します。これらのファイルは、ツール TimeLine Explorer で開くことができます。
ダウンロードされたファイルには、ADS Zone.Identifier が含まれている場合があり、どのように intranet、internet などからダウンロードされたかを示します。一部のソフトウェア(ブラウザなど)は、ファイルがダウンロードされたURLなど、さらに多くの情報を提供することがよくあります。
Vista/Win7/Win8/Win10 では、Recycle Bin はドライブのルートにあるフォルダー $Recycle.bin
にあります(C:\$Recycle.bin
)。
このフォルダーでファイルが削除されると、2 つの特定のファイルが作成されます:
$I{id}
: ファイル情報(削除された日時)
$R{id}
: ファイルの内容
これらのファイルがあれば、ツール Rifiuti を使用して削除されたファイルの元のアドレスと削除された日時を取得できます(Vista – Win10 には rifiuti-vista.exe
を使用)。
シャドウコピーは、使用中のコンピュータファイルやボリュームのバックアップコピーやスナップショットを作成できるMicrosoft Windowsに含まれる技術です。
これらのバックアップは通常、ファイルシステムのルートから\System Volume Information
にあり、名前は以下の画像に示されているUIDで構成されています。
ArsenalImageMounterを使用してフォレンジックイメージをマウントすると、ツールShadowCopyViewを使用してシャドウコピーを検査し、シャドウコピーのバックアップからファイルを抽出することもできます。
レジストリエントリHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore
には、バックアップしないファイルとキーが含まれています:
レジストリHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS
にも、ボリュームシャドウコピー
に関する構成情報が含まれています。
Officeの自動保存ファイルは次の場所にあります:C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\
シェルアイテムは、別のファイルにアクセスする方法に関する情報を含むアイテムです。
Windowsは、ユーザーがファイルを開く、使用する、または作成するときに、これらのショートカットを自動的に****作成します:
Win7-Win10: C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\
Office: C:\Users\\AppData\Roaming\Microsoft\Office\Recent\
フォルダーが作成されると、フォルダーへのリンク、親フォルダーへのリンク、および祖父フォルダーへのリンクも作成されます。
これらの自動的に作成されたリンクファイルは、ファイルかフォルダーか、MAC タイム、ファイルが保存されているボリューム情報、およびターゲットファイルのフォルダーに関する情報を含んでいます。この情報は、ファイルが削除された場合にそれらを回復するのに役立ちます。
また、リンクファイルの作成日は、元のファイルが最初に使用された時間であり、リンクファイルの最終更新日は、元のファイルが使用された最後の****時間です。
これらのファイルを検査するには、LinkParserを使用できます。
このツールでは、2セットのタイムスタンプが見つかります:
最初のセット:
FileModifiedDate
FileAccessDate
FileCreationDate
2番目のセット:
LinkModifiedDate
LinkAccessDate
LinkCreationDate。
最初のセットのタイムスタンプはファイル自体のタイムスタンプを参照します。2番目のセットはリンクされたファイルのタイムスタンプを参照します。
同じ情報は、Windows CLIツールLECmd.exeを実行することで取得できます。
In this case, the information is going to be saved inside a CSV file.
これらは、アプリケーションごとに示される最近のファイルです。各アプリケーションでアクセスできるアプリケーションによって使用された最近のファイルのリストです。これらは自動的に作成されるか、カスタムで作成されることがあります。
自動的に作成されたジャンプリストは、C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
に保存されます。ジャンプリストは、最初のIDがアプリケーションのIDである{id}.autmaticDestinations-ms
という形式で命名されます。
カスタムジャンプリストは、C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\
に保存され、通常はファイルに重要なことが起こったためにアプリケーションによって作成されます(お気に入りとしてマークされたかもしれません)。
任意のジャンプリストの作成時間は、ファイルが最初にアクセスされた時間を示し、修正時間は最後にアクセスされた時間を示します。
ジャンプリストはJumplistExplorerを使用して検査できます。
(JumplistExplorerによって提供されるタイムスタンプは、ジャンプリストファイル自体に関連しています)
このリンクをフォローしてシェルバッグについて学んでください。
USBデバイスが使用されたことを特定することは、以下の作成によって可能です:
Windows Recent Folder
Microsoft Office Recent Folder
ジャンプリスト
一部のLNKファイルは、元のパスを指すのではなく、WPDNSEフォルダーを指しています:
WPDNSEフォルダー内のファイルは元のファイルのコピーであり、PCの再起動では生き残らず、GUIDはシェルバッグから取得されます。
このページをチェックして USB接続デバイスに関する興味深い情報を含むレジストリキーを学んでください。
USB接続が行われた時刻に関するタイムスタンプを取得するには、ファイルC:\Windows\inf\setupapi.dev.log
を確認してください(Section start
を検索)。
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、メールをリダイレクトしたメールサーバー)
いつメールが送信されたか
また、References
およびIn-Reply-To
ヘッダー内にはメッセージのIDが含まれています:
このアプリケーションは、メールをHTMLまたはテキストで保存します。メールは、\Users\<username>\AppData\Local\Comms\Unistore\data\3\
内のサブフォルダーにあります。メールは.dat
拡張子で保存されます。
メールのメタデータと連絡先は、EDBデータベース内にあります:\Users\<username>\AppData\Local\Comms\UnistoreDB\store.vol
ファイルの拡張子を.vol
から.edb
に変更すると、ツールESEDatabaseViewを使用して開くことができます。Message
テーブル内でメールを見ることができます。
ExchangeサーバーまたはOutlookクライアントが使用されると、いくつかのMAPIヘッダーが存在します:
Mapi-Client-Submit-Time
:メールが送信されたときのシステムの時間
Mapi-Conversation-Index
:スレッドの子メッセージの数と各メッセージのタイムスタンプ
Mapi-Entry-ID
:メッセージ識別子。
Mappi-Message-Flags
およびPr_last_Verb-Executed
:MAPIクライアントに関する情報(メッセージは読まれたか?未読か?応答されたか?リダイレクトされたか?不在か?)
Microsoft Outlookクライアントでは、送信/受信されたすべてのメッセージ、連絡先データ、およびカレンダーデータは、次の場所にあるPSTファイルに保存されます:
%USERPROFILE%\Local Settings\Application Data\Microsoft\Outlook
(WinXP)
%USERPROFILE%\AppData\Local\Microsoft\Outlook
レジストリパスHKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook
は、使用されているファイルを示しています。
PSTファイルは、ツールKernel PST Viewerを使用して開くことができます。
OSTファイルは、Microsoft OutlookがIMAPまたはExchangeサーバーで構成されると生成され、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ファイルを使用してデータを保存し、 \Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles
にあります。
Windows XPおよび8-8.1:サムネイルを含むフォルダーにアクセスすると、削除後も画像プレビューを保存するthumbs.db
ファイルが生成されます。
Windows 7/10:UNCパス経由でネットワークにアクセスするとthumbs.db
が作成されます。
Windows Vista以降:サムネイルプレビューは%userprofile%\AppData\Local\Microsoft\Windows\Explorer
に集中し、thumbcache_xxx.dbという名前のファイルが作成されます。ThumbsviewerおよびThumbCache Viewerは、これらのファイルを表示するためのツールです。
Windowsレジストリは、広範なシステムおよびユーザー活動データを保存し、次のファイルに含まれています:
%windir%\System32\Config
は、さまざまなHKEY_LOCAL_MACHINE
サブキー用です。
%UserProfile%{User}\NTUSER.DAT
は、HKEY_CURRENT_USER
用です。
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\Domains\Account\Users
で、ユーザー名、RID、最終ログイン、最終失敗したログオン、ログインカウンター、パスワードポリシー、およびアカウントが作成された時期を取得できます。ハッシュを取得するには、ファイル/ハイブSYSTEMも必要です。
この投稿では、疑わしい動作を検出するための一般的なWindowsプロセスについて学ぶことができます。
レジストリNTUSER.DAT
内のパスSoftware\Microsoft\Current Version\Search\RecentApps
には、実行されたアプリケーション、最後に実行された時間、および起動回数に関する情報を含むサブキーがあります。
レジストリエディタでSYSTEM
ファイルを開き、パスSYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}
内で、各ユーザーによって実行されたアプリケーションに関する情報(パス内の{SID}
に注意)と実行された時間を見つけることができます(時間はレジストリのデータ値内にあります)。
プリフェッチは、コンピュータがユーザーが近い将来にアクセスする可能性のあるコンテンツを表示するために必要なリソースを静かに取得することを可能にする技術です。これにより、リソースに迅速にアクセスできるようになります。
Windowsプリフェッチは、実行されたプログラムのキャッシュを作成して、より速く読み込むことができるようにします。これらのキャッシュは、次のパス内に.pf
ファイルとして作成されます:C:\Windows\Prefetch
。XP/VISTA/WIN7では128ファイル、Win8/Win10では1024ファイルの制限があります。
ファイル名は{program_name}-{hash}.pf
として作成されます(ハッシュは実行可能ファイルのパスと引数に基づいています)。W10では、これらのファイルは圧縮されています。ファイルの存在は、プログラムが実行されたことを示しています。
ファイルC:\Windows\Prefetch\Layout.ini
には、プリフェッチされたファイルのフォルダーの名前が含まれています。このファイルには、実行回数、実行日、およびプログラムによって開かれたファイルに関する情報が含まれています。
これらのファイルを検査するには、ツールPEcmd.exeを使用できます。
Superprefetch は、次に読み込まれるものを予測することによって プログラムをより速く読み込む という同じ目的を持っています。しかし、これはプリフェッチサービスの代わりにはなりません。
このサービスは C:\Windows\Prefetch\Ag*.db
にデータベースファイルを生成します。
これらのデータベースには、プログラムの名前、実行回数、開かれたファイル、アクセスされたボリューム、完全なパス、時間枠、およびタイムスタンプが含まれています。
この情報には、ツール CrowdResponse を使用してアクセスできます。
System Resource Usage Monitor (SRUM) は、プロセスによって消費されるリソースを監視します。これはW8で登場し、C:\Windows\System32\sru\SRUDB.dat
にESEデータベースとしてデータを保存します。
以下の情報を提供します:
AppID とパス
プロセスを実行したユーザー
送信バイト数
受信バイト数
ネットワークインターフェース
接続の持続時間
プロセスの持続時間
この情報は60分ごとに更新されます。
このファイルから日付を取得するには、ツール srum_dump を使用できます。
AppCompatCache、またはShimCacheは、Microsoftがアプリケーションの互換性の問題に対処するために開発したApplication Compatibility Databaseの一部です。このシステムコンポーネントは、以下のファイルメタデータのさまざまな情報を記録します。
ファイルのフルパス
ファイルのサイズ
$Standard_Information (SI) の最終更新時刻
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.hveファイルは、システム上で実行されたアプリケーションの詳細を記録するレジストリハイブです。通常、C:\Windows\AppCompat\Programas\Amcache.hve
にあります。
このファイルは、実行されたプロセスの記録を保存することで注目されており、実行可能ファイルへのパスやそのSHA1ハッシュが含まれています。この情報は、システム上のアプリケーションの活動を追跡するために非常に貴重です。
Amcache.hveからデータを抽出して分析するには、AmcacheParserツールを使用できます。以下のコマンドは、AmcacheParserを使用してAmcache.hveファイルの内容を解析し、結果をCSV形式で出力する方法の例です。
Among the generated CSV files, the Amcache_Unassociated file entries
は、関連付けられていないファイルエントリに関する豊富な情報を提供するため、特に注目に値します。
最も興味深いCVSファイルは、Amcache_Unassociated file entries
です。
このアーティファクトは、W7のC:\Windows\AppCompat\Programs\RecentFileCache.bcf
にのみ存在し、いくつかのバイナリの最近の実行に関する情報を含んでいます。
ファイルを解析するには、ツールRecentFileCacheParseを使用できます。
これらはC:\Windows\Tasks
またはC:\Windows\System32\Tasks
から抽出でき、XMLとして読み取ることができます。
これらはレジストリのSYSTEM\ControlSet001\Services
に見つけることができます。何が実行されるか、いつ実行されるかを見ることができます。
インストールされたアプリケーションは\ProgramData\Microsoft\Windows\AppRepository\
に見つけることができます。
このリポジトリには、データベース**StateRepository-Machine.srd
内にシステム内の各アプリケーションのログがあります。
このデータベースのアプリケーションテーブル内には、「Application ID」、「PackageNumber」、「Display Name」という列があり、これらの列には、プレインストールされたアプリケーションとインストールされたアプリケーションに関する情報が含まれており、インストールされたアプリケーションのIDは連続しているため、いくつかのアプリケーションがアンインストールされたかどうかを確認できます。
レジストリパスSoftware\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\
内でもインストールされたアプリケーションを見つけることができます。
そして、Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\
内でアンインストールされたアプリケーションを見つけることができます。
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 Explorer または Evtx Explorer/EvtxECmdから視覚化できます。
アクセスイベントは、C:\Windows\System32\winevt\Security.evtx
にあるセキュリティ構成ファイルに記録されます。このファイルのサイズは調整可能で、容量に達すると古いイベントが上書きされます。記録されたイベントには、ユーザーログインとログオフ、ユーザーアクション、セキュリティ設定の変更、ファイル、フォルダー、および共有資産へのアクセスが含まれます。
EventID 4624: ユーザーが正常に認証されたことを示します。
EventID 4625: 認証の失敗を示します。
EventIDs 4634/4647: ユーザーログオフイベントを表します。
EventID 4672: 管理者権限でのログインを示します。
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): キャッシュされた資格情報での解除。
0xC0000064: ユーザー名が存在しない - ユーザー名列挙攻撃を示す可能性があります。
0xC000006A: 正しいユーザー名だがパスワードが間違っている - パスワード推測またはブルートフォース攻撃の可能性。
0xC0000234: ユーザーアカウントがロックアウトされている - 複数の失敗したログインの結果としてブルートフォース攻撃が続く可能性があります。
0xC0000072: アカウントが無効 - 無効なアカウントへの不正なアクセス試行。
0xC000006F: 許可された時間外のログオン - 設定されたログイン時間外のアクセス試行を示し、不正アクセスの可能性があります。
0xC0000070: ワークステーション制限の違反 - 不正な場所からのログイン試行の可能性があります。
0xC0000193: アカウントの有効期限切れ - 有効期限切れのユーザーアカウントへのアクセス試行。
0xC0000071: パスワードの有効期限切れ - 古いパスワードでのログイン試行。
0xC0000133: 時間同期の問題 - クライアントとサーバー間の大きな時間の不一致は、パス・ザ・チケットのようなより高度な攻撃を示す可能性があります。
0xC0000224: 強制的なパスワード変更が必要 - 頻繁な強制変更は、アカウントセキュリティを不安定にしようとする試みを示唆するかもしれません。
0xC0000225: セキュリティの問題ではなく、システムバグを示します。
0xC000015b: 拒否されたログオンタイプ - サービスログオンを実行しようとするユーザーなど、不正なログオンタイプでのアクセス試行。
Time Change: システム時間の変更、イベントのタイムラインを隠す可能性があります。
System Startup and Shutdown: EventID 6005はシステムの起動を示し、EventID 6006はシャットダウンを示します。
Log Deletion: セキュリティログがクリアされることは、違法行為を隠蔽するための赤信号です。
20001 / 20003 / 10000: USBデバイスの最初の接続。
10100: USBドライバーの更新。
EventID 112: USBデバイス挿入の時間。
これらのログインタイプと資格情報ダンプの機会をシミュレートする実用的な例については、Altered Securityの詳細ガイドを参照してください。
イベントの詳細、ステータスおよびサブステータスコードは、特にEvent ID 4625でのイベントの原因に関するさらなる洞察を提供します。
削除されたWindowsイベントを回復する可能性を高めるために、疑わしいコンピュータの電源を直接抜いてシャットダウンすることをお勧めします。Bulk_extractorは、.evtx
拡張子を指定する回復ツールで、これらのイベントを回復しようとする際に推奨されます。
一般的なサイバー攻撃を特定するためにWindowsイベントIDを利用する包括的なガイドについては、Red Team Recipeを訪れてください。
複数のEventID 4625レコードによって識別され、攻撃が成功した場合はEventID 4624が続きます。
EventID 4616によって記録され、システム時間の変更はフォレンジック分析を複雑にする可能性があります。
USBデバイストラッキングに役立つシステムイベントIDには、初回使用のための20001/20003/10000、ドライバー更新のための10100、挿入タイムスタンプのためのEventID 112が含まれます。
EventID 6005はシステムの起動を示し、EventID 6006はシャットダウンを示します。
セキュリティEventID 1102はログの削除を示し、フォレンジック分析にとって重要なイベントです。
タスクの内容を示すスクリーンショットが提供されています:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)