Communitygithub.com

Windows Amcache アーティファクト解析

Eric Zimmerman のツールを使用して Windows Amcache.hve レジストリハイブを解析し、プログラムの存在や実行履歴を特定します。

Windows Amcache アーティファクト解析 とは?

このスキルは、Windows フォレンジック調査において Amcache.hve レジストリハイブを解析するための手順を提供します。Amcache は、システム上で実行または存在したプログラム、ドライバ、デバイスに関するメタデータを記録しており、インシデントレスポンスや内部不正調査に役立ちます。Eric Zimmerman の AmcacheParser を使用して CSV ファイルを生成し、Timeline Explorer で分析します。SHA-1 ハッシュを抽出して VirusTotal や CIRCL hashlookup などの脅威インテリジェンスと突き合わせ、悪意のあるファイルを特定します。また、ドライババイナリの署名状態やコンパイルタイムスタンプを確認し、ルートキットや BYOVD 攻撃の痕跡を検出します。Amcache 単独では実行の完全な証拠とはならないため、ShimCache や Prefetch と組み合わせて総合的なタイムラインを構築することが推奨されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-windows-amcache-artifacts

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Windows Amcache アーティファクト解析 は何をしますか?

使用するタイミング

  • インシデントレスポンス中に Windows システム上でどのプログラムが存在または実行されたかを特定する
  • Amcache から抽出した SHA-1 ハッシュを既知のマルウェアデータベース(VirusTotal、CIRCL、MISP)と突き合わせる
  • フォレンジック調査のためのアプリケーションインストールおよび実行タイムラインを構築する
  • ファイル削除後も Amcache に痕跡を残す削除済み実行可能ファイルを特定する
  • ポータブルアプリケーションや不正なアプリケーションの存在を文書化して内部不正を調査する
  • ルートキットや悪意のあるカーネルモジュールを検出するためにドライバ読み込み履歴を分析する

プログラム実行の唯一の証拠として使用しないでください。 Amcache はファイルの存在とメタデータの登録を証明しますが、ShimCache(AppCompatCache)や Prefetch の方が実行の強力な証拠となります。結論を出すには、これら3つのアーティファクトをすべて一緒に使用してください。

前提条件

  • フォレンジックイメージまたはライブトリアージから取得した C:\Windows\appcompat\Programs\Amcache.hve(および関連する .LOG1、.LOG2 トランザクションログ)
  • Eric Zimmerman の AmcacheParser(AmcacheParser.exe)を https://ericzimmerman.github.io/ からダウンロード済み
  • 解析した CSV 出力を表示するための Eric Zimmerman の Timeline Explorer
  • オプション:手動ハイブ検査用の Registry Explorer
  • フィルタリング用の既知の正規実行可能ファイルの SHA-1 ホワイトリスト(例:NSRL ハッシュセット)
  • .NET 6+ ランタイムがインストールされている(現在の EZ ツールで必要)
  • CSV 結果の出力ディレクトリへの書き込み権限

ワークフロー

ステップ 1:Amcache.hve ファイルの取得

フォレンジックイメージまたはライブシステムから Amcache ハイブを抽出します。

# ライブシステムから(管理者権限と raw コピーツールが必要)
# Amcache.hve はシステムによってロックされているため、raw ディスクコピーツールを使用します
# オプション A:FTK Imager - イメージをマウントして以下のパスに移動:
# C:\Windows\appcompat\Programs\Amcache.hve
# 同時に収集:Amcache.hve.LOG1、Amcache.hve.LOG2

# オプション B:KAPE を使用した自動トリアージ収集
kape.exe --tsource C: --tdest D:\Evidence\%m --target Amcache

# オプション C:マウントされたフォレンジックイメージから(E: = マウントされたイメージ)
copy "E:\Windows\appcompat\Programs\Amcache.hve" D:\Evidence\
copy "E:\Windows\appcompat\Programs\Amcache.hve.LOG1" D:\Evidence\
copy "E:\Windows\appcompat\Programs\Amcache.hve.LOG2" D:\Evidence\

ハイブと一緒にトランザクションログファイル(.LOG1、.LOG2)も必ず収集してください。AmcacheParser はこれらのログから未コミットのトランザクションを再生し、最も完全なデータを復元します。

ステップ 2:AmcacheParser で Amcache を解析

取得したハイブに対して AmcacheParser を実行します。

# CSV 出力の基本解析
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" --csv "D:\Evidence\Output"

