2012-02-09 16 views
0

ここでは、すべてのプロセスに署名が設定されています。 COMインターフェイスを公開するSYSTEM権限を持つプロセスがあります。 COMインターフェイスを使用するために私たちが署名したもの以外のプロセスは望んでいません。これを達成する方法はありますか?また、これを可能にする他のWindows IPCメカニズムも検討しています。これを可能にする他のIPCメカニズムを自由に提案してください。 現在、リクエストとともにpidを送信していますが、簡単になりすますことができます。助言がありますか?Comクライアント認証

答えて

0
  1. カスタムプロキシ/スタブまたはinprocハンドラを登録し、プロキシまたはハンドラにバイナリの署名をチェックするコードを組み入れるようにします。

  2. すべてのアクセスを、検証を実行し、サーバーとのチャレンジ/レスポンスプロセスを実行するinproc COMオブジェクト経由で行います。もちろん、デバッガを使用すると簡単に偽装することもできます。

  3. ただそれをあきらめます。署名されたプロセスでさえスプーフィングすることができます - 中断されたフラグでCreateProcessを使用し、DLLを注入し、JMPを使ってエントリポイントをDLLに上書きします。最初の呼び出しはSleep(1000)なので、500ms実行できるようにしてからジャンプして元のコードに置き換えます。 DLLでコードを実行していますが、EXEは変更されていません。

これは、デバッグAPIを使用しなくても可能です。ちょっと、彼らはあなたのサービスにチェックを外すためにパッチを当てることができます!

関連する問題