0

NTLMv2 を使用してプロキシに対して認証しようとしています。しかし、今度は、NTLMv1 を使用した認証が得られます。プロキシは両方のタイプをサポートし、クライアントはドメイン外にあります (ただし、必要な資格情報は持っています)。

クライアントは CentOS 6 で実行されています。プロキシは Squid であり、CentOS 6 でも実行されています。AD として Windows 2019。

HTTP クライアント 4.5 を使用して PoC を試すと、Wireshark でネゴシエーション (メッセージ タイプ 1) 中にFLAG_REQUEST_TARGETが設定されていないことがわかります。内部の HTTP クライアントを見ると、次のように表示されNTLMEngineImplます。

static String getType1Message(final String host, final String domain) throws NTLMEngineException {
        // For compatibility reason do not include domain and host in type 1 message
        //return new Type1Message(domain, host).getResponse();
        return TYPE_1_MESSAGE.getResponse();
    }

内部でString getResponse()は、フラグがどこにも設定されていません。

IE を搭載した Windows マシンから、同じプロキシ セットを使用してリクエストを行うと、Wireshark でFLAG_REQUEST_TARGETセットが表示され、ネゴシエーション後に NTLMv2 を使用することになります。

では、HTTPClient 4.5 を使用してこのフラグを設定する方法はありますか?

4

1 に答える 1