Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
WhacAMole — プロセス、モジュール、ハンドル、トークン、スレッド、.NETアセンブリ、メモリアドレス空間、環境変数におけるマルウェアIOCを検出するライブメモリ分析。フック、シェルコード、メモリ領域、モジュール、プロセスをダンプ、検出、逆アセンブルします。 | Kitploit
ツール/GitHubGitHub/ignacioj/whacamole
侵害指標 (IOC) 管理動的分析 (サンドボックス)メモリフォレンジックリバースエンジニアリングシェルコードデバッガフォレンジックマルウェア分析デジタルフォレンジックバイナリ解析脅威インテリジェンスインシデントレスポンス
4541年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHubignacioj/whacamole

WhacAMole

プロセス、モジュール、ハンドル、トークン、スレッド、.NETアセンブリ、メモリアドレス空間、環境変数におけるマルウェアIOCを検出するライブメモリ分析。フック、シェルコード、メモリ領域、モジュール、プロセスをダンプ、検出、逆アセンブルします。

リポジトリを見る

WhacAMole

WAM_logo

WhacAMole は、メモリ内のプロセスを統合的に分析し、マルウェアに関連する異常を検出・警告し、検証・相関・分析に必要なすべての関連情報を画面表示およびファイルに保存するとともに、メモリ領域、プロセス、不審なモジュールをダンプするプログラムです。

これを実現するために、プロセスやロードされたモジュールのメモリ領域の異常だけでなく、プロセスが使用しているメモリ空間全体を詳細に分析します。

現在、WhacAMole は、悪意のある動作、またはマルウェアにのみ起因する可能性がある動作に関連する67のアラートを識別できます。

プロセス、メモリ、モジュールの70以上のプロパティを表示し、メモリから読み取った多くの属性と、ディスク上の対応するファイルに表示される属性を比較し、不審なメモリ領域を部分的に逆アセンブルし、メモリ内で変更されたエクスポート関数を部分的に逆アセンブルして、アナリストが独自の調査を行えるようにします。

マルウェアによる関数の改変

他の類似プログラムとは異なり、プロセスに関するすべての関連情報をアナリストが利用できるようにし、マルウェアに関連する特性をさまざまなアラートでラベル付けすることで、独自の分析を実行したり、悪意のあるプロセスの存在に関する他の兆候を探したりできるようにします。

アラートは、その危険性と、同じ動作が現れるプロセスの数に応じて、6段階の値で分類され、HTMLドキュメントに色スケールで反映されます。6(黒色)は検出された特性がマルウェアに起因する確率が最も高いことを示し、1(灰色)は動作は異常であるものの、同じ動作が多数のシステムプロセスで観察されていることを示します。

カラーコード

アナリストの作業を容易にするために、情報は画面、分析されたプロセスのナビゲーションパネル付きのHTMLファイル、およびCSVテキストファイルで表示されます。HTMLドキュメントのサイドパネルには、プロセスツリーが表示され、それらで検出された最高アラートに対応する色、ドキュメント内の場所へのハイパーリンク、32ビットプロセスの場合はPIDが青色、.NETプロセスの場合は緑色で表示されます。Control Flow Guard(CFG)が有効なプロセスはイタリックで表示されます。

Tree1

リモートRDPセッションに関する情報は、プロセス情報の先頭に表示されます。

RDP

ネットワーク機能は2つの方法で表示されます。TCP接続が検出された場合は地球のシンボルで表示され、接続されたソケットが検出された場合は空の地球のシンボルで表示されます。メモリ内にHTTPナビゲーションライブラリ(wininet.dll および winhttp.dll)を持つプロセスには、追加のシンボル(白丸)が表示されます。

TreeTCPSocket

ネットワーク詳細:

TCPDetail

接続されたソケット:

socketDetail

Mimikatz のようなアクティビティが検出された場合、特別なシンボル(鍵)が表示されます。

socketDetail

