我正在开发一个应用程序,它需要使用SMB访问网络共享。我被告知,如果安全检测到使用NTLM诉1进行身份验证的尝试,那么相应的防火墙规则将被撤销。
因此,我需要确保SMBJ (我可以用于此)支持NTLM v. 2,并默认使用它。
SMBJ支持NTLM诉2吗?默认情况下它会使用吗?
我自己寻找的尝试
在SMBJ的源代码中,我发现了以下片段:
byte[] serverChallenge = challenge.getServerChallenge();
byte[] responseKeyNT = ntlmFunctions.NTOWFv2(String.valueOf(context.getPassword()), context.getUsername(), context.getDomain());
byte[] ntlmv2ClientChallenge = ntlmFunctions.(challenge.getTargetInfo());
byte[] ntlmv2Response = ntlmFunctions.getNTLMv2Response(responseKeyNT, serverChallenge, ntlmv2ClientChallenge);getNTLMv2ClientChallenge和getNTLMv2Response的名字表明可以使用NTLM诉2。
另外,JCIFS主页索赔要求表示SMBJ是一个后续项目:
幸运的是,有多个新的开源SMB项目可以尝试包括以下内容: jcifs-codelibs jcifs-ng smbj
根据其常见问题,自1.3.0版以来,JCIFS一直在使用NTLM诉2。
如果
那么SMBJ应该支持NTLM诉2并默认使用它。
发布于 2020-10-19 07:42:48
是的,SMBJ使用NTLMv2或SPNEGO进行身份验证。您可以配置要使用哪一个。它不使用NTLMv1。
https://stackoverflow.com/questions/64028859
复制相似问题