mcpField
E
extracting-memory-artifacts-with-rekall

extracting-memory-artifacts-with-rekall

github.com/mukul975セキュリティ35.2k53 回インストール8 週間前に更新
リポジトリ

extracting-memory-artifacts-with-rekall について

メモリダンプから侵害の兆候を調べる、セキュリティテスト担当者向けのRekallメモリフォレンジック用スキルです。隠れたプロセス、コードインジェクション、ネットワーク接続の調査や、不審なDLLとドライバーの抽出を扱います。

主な機能

  1. 01メモリイメージの読み込みとプロファイル検出
  2. 02プロセス一覧の比較による隠れたプロセスの特定
  3. 03コードインジェクションやホローイングの検出
  4. 04ネットワーク接続の確認
  5. 05不審なDLLとドライバーの抽出

活用シーン

  1. 01管理されたラボでのマルウェアサンプル分析
  2. 02メモリダンプ内の侵害兆候の調査
  3. 03攻撃手法の知見を基にした検知機能の構築

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill extracting-memory-artifacts-with-rekall

インストール後、Claude Code で/extracting-memory-artifacts-with-rekallを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
references/
api-reference.md
scripts/
agent.py

詳細

Rekall を使用したメモリアーティファクトの抽出

使用する場面

  • Rekall を使用してメモリアーティファクトを抽出する、許可を得たセキュリティテストを実施する場合
  • 制御された環境でマルウェアのサンプルや攻撃のアーティファクトを分析する場合
  • レッドチーム演習や侵入テストを実施する場合
  • 攻撃手法への理解に基づいて検知機能を構築する場合

前提条件

  • セキュリティ運用の概念とツールに関する知識があること
  • 安全に実行できるテスト環境またはラボ環境にアクセスできること
  • 必要な依存関係をインストールした Python 3.8 以降
  • テスト活動に対する適切な許可があること

手順

Rekall を使用してメモリダンプを分析し、プロセスインジェクション、隠しプロセス、不審なネットワーク接続など、侵害の兆候を調べます。

from rekall import session
from rekall import plugins

# Create a Rekall session with a memory image
s = session.Session(
    filename="/path/to/memory.raw",
    autodetect=["rsds"],
    profile_path=["https://github.com/google/rekall-profiles/raw/master"]
)

# List processes
for proc in s.plugins.pslist():
    print(proc)

# Detect injected code
for result in s.plugins.malfind():
    print(result)

主な分析手順:

  1. メモリイメージを読み込み、プロファイルを自動検出します
  2. pslist と psscan を実行し、隠しプロセスを探します
  3. malfind を使用して、プロセスの VAD 内にあるインジェクションされたコードや偽装されたコードを検出します
  4. netscan でネットワーク接続を調べます
  5. dlllist/modules で不審な DLL とドライバーを抽出します

使用例

from rekall import session
s = session.Session(filename="memory.raw")
# Compare pslist vs psscan for hidden processes
pslist_pids = set(p.pid for p in s.plugins.pslist())
psscan_pids = set(p.pid for p in s.plugins.psscan())
hidden = psscan_pids - pslist_pids
print(f"Hidden PIDs: {hidden}")

コメント