HTMLドキュメントのナビゲーションパネルの下部には、すべてのアラートがその色とともに表示され、それらが検出されたプロセスのPIDが、プロセスが表示されているドキュメントの位置へのハイパーリンクの形式で示されます。

検出

アラートが検出されたプロセスがない場合、その名前は白い背景で表示されます。

メインパネルには、すべてのプロセスとその情報が、デフォルトで非表示の折りたたみ可能なセクションに表示されます。すべてのアラートは常に表示されます。

socketDetail

保存されたメモリ領域は、アンチウイルスによる削除を防ぐためにキー 0x0E でXORされます。

以下から情報を分析、比較、表示します。

1. プロセス:

  • プロセス名。
  • ファイルサイズ。
  • プロセスPID。
  • プロセスのPPID。
  • TCPおよびUDPネットワーク接続。
  • プロセスが4つのPEBリスト(InLoadOrderModuleList、InMemoryOrderModuleList、InInitializationOrderModuleList、LdrpHashTable)に表示されるかどうかを通知。
  • プロセスがメモリ(VAD)に可視であるかどうかを通知。
  • Rich Header情報。
  • メモリから読み取られ、ファイルから読み取られたエクスポート関数。
  • インポート関数。
  • 遅延インポートモジュール。
  • プロセスモジュールに割り当てられたメモリの保護。
  • メモリタイプ。
  • メモリに読み込まれたプロセスエントリポイント。
  • ファイルから読み取られたプロセスのエントリポイント。
  • プロセスのメモリアドレス。
  • メモリ内およびファイル内で読み取られたPEセクション。違いがある場合のみ表示。
  • PEデータセクションサイズ。
  • 実行可能ファイルの特性(DLLCharacteristics)。
  • イメージのメジャーバージョン番号(MajorImageVersion)。
  • 元のチェックサムと計算されたチェックサム。
  • VERSIONINFOリソースから、メモリとファイルから読み取った、Comments、CompanyName、FileDescription、FileVersion、InternalName、LegalCopyright、LegalTrademarks、OriginalFilename、PrivateBuild、ProductName、ProductVersion、SpecialBuildの値を表示。
  • Local Security Authority (LSA) から取得したプロセスのセッションID。
  • プロセスから見えるセッションID。
  • ログインセッションのローカル一意識別子(LUID)。
  • プロセスが由来するログインセッションのローカル一意識別子(LUID)。
  • トークンの整合性。
  • トークンの種類。
  • ログオンの種類。
  • 使用された認証パッケージ。
  • ユーザーとドメイン。
  • ユーザーのセキュリティ識別子(SID)。
  • ローカル管理者グループのメンバーシップ。
  • プロセスのコマンドライン。
  • プロセスのファイルパス。VADのFullNameとPEBのFullNameが異なる場合は両方を表示。
  • プロセスの現在の作業ディレクトリ(CWD)。
  • PEフォーマット:x86/x64。
  • ターゲットマシンの種類(Target Machine)。
  • プロセスの作成日時。
  • システム起動からプロセス作成までの経過時間。
  • PEの署名。
  • メモリ内およびファイル内で読み取られたプログラムのデータベースファイル(.pdb)のアドレス。
  • IMAGE_FILE_HEADERからメモリとファイルで取得した日時。
  • IMAGE_DEBUG_DIRECTORYからメモリとファイルで取得した日時。
  • IMAGE_EXPORT_DIRECTORYからメモリとファイルで取得した日時。
  • IMAGE_RESOURCE_DIRECTORYからメモリとファイルで取得した日時。
  • ファイルのSHA1ハッシュ。
  • .NET実行可能ファイルかどうか、およびCLRバージョンに関する情報。
  • プロセスでNTFSまたはトランザクション記録(TxF/TxR)が検出されたかどうかの情報。
  • 不審な環境変数を検索。
  • スレッドの状態を確認。
  • 各プロセスに関連付けられたシステムで実行中のタスクを取得。

• 警告:

