Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

SMB2/NegotiateProtocol

Opcode 0x00

这是任何新的 SMB2 TCP session 上发出的第一个 SMB2 command。它用于协商要使用的协议版本,也用于让服务器提供一组有效 authentication mechanisms,客户端必须在后续 SMB2/SessionSetup 调用中使用这些机制。

SMB2/NegotiateProtocol Request

SMB2/NegotiateProtocol Request Packet Format

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Buffer Code | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | | |

Buffer Code

SMB2/BufferCode

SMB2/NegotiateProtocol Response

SMB2/NegotiateProtocol Response Packet Format

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Buffer Code | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |+-+-+-+-+ +-+-+-+-+| Server |+-+-+-+-+ GUID +-+-+-+-+| |+-+-+-+-+ +-+-+-+-+| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |+-+-+-+-+ Current Time +-+-+-+-+| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |+-+-+-+-+ Boot Time +-+-+-+-+| |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Sec Blob Offset | Sec Blob Length |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | | | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Sec Blob ANS.1/DER encoded blob containing supported authentication mechanisms+-+-+-+-+...

Buffer Code

SMB2/BufferCode

Sec Blob Offset

这是 security blob 的字节偏移量,从 SMB2 Header 的起始处开始计算。

Sec Blob Length

此字段包含 security blob 的长度。

Sec blob

如果存在,此字段包含 security blob,其中包含服务器支持的 authentication mechanisms。此 blob 会被填充到 8 字节边界开始,因此会有 4 个填充字节?

NT Status Codes

讨论

回复中的两个 timestamps 可能分别是服务器的当前时间和服务器启动时间。

下面是一个 SMB2/Negotiate request packet 示例

[000] FE 53 4D 42 40 00 00 00 00 00 00 00 00 00 3F 00 .SMB@... ......?.[010] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........[020] FF FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........[030] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........[040] 24 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 $....... ........[050] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........[060] 00 00 00 00 00 00 ......

以及一个 response 示例

[000] FE 53 4D 42 40 00 00 00 00 00 00 00 00 00 01 00 .SMB@... ........[010] 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........[020] FF FE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........[030] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........[040] 41 00 00 00 06 00 00 00 B9 FB 9B 60 AD 9C DD 40 A....... ...`...@[050] A5 47 B1 34 A4 6C 8D 9D 0D 00 00 00 00 00 01 00 .G.4.l.. ........[060] 00 00 01 00 00 00 01 00 04 B5 EC 87 FE E3 C5 01 ........ ........[070] 72 A2 34 21 D6 E3 C5 01 80 00 40 00 00 00 00 00 r.4!.... ..@.....[080] 60 3E 06 06 2B 06 01 05 05 02 A0 34 30 32 A0 30 `>..+... ...402.0[090] 30 2E 06 09 2A 86 48 82 F7 12 01 02 02 06 09 2A 0...*.H. .......*[0A0] 86 48 86 F7 12 01 02 02 06 0A 2A 86 48 86 F7 12 .H...... ..*.H...[0B0] 01 02 02 03 06 0A 2B 06 01 04 01 82 37 02 02 0A ......+. ....7...

在 response 中,从 0x80 开始的数据是 ASN.1/DER 编码,解码如下:

 0 60 62: [APPLICATION 0] { 2 06 6: OBJECT IDENTIFIER '1 3 6 1 5 5 2' 10 A0 52: [0] { 12 30 50: SEQUENCE { 14 A0 48: [0] { 16 30 46: SEQUENCE { 18 06 9: OBJECT IDENTIFIER '1 2 840 48018 1 2 2' 29 06 9: OBJECT IDENTIFIER '1 2 840 113554 1 2 2' 40 06 10: OBJECT IDENTIFIER '1 2 840 113554 1 2 2 3' 52 06 10: OBJECT IDENTIFIER '1 3 6 1 4 1 311 2 2 10' : } : } : } : } : }

Imported from https://wiki.wireshark.org/SMB2/NegotiateProtocol on 2020-08-11 23:25:11 UTC

相关 Wireshark Wiki 页面

网络分析技术档案