次の方法で共有


Null セッション

null セッションに到着する呼び出しが、認証された呼び出しのように表示されることがあります。 具体的には、 RpcBindingInqAuthClient 関数を 呼び出すと、呼び出しに使用される認証レベルとセキュリティ プロバイダーが返されます。 この操作は、呼び出しが null セッションでなかったという意味ではありません。 2 つの問題は直交です。 Microsoft Windows 2000 では、リモート プロシージャ コールで呼び出し元を偽装し、権限借用後にアクセス許可をチェックできます。 Microsoft Windows XP では、RpcServerInqCallAttributes 関数を呼び出し、NullSession フラグのチェックする方が高速です。

Windows 2000 と Windows XP には、もう 1 つの関連する違いがあります。 RPC_IF_ALLOW_SECURE_ONLY フラグのみが指定されている場合、Windows 2000 では null セッションの呼び出しが実行されます。 Windows XP では、既定のセキュリティ設定の一般的な厳格化により、このフラグを指定すると、アクセスが拒否された状態で null セッションの呼び出しが拒否されます。 ただし、RPC_IF_ALLOW_SECURE_ONLY フラグを使用しても、RPC は呼び出し元ユーザーの特権レベルを保証しません。 すべての RPC チェックは、ユーザーが有効な資格情報を持っているということです。 呼び出し元のユーザーがゲスト アカウントまたはその他の低い特権アカウントを使用している可能性があります。 RPC_IF_ALLOW_SECURE_ONLYを使用した後に、サーバーが高い特権を引き受けないことを確認します。