
タイマーを使用してコールスタックを動的にマスキングするためのPoC実装。
このリポジトリは、タイマーを使用してコールスタックを動的に偽装するPoCテクニックを紹介しています。インプラントがスリープする前にタイマーをキューに積んで、コールスタックを偽のスタックで上書きし、実行を再開する前に元のスタックを復元することができます。つまり、スリープ中にインプラントのメモリをマスクするのと同じ方法で、メインスレッドのコールスタックもマスクできます。
完全な技術解説については、付随するブログ記事(https://www.cobaltstrike.com/blog/behind-the-mask-spoofing-call-stacks-dynamically-with-timers/)をご覧ください。
デフォルトでは、PoCはspoolsv.exeから取得した静的コールスタックを模倣します:

--dynamic フラグを指定すると、CallStackMaskerはアクセス可能なすべてのスレッドを列挙し、目的の状態(WaitForSingleObjectEx)にあるスレッドを見つけて、そのコールスタックと開始アドレスを模倣します。これを以下に示します:

NB:注意事項として、このPoCは以下のWindowsビルドでテストされています:
22h2 (19045.2486)
他のバージョンではテストされておらず、異なるWindowsビルドでは動作しない可能性があります。