# SHA-1 ホワイトリストを使用して既知の正規エントリを除外(NSRL)
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" -w "D:\Whitelists\nsrl_sha1.txt" --csv "D:\Evidence\Output"

# SHA-1 インクルージョンリストを使用(既知の悪意のあるハッシュとの一致のみ表示)
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" -b "D:\IOCs\malware_sha1.txt" --csv "D:\Evidence\Output"

# 高精度タイムスタンプで削除済みエントリを含める
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" --csv "D:\Evidence\Output" -i --mp

AmcacheParser は出力ディレクトリに複数の CSV ファイルを生成します。

出力ファイル内容
Amcache_AssociatedFileEntries.csvSHA-1 ハッシュ、パス、サイズ、タイムスタンプを含むファイルエントリ
Amcache_UnassociatedFileEntries.csv古い Amcache 形式からの孤立したファイルエントリ
Amcache_ProgramEntries.csvインストールされたプログラムのメタデータ(名前、発行元、バージョン、インストール日)
Amcache_DeviceContainers.csvUSB およびデバイス接続履歴
Amcache_DevicePnps.csvプラグアンドプレイデバイスドライバ情報
Amcache_DriverBinaries.csv読み込まれたドライババイナリ(パスとハッシュを含む)

ステップ 3:ファイルエントリを分析して不審なプログラムを特定

Timeline Explorer で AssociatedFileEntries.csv を開き、主要な列を確認します。

確認すべき主要な列:
- ProgramId          : ファイルを親プログラムエントリにリンク
- SHA1               : 脅威インテリジェンス検索用のハッシュ
- FullPath           : ディスク上の元のファイルの場所
- FileSize           : 実行可能ファイルのサイズ
- FileKeyLastWriteTimestamp : Amcache エントリが最後に更新された日時
- Name               : ファイル名
- Publisher           : コード署名の発行元(空白 = 署名なし)
- BinProductVersion  : PE ヘッダーからのバージョン文字列
- LinkDate           : PE コンパイルタイムスタンプ(タイムスタンプ改ざんの検出に有用)

不審な兆候でフィルタリング:

# Timeline Explorer で以下のフィルタを適用:

# 1. 署名なし実行可能ファイルを検索(悪意の可能性)
Publisher 列 = (空)

# 2. 不審なパスから実行可能ファイルを検索
FullPath に次の文字列が含まれる:\temp\、\appdata\、\downloads\、\public\、\programdata\

# 3. インシデント期間中の最近のタイムスタンプを持つ実行可能ファイルを検索
FileKeyLastWriteTimestamp が次の範囲:2026-03-15 00:00:00 から 2026-03-16 00:00:00

# 4. 不審なコンパイル日付を持つ実行可能ファイルを検索(タイムスタンプ改ざん)
LinkDate 年 < 2015 かつ FileKeyLastWriteTimestamp 年 = 2026

ステップ 4:SHA-1 ハッシュを脅威インテリジェンスと突き合わせる

SHA-1 ハッシュを抽出し、マルウェアデータベースと照合します。

# 解析出力から一意の SHA-1 ハッシュを抽出
# PowerShell を使用して SHA1 列を抽出
Import-Csv "D:\Evidence\Output\Amcache_AssociatedFileEntries.csv" |
  Select-Object -ExpandProperty SHA1 -Unique |
  Where-Object { $_ -ne "" } |
  Out-File "D:\Evidence\Output\extracted_hashes.txt"

# vt-cli を使用して VirusTotal に対してハッシュを確認
foreach ($hash in Get-Content "D:\Evidence\Output\extracted_hashes.txt") {
    vt file $hash --format json | Select-Object -Property meaningful_name, last_analysis_stats
}

# CIRCL hashlookup に対してハッシュを確認
foreach ($hash in Get-Content "D:\Evidence\Output\extracted_hashes.txt") {
    Invoke-RestMethod -Uri "https://hashlookup.circl.lu/lookup/sha1/$hash"
}

# NSRL とクロスリファレンスして既知の正規と未知を特定
# NSRL に含まれない未知のハッシュは、より詳細な調査が必要です

ステップ 5:プログラムエントリを分析して不正インストールを特定

ProgramEntries.csv を確認して、攻撃者がインストールした可能性のあるソフトウェアを特定します。

ProgramEntries の主要な列:
- ProgramName        : インストールされたアプリケーションの表示名
- ProgramVersion     : バージョン文字列
- Publisher          : ソフトウェア発行元
- InstallDate        : プログラムがインストールされた日時
- Source             : インストールソース(msi、exe など)
- UninstallKey       : レジストリアンインストールパス
- PathsList         : インストールディレクトリ

