自分のサイトから広告のクレデンシャルを必要とするWebサイトに移動するユーザーになりすまそうとしています。パスワードだけでなく、ユーザーIDもすでに知っています。コードに、広告に接続してユーザーIDだけでユーザーになりすます方法があるかどうか疑問に思いました。
全体の目的は、プロキシログオンサービスを許可することです。
自分のサイトから広告のクレデンシャルを必要とするWebサイトに移動するユーザーになりすまそうとしています。パスワードだけでなく、ユーザーIDもすでに知っています。コードに、広告に接続してユーザーIDだけでユーザーになりすます方法があるかどうか疑問に思いました。
全体の目的は、プロキシログオンサービスを許可することです。
-5票で質問に答えるのは少し緊張しています。そのような機能が存在することを指摘したいと思います。これは、プロトコル遷移拡張機能と呼ばれます。S4USelfとしても知られています
Active Directoryは主にKerberosを使用して認証を行うため、Microsoftはプロトコルトランジションを発明しました。ただし、多くの場合、Kerberosポートはインターネット環境でブロックされています。そのため、アプリケーションはKerberosを使用して認証を行うことはできません。これは、通常はポート80のみが開かれているWebアプリケーションに特に当てはまります。この問題を解決するために、Microsoftは、ASP.NETフォームベースの認証など、他のメカニズムによる認証の実行を許可しています。次に、プロキシサーバーは、独自のメカニズムを使用して認証したばかりのユーザーのKerberosチケットを取得できます。このプロセスでは、ActiveDirectoryのパスワードは必要ありません。ただし、Microsoftは、このアプローチを使用してKerberosチケットを取得するアプリケーションが、ユーザーに対して独自の認証を行うことを期待していることに注意してください。例えば、ユーザー名とパスワードのセットを格納しているSQLサーバーデータベースがある場合があります。アプリケーションは、SQL Serverデータベースに保存されているユーザー名とパスワードを使用して認証し、指定されたユーザーのKerberosチケットを取得します。
多くの人が指摘しているように、これが実際に発生する可能性がある場合、これは大きなセキュリティホールのように見えます。これが細かい印刷です。プロトコル移行アプローチを使用してKerberosチケットを取得するには、プロセスにオペレーティングシステム特権の一部として機能する必要があります。これは、システムで非常に高い特権です。簡単にするため。通常のADユーザーアカウントとしてログインし、プロトコル移行アプローチを使用してプログラムを実行してドメイン管理者チケットを取得しようとすると、オペレーティングシステムの一部として機能する権限がないため、機能しません。デフォルトでは、NT Authority\LocalSystem
アカウントにこの権限があります。したがって、これを行うには、多くの場合、サービスを作成し、使用するサービスアカウントを設定するだけです。NT Authority\LocalSystem
。このサービスには、ActiveDirectoryから必要なKerberosS4USelfチケットを取得する機能があります。
ちょっと待って。私は特定のワークステーションマシンのローカル管理者である可能性があるため、これは依然としてセキュリティホールであると多くの人が言うでしょう。その後、好きなサービスをインストールできます。自分でサービスを作成し、S4USelfを使用してドメイン管理者チケットを取得し、エンタープライズ環境のいくつかの重要な情報にアクセスできます。まあ...これは真実ではありません。Microsoftは、S4USelf Kerberosチケットを特別なものにしているため、チケットを要求するマシンでのみ使用できます。つまり、ネットワーク上のS4USelfチケットを使用して、他のサービスを要求することはできません。それはもっと合理的に聞こえますよね?アクセスはその特定のマシンのみに制限されます。はい、パスワードを知らなくても他のユーザーアカウントになりすますことができるという事実を受け入れるのはまだ難しいことを私は知っていますが、その機能はそこにあります。
この線に沿って、制約委任と呼ばれる別のクレイジーなものがあります。S4UProxyとも呼ばれます。基本的に、この偽装機能をネットワークリソースに拡張します。つまり、S4USelfチケットを使用すると、S4UProxyチケットを取得できます。S4UProxyチケットを使用すると、Active Directoryにパスワードを提供しなくても、偽装されたIDを使用して選択したネットワークリソースにアクセスできます。繰り返しますが、これは非常にクレイジーに見えますが、ここに詳細があります。まず、デフォルトでは、ActiveDirectoryに参加しているすべてのマシンがS4UProxyチケットを要求することはできません。ドメイン管理者は、これが意識的に発生するように、コンピューターオブジェクトのフラグをオンにする必要があります。ドメイン管理者は、これを許可することは、基本的に、このマシンをドメイン内のドメインコントローラーのように扱うと言っているようなものであることをよく理解する必要があります。それは王国への鍵を握っています。第二に、すべてのサービスがS4UProxyアプローチで取得できるわけではありません。ドメイン管理者は、コンピューターオブジェクトでSPNを指定することにより、S4UProxyの使用を許可するサービスを明示的に選択できます。そのため、ConstraintDelegationという名前が付けられました。クレイジーに見えますが、それほど悪くはありません。
私が知っていることではありません。ADのセキュリティは、(通常)不正アクセスを防ぐために設定されているため、次のいずれかを行う必要があります。
もちろん、パスワード/アカウントをブルートフォースすることは、それがあなた自身のネットワークであり、あなた自身に法的な影響を与えない限り、あまり良い方法ではありません。
理想的には、テストする偽のユーザーを作成することをお勧めします。
お役に立てば幸いです。