我在公司域中有几台 Windows 10 计算机无法挂载 SMB 共享。域外的其他 Windows 客户端可以正常挂载共享。默认情况下,Samba 服务器仅允许 NTLMv2 身份验证。如果我将其更改为允许 NTLMv1,那么一切都会正常,但我宁愿不这样做。我在客户端的本地安全策略中找到了此设置:
网络安全:Lan Manager 身份验证级别:发送 LM 和 NTLM - 如果协商,则使用 NTLMv2 会话安全
我认为这可能是问题所在,但它是灰色的,所以我无法更改它(可能是因为它是从域继承的)。我试图理解为什么它不尝试协商 NTLMv2?
使用 Wireshark,失败的登录流程如下所示:
Session Setup Request, NTLMSSP_NEGOTIATE
Session Setup Response, Error: STATUS_MORE_PROCESSING_REQUIRED, NTLMSSP_CHALLENGE
Session Setup Request, NTLMSSP_AUTH, User: CDX-MV2U-00012\storageadmin
Session Setup Response, Error: STATUS_LOGON_FAILURE
从 samba 调试日志(级别 5)来看,它应该尝试 v2,但是却没有尝试:
[2021/12/15 16:03:06.442885, 1] ../../librpc/ndr/ndr.c:433(ndr_print_debug)
authenticate: struct AUTHENTICATE_MESSAGE
Signature : 'NTLMSSP'
MessageType : NtLmAuthenticate (3)
LmChallengeResponseLen : 0x0018 (24)
LmChallengeResponseMaxLen: 0x0018 (24)
LmChallengeResponse : *
LmChallengeResponse : union ntlmssp_LM_RESPONSE_with_len(case 24)
v1: struct LM_RESPONSE
Response : c892ccae7c9ba0c300000000000000000000000000000000
NtChallengeResponseLen : 0x0018 (24)
NtChallengeResponseMaxLen: 0x0018 (24)
NtChallengeResponse : *
NtChallengeResponse : union ntlmssp_NTLM_RESPONSE_with_len(case 24)
v1: struct NTLM_RESPONSE
Response : 3331477ae6795d22ae6f4cbee722dff339d6df9df49cef7e
DomainNameLen : 0x001c (28)
DomainNameMaxLen : 0x001c (28)
DomainName : *
DomainName : 'CDX-MV2U-00012'
UserNameLen : 0x0018 (24)
UserNameMaxLen : 0x0018 (24)
UserName : *
UserName : 'storageadmin'
WorkstationLen : 0x001c (28)
WorkstationMaxLen : 0x001c (28)
Workstation : *
Workstation : 'LANOS-GENERAL2'
EncryptedRandomSessionKeyLen: 0x0010 (16)
EncryptedRandomSessionKeyMaxLen: 0x0010 (16)
EncryptedRandomSessionKey: *
EncryptedRandomSessionKey: DATA_BLOB length=16
[0000] 9F 92 82 09 16 F9 93 8C BC A9 E8 0F BA 7E D5 6C ........ .....~.l
NegotiateFlags : 0xe2888215 (3800597013)
1: NTLMSSP_NEGOTIATE_UNICODE
0: NTLMSSP_NEGOTIATE_OEM
1: NTLMSSP_REQUEST_TARGET
1: NTLMSSP_NEGOTIATE_SIGN
0: NTLMSSP_NEGOTIATE_SEAL
0: NTLMSSP_NEGOTIATE_DATAGRAM
0: NTLMSSP_NEGOTIATE_LM_KEY
0: NTLMSSP_NEGOTIATE_NETWARE
1: NTLMSSP_NEGOTIATE_NTLM
0: NTLMSSP_NEGOTIATE_NT_ONLY
0: NTLMSSP_ANONYMOUS
0: NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED
0: NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED
0: NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL
1: NTLMSSP_NEGOTIATE_ALWAYS_SIGN
0: NTLMSSP_TARGET_TYPE_DOMAIN
0: NTLMSSP_TARGET_TYPE_SERVER
0: NTLMSSP_TARGET_TYPE_SHARE
1: NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY
0: NTLMSSP_NEGOTIATE_IDENTIFY
0: NTLMSSP_REQUEST_NON_NT_SESSION_KEY
1: NTLMSSP_NEGOTIATE_TARGET_INFO
1: NTLMSSP_NEGOTIATE_VERSION
1: NTLMSSP_NEGOTIATE_128
1: NTLMSSP_NEGOTIATE_KEY_EXCH
1: NTLMSSP_NEGOTIATE_56
Version: struct ntlmssp_VERSION
ProductMajorVersion : NTLMSSP_WINDOWS_MAJOR_VERSION_10 (10)
ProductMinorVersion : NTLMSSP_WINDOWS_MINOR_VERSION_0 (0)
ProductBuild : 0x4a61 (19041)
Reserved: ARRAY(3)
[0] : 0x00 (0)
[1] : 0x00 (0)
[2] : 0x00 (0)
NTLMRevisionCurrent : NTLMSSP_REVISION_W2K3 (15)