
SharpHookはSharpRDPThiefプロジェクトに触発されて作られました。さまざまなAPIフックを使用して、目的の認証情報を取得します。
内部ではEasyHookプロジェクトを使用しており、目的のプロセスが起動されるとSharpHookは自動的に依存関係をターゲットプロセスに注入し、EasyHookのIPCサーバーを介して認証情報を送信します。
| プロセス | APIコール | 説明 | 進捗 |
|---|---|---|---|
| mstsc | CredUnPackAuthenticationBufferW | mstscにフックし、ユーザー名、パスワード、リモートIPを取得します | 完了 |
| runas | CreateProcessWithLogonW | runasにフックし、ユーザー名、パスワード、ドメイン名を取得します | 完了 |
| powershell | CreateProcessWithLogonW | powershellにフックし、ユーザーが別の資格情報を入力した場合のコマンド出力を取得します。例: Start-Process cmd -Credential X | 完了 |
| cmd | RtlInitUnicodeStringEx | cmdにフックし、PsExec、passwordなどのキーワードをフィルタリングできます | 進行中 - cmdがクラッシュする理由不明 |
| MobaXterm | CharUpperBuffA | MobaXtermにフックし、SSHおよびRDPログインの認証情報を取得します | 進行中 - 32ビットプロセスであることとFodyが動作しない問題あり。回避策としてプロジェクトをx86でコンパイルすれば正常に動作します |
| explorer (UACプロンプト) | CredUnPackAuthenticationBufferW | explorerにフックし、UACプロンプトからユーザー名、パスワード、ドメイン名を取得します | 進行中 - UACがアクセス拒否を表示。おそらく整合性レベルの問題 |

いくつかのプロセスで問題が発生しているため、ぜひご協力ください。Twitterで連絡していただくか、プルリクエストを開いてください。