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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Hunt-Sleeping-Beacons — アンパックまたはインジェクションされたC2エージェントのIOCを、スレッドのアイドル動作、未バッキングメモリ、モジュールスタンピング、APC、タイマー、リターンアドレススプーフィングを分析することで識別するコールスタックスキャナー。 | Kitploit
ツール/GitHubGitHub/theflink/hunt-sleeping-beacons
防御ツールメモリフォレンジックフォレンジックマルウェア分析バイナリ解析インシデントレスポンス
GitHubtheflink/hunt-sleeping-beacons

Hunt-Sleeping-Beacons

アンパックまたはインジェクションされたC2エージェントのIOCを、スレッドのアイドル動作、未バッキングメモリ、モジュールスタンピング、APC、タイマー、リターンアドレススプーフィングを分析することで識別するコールスタックスキャナー。

リポジトリを見る
678646ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Hunt-Sleeping-Beacons

このプロジェクトは(主に)コールスタックスキャナーであり、アンパックまたはインジェクションされたC2エージェントを示すIOCを特定しようとするものです。

すべてのチェックは、C2エージェントがコールバックの間で待機し、ビーコンのスレッドがアイドル状態になるという観察に基づいており、このツールはスレッドがアイドル状態になった原因を分析することを目的としています。

これには、バックされていないメモリやスタンプされたモジュールなどの従来のIOCが含まれますが、APCやタイマーを使用するスリープマスクの複数の実装を検出しようと試みます。後者は、コールスタックの分析と、ユーザーランドからタイマーとその正確なコールバックを列挙することの両方によって行われます。

これらのIOCの(ほぼ)どれも100%真陽性と見なすことはできません。例えば、モジュールスタンピング検出は特に誤検出が発生しやすいです。それでも、結果はプロセスの動作について疑念を引き起こす可能性があります。

DotNetおよび32ビットのバイナリは無視されます。

x

チェック

バックされていないメモリ

コールスタック内のプライベートなr(w)xページは、実行時にアンパックまたはインジェクションされたビーコンを示している可能性があります。

非実行可能メモリ

複数のスリープマスクは、ビーコンページのページ権限を非実行可能に変更します。これにより、コールスタックに怪しい非実行可能ページが現れます。

モジュールスタンピング

多くの場合、ビーコンはプライベートメモリページを避けるために、ディスクから正当なモジュールを読み込んで上書きします。 コピーオンライト機構のおかげで、操作されたイメージはMEMORY_WORKING_SET_EX_INFORMATIONのVirtualAttributes.SharedOriginalフィールドをチェックすることで識別できます。コールスタック内のページがプライベートではなく、SharedOriginal == 0の場合、IOCと見なされます。

これはおそらく最も誤検出が発生しやすい検出です。 :'(

怪しいAPC

スリープマスクの複数の実装は、一連のAPCをNtdll!NtContinueにキューイングし、そのうちの1つがNtdll!WaitForSingleObjectの実行をトリガーします。したがって、ブロッキング関数へのコールスタック上にNtdll!KiUserApcDispatcherが見つかった場合、このツールはそれをIOCと見なします。

怪しいタイマー

APCの怪しい使用法と同様に、このツールはブロッキング関数へのコールスタック上にntdll!RtlpTpTimerCallbackがないかチェックし、タイマーベースのスリープマスクを検出します。

タイマーとコールバックの列挙

私の理解では、タイマーはThreadPoolの上に実装されています。Alon Levievが実証したように、これらはNtQueryInformationWorkerFactoryとWorkerFactoryBasicInformationを使用して列挙できます。

WORKER_FACTORY_BASIC_INFORMATION構造体にはFULL_TP_POOLが埋め込まれており、それがTimerQueueの二重リンクリストにリンクしています。そのPFULL_TP_TIMERのリストをたどることで、各登録されたコールバックにアクセスできます。コールバックがntdll!ntcontinueなどの怪しいAPI呼び出しのセットを指している場合、強力なIOCと見なすことができます。

x

異常なモジュール間呼び出し(モジュールプロキシング)

もともとモジュールプロキシングは、怪しいコールスタックをバイパスする方法として導入されました。 バイパスは機能しますが、WINAPIを呼び出すためにNTAPIが使用されるという、別の強力なIOCが導入されます。これは、WINAPIはNTAPIの抽象化であるため、異常です。したがって、ntdll.dll->kernel32.dll->ntdll.dllのシーケンスがブロッキング関数を呼び出すコールスタックが観察された場合、IOCと見なすことができます。

リターンアドレススプーフィング

私が知っているほとんどのリターンアドレススプーフィングの実装は、呼び出された関数がjmp [Nonvolatile-Register]ガジェットに戻るという技法を使用しています。このプロジェクトは単純にコールスタック内のすべてのリターンアドレスを反復処理し、jmpガジェットへの戻りを示すパターンを検索します。

x

使用方法

root@kitploit:~
 _   _    _____   ______
| | | |  /  ___|  | ___ \
| |_| |  \ `--.   | |_/ /
|  _  |   `--. \  | ___ \
| | | |  /\__/ /  | |_/ /
\_| |_/  \____/   \____/

Hunt-Sleeping-Beacons | @thefLinkk

-p / --pid {PID}

--dotnet | dotnetプロセスも含めるように設定します。(誤検出が発生しやすい)
--commandline | 疑わしいプロセスのコマンドライン出力を有効にします
-h / --help | このメッセージを表示しますか?

クレジット

  • https://urien.gitbook.io/diago-lima/a-deep-dive-into-exploiting-windows-thread-pools/attacking-timer-queues
  • https://github.com/mrexodia/phnt-single-header
  • https://github.com/SafeBreach-Labs/PoolParty
  • https://github.com/bshoshany/thread-pool
ツールをダウンロード