root@kitploit:~
[Admin Privs]
[Alternate credentials]
[Alternate network credentials]
[Delphi 4 – Delphi 2006]
[Entry Point]
[LogonType]
[Managed code but no Assemblies detected - .NET ETW disabled]
[Mismatching Path]
[Name of the module hidden in memory]
[NTLM Authentication]
[PE anomalies]
[PEB ImageBaseAddress forgery]
[Possible .NET in memory loaded as Assembly.Load(byte[])]
[Process checkSum is 0]
[Process checkSum mismatch]
[Process Ghosting]
[Process Hollowing]
[Process Memory region hash mismatch]
[Process Memory region Protection value modified]
[Process Memory region WX]
[Process Name != Internal Name]
[PROCESS NOT SIGNED]
[Process Private memory region]
[Process Unknown executable memory region]
[Section Table]
[Shared memory subversion]
[SizeOfInitializedData is 0]
[SUSPENDED PROCESS]
[Suspicious Commandline]
[Suspicious Environment Variable]
[TimeDateStamp Inequality]
[Transaction detected: TxF/TxR]
[Unmanaged process/managed code execution detected]
[Unusual CWD]

プロセス

2. モジュール:

  • モジュール名。
  • ファイルサイズ。
  • ファイルパス。VADのFullNameとPEBのFullNameが異なる場合は両方を表示。
  • プロセスが4つのPEBリスト(InLoadOrderModuleList、InMemoryOrderModuleList、InInitializationOrderModuleList、LdrpHashTable)に表示されるかどうかを通知。
  • プロセスがメモリ(VAD)に可視であるかどうかを通知。
root@kitploit:~
通常のモジュールで予想されるのは LMIVH です:
L = InLoadOrderModuleList(PEB)。
M = InMemoryOrderModuleList (PEB)。
I = InInitializationOrderModuleList (PEB)。
V = プロセスの仮想メモリで検出。
H = PEB ハッシュリストで検出。

3 つの PEB リンクリストからリンクが解除されている場合、次のように表示されます:
    ---VH

モジュールがマルウェアによって手動でロードされた場合、PEB リストのいずれにも表示されませんが、メモリスキャンで検出される可能性があります。
その場合、次のように表示されます:
    −−−V−