以下を探します:

  • リモートアクセスツール(AnyDesk、TeamViewer、ngrok、Chisel)
  • ハッキングツール(Mimikatz、PsExec、Cobalt Strike)
  • トンネリングユーティリティ(plink、socat、WireGuard)
  • インシデント期間中にインストールされたプログラム
  • 標準でない場所にインストールされたプログラム

ステップ 6:ドライババイナリを分析してルートキットの証拠を特定

DriverBinaries.csv を確認して、不審に読み込まれたドライバを特定します。

DriverBinaries の主要な列:
- DriverName         : ドライバの名前
- DriverInBox        : Windows に同梱されていたか(false = サードパーティ)
- DriverSigned       : ドライバに有効な署名があるか
- DriverTimeStamp    : コンパイルタイムスタンプ
- Product            : ドライバに関連する製品
- ProductVersion     : ドライババージョン
- SHA1               : ドライババイナリのハッシュ

DriverInBox = false かつ DriverSigned = false でフィルタリングして、ルートキットや BYOVD(Bring Your Own Vulnerable Driver)攻撃で使用される可能性のある、署名のないサードパーティドライバを見つけます。

ステップ 7:Amcache データからタイムラインを構築

Amcache データを他のアーティファクトと組み合わせて、包括的なタイムラインを作成します。

# Timeline Explorer を使用して Amcache CSV を他の EZ Tools 出力とマージ
# 以下の CSV を Timeline Explorer に読み込みます:
# - Amcache_AssociatedFileEntries.csv(ファイル証拠)
# - Amcache_ProgramEntries.csv(インストール証拠)
# - PECmd.exe からの Prefetch 出力(実行証拠)
# - AppCompatCacheParser.exe からの ShimCache 出力(実行証拠)

# すべてのエントリをタイムスタンプで並べ替えて攻撃シーケンスを再構築
# Timeline Explorer は複数ファイルの読み込みと列ベースの並べ替えをサポート

# 結合したタイムラインをエクスポート
# ファイル > CSV に保存 > combined_timeline.csv

主要な概念

用語定義
Amcache.hveC:\Windows\appcompat\Programs\Amcache.hve にある Windows レジストリハイブ。アプリケーション互換性の目的で、アプリケーション、ファイル、ドライバに関するメタデータを保存します
関連ファイルエントリ特定のプログラムインストールにリンクされた Amcache レコード。ファイルパス、サイズ、ハッシュ、タイムスタンプを含みます
非関連ファイルエントリ古い形式からの孤立した Amcache レコードで、プログラムエントリにリンクされていません。Windows 7/8 システムで一般的です
プログラムエントリプログラム名、バージョン、発行元、インストール日、アンインストールキーなどのインストールメタデータを含む Amcache レコード
SHA-1 ハッシュ登録された各ファイルに対して Amcache に保存される暗号化ハッシュ。脅威インテリジェンス検索によるマルウェア識別を可能にします
LinkDate実行可能ファイルヘッダーに埋め込まれた PE コンパイルタイムスタンプ。ファイルシステムのタイムスタンプとの不一致はタイムスタンプ改ざんを示す可能性があります
トランザクションログ未コミットのレジストリトランザクションを含む .LOG1 および .LOG2 ファイル。AmcacheParser が完全なデータ復元のために再生します
NSRL(National Software Reference Library)NIST が管理する既知の商用ソフトウェアの SHA-1 ハッシュデータベース。良性のエントリをフィルタリングするためのホワイトリストとして使用されます

検証

  • Amcache.hve とトランザクションログ(LOG1、LOG2)がフォレンジックイメージから収集された
  • AmcacheParser がエラーなく期待されるすべての CSV 出力ファイルを生成した
  • SHA-1 ハッシュが抽出され、VirusTotal または CIRCL hashlookup で確認された
  • 不審なパスにある署名なし実行可能ファイルがさらなる分析のためにフラグ付けされた
  • プログラムエントリがインシデント期間内のすべてのソフトウェアインストールを示している
  • ドライババイナリが署名なしまたは標準以外のエントリについて確認された
  • LinkDate と FileKeyLastWriteTimestamp の比較がタイムスタンプ改ざん検出のために実行された
  • Amcache の調査結果が実行確認のために Prefetch および ShimCache と関連付けられた
  • 最終タイムラインが Amcache データを他のフォレンジックアーティファクトと統合している

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

関連スキル