[英]Java HTTPClient 4.5 with NTLM, can't get NTLMv2 authentication
我正在嘗試使用NTLMv2對代理進行身份驗證。 但是反過來,我得到的是使用NTLMv1進行身份驗證。 代理支持兩種類型,並且客戶端在域之外(但具有必需的憑據)。
客戶端正在CentOS 6上運行。代理是Squid,它也在CentOS 6上運行。Windows 2019作為AD。
如果我使用HTTP客戶端4.5嘗試PoC,我會在Wireshark中看到在協商(消息類型1) FLAG_REQUEST_TARGET
未設置FLAG_REQUEST_TARGET
。 查看NTLMEngineImpl
內的HTTP客戶端,我看到:
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設置此標志?
我參加了JCIFS。
盡管我也有NTLEngineImpl的包裝器,所以,實現NTLEngine我只需要覆蓋TYPE1消息(並從真實的Imp中獲取代碼,但在上面添加了一個新標志)。
無論如何,正如我所說,我最終去了另一個圖書館。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.