Windowsのスレッドインジェクションの概念検証

スレッドインジェクションとは、実行中のプロセスを対象にして、そのプロセスの中に新たにスレッドを追加して、悪意あるコードを実行します。

  • 手順
    • 制御するターゲットプロセスを見つけて開きます。今回はPIDで指定します。
    • 悪意のあるコード用にローカルプロセスにメモリ領域を割り当てます。
    • 割り当てられたローカルプロセスのメモリに悪意のあるコードを書き込みます。
    • 全スレッドからPIDをキーに、ハイジャックするターゲットプロセスを特定します。
    • 対象のリモートプロセスにスレッドを開きます。
    • 作成したスレッドを一時停止します。
    • スレッドコンテキストを取得します。
    • コンテキストの命令ポインタを悪意のあるコードの開始位置に更新します。
    • 更新したコンテキストをターゲットのスレッドにセットします。
    • ハイジャックされたスレッドを再開します。

ソースコードはこちらです。

https://github.com/yokohama/winlab/blob/main/thread-injector.cpp

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です