DLL Hollowing with Moat 手法(POCについては https://github.com/forrest-orr/artifacts-kit を参照)を使用すると、結果は次のようになります:
    -----
  • Rich Header情報。
  • メモリから読み取られ、ファイルから読み取られたエクスポート関数。
  • モジュールに割り当てられたメモリの保護。
  • メモリタイプ。
  • メモリに読み込まれたエントリポイント。
  • ファイルから読み取られたプロセスのエントリポイント。
  • メモリアドレス。
  • メモリ内およびファイル内で読み取られたPEセクション。違いがある場合のみ表示。
  • PEデータセクションサイズ。
  • 実行可能ファイルの特性(DLLCharacteristics)。
  • イメージのメジャーバージョン番号(MajorImageVersion)。
  • 元のチェックサムと計算されたチェックサム。
  • PEフォーマット:x86/x64。
  • ターゲットマシンの種類(Target Machine)。
  • モジュールのメモリへのロード日時。
  • VERSIONINFOリソースから、メモリとファイルから読み取った、Comments、CompanyName、FileDescription、FileVersion、InternalName、LegalCopyright、LegalTrademarks、OriginalFilename、PrivateBuild、ProductName、ProductVersion、SpecialBuildの値を表示。
  • EPの署名。
  • メモリ内およびファイル内で読み取られたプログラムのデータベースファイル(.pdb)のアドレス。
  • IMAGE_FILE_HEADERからメモリとファイルで取得した日時。
  • IMAGE_DEBUG_DIRECTORYからメモリとファイルで取得した日時。
  • IMAGE_EXPORT_DIRECTORYからメモリとファイルで取得した日時。
  • IMAGE_RESOURCE_DIRECTORYからメモリとファイルで取得した日時。
  • ファイルのSHA1ハッシュ。
  • .NET実行可能ファイルかどうか、およびCLRバージョンに関する情報。

• 警告:

root@kitploit:~
[Abnormal PE Header]
[Delphi 4 – Delphi 2006]
[DLL Hiding]
[DLL Hollowing]
[Mismatching Path]
[Module checkSum is 0]
[Module checkSum mismatch]
[Module Name != OriginalFileName]
[MODULE NOT SIGNED]
[Module PE anomalies]
[Module SizeOfInitializedData is 0]
[Module TimeDateStamp Inequality]
[Name of the module hidden in memory]
[Phantom DLL Hollowing TxF]
[Private memory region]
[Section Table]
[Signed PE NOT MEM_IMAGE]
[Unsigned PE NOT MEM_IMAGE]
[Unusual module]

モジュール

3. ハンドル: File、Key、Mutant、Process、Thread、Token、Section タイプのすべてのプロセスハンドルが表示されます。ハンドルの種類に応じて、次の情報が表示されます:

File: ファイルの完全なアドレス。

ハンドルファイル

NamedPipe: クライアントプロセス、サーバープロセス、許可されたアクセス、カーネル内のオブジェクトアドレス。

名前付きパイプ

Key: アクセスされたキーの完全なアドレス。

ハンドルキー

Mutant: ミュータントの名前。

ミュータント

Process: プロセスID、プロセス名、許可されたアクセス、カーネルオブジェクトアドレス。

ハンドルプロセス

Thread: プロセス名、プロセスID、スレッドID、許可されたアクセス、カーネルオブジェクトアドレス。

ハンドルスレッド

Token: ユーザーのセキュリティ識別子(SID)、ユーザーとドメイン、ログインセッションのローカル一意識別子(LUID)、トークンの種類。

ハンドルトークン

Section: オブジェクト名、ハンドルID、メモリアドレス、サイズ、メモリ割り当てプロパティ、該当する場合はモジュールエントリポイント、許可されたアクセス、カーネル内のオブジェクトアドレス。

ハンドルセクション

• 警告:

root@kitploit:~
[Handle-Section Phantom DLL Hollowing TxF]
[Handle-Section Suspicious: Injection]
[Pipe Handle to another process]
[Process Handle to another process]
[ShadowMove Lateral Movement]

4. トークン: トークンが検出されたスレッドでは、以下が表示されます:

  • スレッドID。
  • スレッドの状態。
  • ユーザーとドメイン。
  • ログインセッションのローカル一意識別子(LUID)。
  • 由来元のログインセッションのローカル一意識別子(LUID)。
  • トークンの種類。
  • トークンの整合性。

• 警告:

root@kitploit:~
[Thread with TOKEN]

トークン

5. スレッド:

  • スレッドID。
  • スレッド開始アドレス。
  • モジュールの完全なアドレス。
  • 状態。
  • コールスタック。

• 警告:

root@kitploit:~
[Thread-Memory NOT MEM_IMAGE]
[Thread-Possible Ekko technique]
[Thread-Possible Foliage technique]
[Thread-Unknown module in Stack]

スレッド

6. .NET アセンブリ

  • アプリケーションドメイン。
  • ファイルの完全なアドレス。

• 警告:

root@kitploit:~
[.NET Assembly w/o ILPath]

NET

7. メモリアドレス空間。 プロセスのすべてのメモリ領域から以下の値を表示します:

  • メモリアドレス。
  • 保護。
  • 状態。
  • 種類。
  • VADから読み取ったファイル名。
  • 領域のサイズ。
  • その割り当てが属するベースアドレス。
  • 初期メモリ割り当て保護。

• 警告:

root@kitploit:~
[Executable memory region not MEM_IMAGE]
[Hidden PE]
[Lagos Island Method]
[Mapped Image]
[Memory region hash]
[Memory region Protection value modified]
[Memory region WX]
[Memory/File values mismatch]
[Moat detected]
[MZ/PE Not Present]
[Shellcode]
[Unknown executable memory region]

メモリ

メモリ

ツールをダウンロード