memory-forensics-volatility
Volatility 2/3を使用したメモリフォレンジックのプレイブック。マルウェア解析、認証情報の抽出、プロセス調査、コードインジェクションの検出、インシデントレスポンスのタイムライン再構築など、メモリダンプを分析する際に活用できます。
description の原文を見る
>- Memory forensics playbook using Volatility 2/3. Use when analyzing memory dumps for malware analysis, credential extraction, process investigation, code injection detection, and incident response timeline reconstruction.
SKILL.md 本文
SKILL: メモリフォレンジクス — エキスパート分析プレイブック
AI LOAD INSTRUCTION: Volatility 2 および 3 を使用したエキスパートメモリフォレンジクス技術。メモリ取得、OS 識別、プロセス分析(隠れたプロセスの検出)、ネットワーク接続、DLL/モジュール分析、コード注入検出(malfind)、認証情報抽出、ファイルカービング、レジストリ分析、タイムライン生成をカバーします。ベースモデルは Vol2/Vol3 コマンドの違い、マルウェアインジケータパターン、Linux 固有のメモリ分析を見落とします。
0. 関連ルーティング
詳細に進む前に、以下の読み込みを検討してください:
traffic-analysis-pcapネットワークアーティファクトとメモリ結果の相関付け用steganography-techniques抽出ファイルに隠れたデータが疑われる場合windows-privilege-escalationメモリ内の検出後の悪用アーティファクトを理解するため
クイックリファレンス
以下が必要な場合は VOLATILITY_CHEATSHEET.md も読み込んでください:
- Vol2 vs Vol3 コマンド比較表
- 特定の調査タイプ別の一般的なプラグイン手順
1. メモリ取得
Linux
# LiME (Linux Memory Extractor) — kernel module
insmod lime.ko "path=/tmp/mem.lime format=lime"
# /proc/kcore (利用可能な場合)
dd if=/proc/kcore of=/tmp/mem.raw bs=1M
# AVML (Microsoft のオープンソース)
./avml /tmp/mem.lime
Windows
# WinPmem
winpmem_mini_x64.exe memdump.raw
# FTK Imager (GUI) — メモリをファイルにキャプチャ
# DumpIt (ワンクリックメモリダンプ)
DumpIt.exe
# Comae (MagnetRAM)
MagnetRAMCapture.exe /output memdump.raw
仮想マシン
# VMware: VM ディレクトリの .vmem ファイル (最初に VM をサスペンド)
# VirtualBox: VBoxManage debugvm "VM_NAME" dumpvmcore --filename mem.raw
# KVM/QEMU: virsh dump DOMAIN memdump --memory-only
# Hyper-V: VM をチェックポイント → .bin ファイルを検査
2. VOLATILITY 2 vs 3
| コンセプト | Volatility 2 | Volatility 3 |
|---|---|---|
| プロファイルシステム | --profile=Win10x64_19041 | 自動検出(シンボルテーブル) |
| イメージ情報 | imageinfo | windows.info / linux.info |
| プロセスリスト | pslist | windows.pslist |
| ネットワーク | netscan / connections | windows.netscan / windows.netstat |
| DLL | dlllist | windows.dlllist |
| 注入 | malfind | windows.malfind |
| ハッシュ | hashdump | windows.hashdump |
| ファイル | filescan | windows.filescan |
| レジストリ | hivelist / printkey | windows.registry.hivelist / windows.registry.printkey |
| インストール | pip2 install volatility | pip3 install volatility3 |
3. 分析方法論
ステップ 1: OS の特定
# Vol2
vol.py -f mem.raw imageinfo
vol.py -f mem.raw kdbgscan
# Vol3
vol -f mem.raw windows.info
vol -f mem.raw banners.Banners
ステップ 2: プロセスリスト — 隠れたプロセス検出
# Vol2
vol.py -f mem.raw --profile=PROFILE pslist # EPROCESS リンクリスト
vol.py -f mem.raw --profile=PROFILE psscan # プールタグスキャン(リンク解除されたものを検出)
vol.py -f mem.raw --profile=PROFILE pstree # 親子階層
# Vol3
vol -f mem.raw windows.pslist
vol -f mem.raw windows.psscan
vol -f mem.raw windows.pstree
警告フラグ: psscan に含まれるプロセスが pslist に含まれない = DKOM(Direct Kernel Object Manipulation)による隠蔽。
ステップ 3: ネットワーク接続
# Vol2
vol.py -f mem.raw --profile=PROFILE netscan # TCP/UDP エンドポイント
vol.py -f mem.raw --profile=PROFILE connections # XP/2003 のみ
vol.py -f mem.raw --profile=PROFILE connscan # クローズされた接続
# Vol3
vol -f mem.raw windows.netscan
vol -f mem.raw windows.netstat
ステップ 4: DLL / モジュール分析
# Vol2
vol.py -f mem.raw --profile=PROFILE dlllist -p PID
vol.py -f mem.raw --profile=PROFILE ldrmodules -p PID # リンク解除された DLL を検出
# Vol3
vol -f mem.raw windows.dlllist --pid PID
警告フラグ: dlllist に含まれる DLL が ldrmodules の全 3 列で False = リフレクティブ DLL インジェクション。
ステップ 5: コード注入検出(Malfind)
# Vol2
vol.py -f mem.raw --profile=PROFILE malfind -p PID
vol.py -f mem.raw --profile=PROFILE malfind -D /tmp/dump/ # 注入されたセクションをダンプ
# Vol3
vol -f mem.raw windows.malfind --pid PID
malfind が検出するもの: ディスク上のファイルにマップしていない PAGE_EXECUTE_READWRITE フラグ付きメモリ領域 — 典型的なシェルコード/注入インジケータ。
ステップ 6: 認証情報抽出
# Vol2
vol.py -f mem.raw --profile=PROFILE hashdump # SAM ハッシュ
vol.py -f mem.raw --profile=PROFILE lsadump # LSA シークレット
vol.py -f mem.raw --profile=PROFILE cachedump # ドメインキャッシュ認証情報
vol.py -f mem.raw --profile=PROFILE mimikatz # (プラグイン) 平文認証情報
# Vol3
vol -f mem.raw windows.hashdump
vol -f mem.raw windows.lsadump
vol -f mem.raw windows.cachedump
ステップ 7: ファイル抽出
# Vol2
vol.py -f mem.raw --profile=PROFILE filescan | grep -i "password\|secret\|flag"
vol.py -f mem.raw --profile=PROFILE dumpfiles -Q OFFSET -D /tmp/dump/
# Vol3
vol -f mem.raw windows.filescan
vol -f mem.raw windows.dumpfiles --virtaddr OFFSET
ステップ 8: レジストリ分析
# Vol2
vol.py -f mem.raw --profile=PROFILE hivelist
vol.py -f mem.raw --profile=PROFILE printkey -K "Software\Microsoft\Windows\CurrentVersion\Run"
vol.py -f mem.raw --profile=PROFILE userassist # プログラム実行証跡
# Vol3
vol -f mem.raw windows.registry.hivelist
vol -f mem.raw windows.registry.printkey --key "Software\Microsoft\Windows\CurrentVersion\Run"
ステップ 9: コマンドヒストリ
# Vol2
vol.py -f mem.raw --profile=PROFILE cmdscan # cmd.exe ヒストリ
vol.py -f mem.raw --profile=PROFILE consoles # 完全なコンソール出力
# Vol3
vol -f mem.raw windows.cmdline
ステップ 10: タイムライン生成
# Vol2
vol.py -f mem.raw --profile=PROFILE timeliner --output=body --output-file=timeline.body
mactime -b timeline.body -d > timeline.csv
# Vol3
vol -f mem.raw timeliner.Timeliner
4. LINUX メモリ分析
# Vol2 (Linux プロファイルが必要)
vol.py -f mem.lime --profile=LinuxProfile linux_pslist
vol.py -f mem.lime --profile=LinuxProfile linux_pstree
vol.py -f mem.lime --profile=LinuxProfile linux_netstat
vol.py -f mem.lime --profile=LinuxProfile linux_bash # bash ヒストリ
vol.py -f mem.lime --profile=LinuxProfile linux_enumerate_files
vol.py -f mem.lime --profile=LinuxProfile linux_proc_maps -p PID
vol.py -f mem.lime --profile=LinuxProfile linux_malfind
# Vol3
vol -f mem.lime linux.pslist
vol -f mem.lime linux.pstree
vol -f mem.lime linux.bash
vol -f mem.lime linux.check_afinfo # ルートキット検出
vol -f mem.lime linux.check_syscall # syscall フッキング
vol -f mem.lime linux.tty_check # TTY フッキング
Linux プロファイルの構築(Vol2)
cd volatility/tools/linux
make
# module.dwarf + System.map を作成 → プロファイルとして圧縮
zip LinuxProfile.zip module.dwarf /boot/System.map-$(uname -r)
# volatility/plugins/overlays/linux/ に配置
5. メモリ内のマルウェアインジケータ
| インジケータ | 検出方法 | 意味 |
|---|---|---|
| psscan に含まれるが pslist に含まれないプロセス | pslist vs psscan を比較 | DKOM — プロセス隠蔽 |
| 予期しない親子関係 | pstree 分析 | 例: cmd.exe から生成された svchost |
| 非イメージメモリの MZ ヘッダ | malfind | リフレクティブ DLL / PE インジェクション |
| バッキングファイルなし RWX メモリ | malfind | シェルコード注入 |
| PEB リストから全てリンク解除された DLL | ldrmodules(全て False) | ステルス DLL 読み込み |
| services.exe の子ではない svchost.exe | pstree | 偽の svchost(マルウェア) |
| 通常でないネットワーク接続 | netscan + PID 相関付け | C2 通信 |
| SSDT/IDT のフッキング | ssdt / idt プラグイン | ルートキット |
| 変更されたカーネルオブジェクト | linux_check_syscall | Linux ルートキット |
正常な親子関係(Windows)
System (4)
└── smss.exe
└── csrss.exe
└── wininit.exe
└── services.exe
└── svchost.exe (複数)
└── spoolsv.exe
└── lsass.exe
└── winlogon.exe
└── explorer.exe
└── ユーザーアプリケーション
6. デシジョンツリー
メモリダンプ取得 — 分析が必要
│
├── どの OS?
│ ├── Windows → vol imageinfo / windows.info (§3 ステップ 1)
│ └── Linux → プロファイルを構築するか Vol3 自動検出を使用 (§4)
│
├── マルウェア調査?
│ ├── プロセスをチェック: pslist vs psscan (隠蔽?) (§3 ステップ 2)
│ ├── 親子関係をチェック: pstree (疑わしい生成?) (§5)
│ ├── 注入をチェック: malfind (RWX メモリ?) (§3 ステップ 5)
│ ├── DLL をチェック: ldrmodules (リンク解除?) (§3 ステップ 4)
│ ├── ネットワークをチェック: netscan (C2 接続?) (§3 ステップ 3)
│ └── 疑わしいファイルを抽出: dumpfiles (§3 ステップ 7)
│
├── 認証情報回復?
│ ├── SAM ハッシュ → hashdump (§3 ステップ 6)
│ ├── LSA シークレット → lsadump (§3 ステップ 6)
│ ├── キャッシュドメイン認証情報 → cachedump (§3 ステップ 6)
│ └── 平文パスワード → mimikatz プラグイン (§3 ステップ 6)
│
├── インシデントタイムライン?
│ ├── 包括的タイムラインの timeliner (§3 ステップ 10)
│ ├── コマンドヒストリの cmdscan / consoles (§3 ステップ 9)
│ ├── プログラム実行の userassist (§3 ステップ 8)
│ └── PCAP タイムラインとの相互参照 (→ traffic-analysis-pcap)
│
├── CTF / フラグ狩り?
│ ├── filescan + grep でフラグパターンを検索 (§3 ステップ 7)
│ ├── cmdscan で入力されたフラグ/パスワード (§3 ステップ 9)
│ ├── クリップボード: clipboard プラグイン
│ ├── スクリーンショット: screenshot プラグイン
│ └── 環境変数: envars プラグイン
│
└── Linux 固有?
├── linux_bash でシェルヒストリ (§4)
├── linux_check_syscall でルートキット (§4)
└── linux_netstat で接続 (§4)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- yaklang
- リポジトリ
- yaklang/hack-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/yaklang/hack-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。