从Wireshark抓包实战看SMB协议:手把手分析一次完整的文件共享连接过程

张开发
2026/4/19 12:03:33 15 分钟阅读

分享文章

从Wireshark抓包实战看SMB协议:手把手分析一次完整的文件共享连接过程
从Wireshark抓包实战看SMB协议手把手分析一次完整的文件共享连接过程当你打开Windows资源管理器访问共享文件夹时背后其实上演着一场精密的协议芭蕾。作为IT从业者我常常发现许多人对SMB协议的理解停留在文件共享的模糊概念直到某次排查权限问题时Wireshark里那些蓝色绿色的数据包才真正让我看清这场舞蹈的每个舞步。本文将带你用协议分析师的视角拆解一次标准的SMB文件访问全过程。1. 实验环境搭建与抓包准备在开始解剖协议之前我们需要准备以下实验环境测试主机Windows 10/11专业版启用SMB客户端功能共享服务器Windows Server 2019配置共享文件夹权限网络配置确保两台机器在同一局域网段抓包工具Wireshark 4.0安装时勾选Npcap驱动关键配置细节往往藏在容易被忽略的地方。建议在Wireshark的捕获选项中启用**Promiscuous Mode**并设置以下过滤器# 基础过滤器逐步细化 tcp.port 445 || smb || smb2注意实际环境中可能需要关闭防火墙临时测试但生产环境务必在分析完成后立即恢复安全策略我曾遇到过一个经典案例某企业NAS访问缓慢最初怀疑是网络带宽问题但Wireshark显示每次文件操作前都有2-3秒的延迟。最终发现是SMB协议版本协商失败导致的降级重试——这正是协议分析的价值所在。2. TCP三次握手所有对话的起点在Wireshark中看到的前三个包永远是TCP的你好-你好-收到三部曲。这三个包构成了所有SMB通信的地基数据包方向标志位组合关键字段典型值示例客户端→服务端SYN1初始序列号(ISN)Seq1000服务端→客户端SYN1,ACK1ISN确认号Seq2000,Ack1001客户端→服务端ACK1确认号Ack2001现代Windows默认使用SMB over TCP端口445这与早期NetBIOS over TCP端口139有本质区别。通过Wireshark的Follow TCP Stream功能可以直观看到整个会话的生命周期。3. SMB协议协商阶段确定通信规则当TCP通道建立后真正的SMB对话才开始。第一个SMB数据包永远是Negotiate Protocol Request这就像两个外交官初次见面时交换名片SMB2 Header Command: NEGOTIATE (0x00) Dialects: SMB 2.002, SMB 2.???, SMB 3.0, SMB 3.0.2, SMB 3.1.1 Capabilities: Encryption, DirectoryLeasing, MultiChannel服务端的响应包会包含几个关键决策Selected Dialect实际采用的协议版本Max Transact Size单次传输最大尺寸Server Capabilities服务器支持的功能位图提示如果看到Dialect降级到SMB1NT LM 0.12应立即检查组策略中的SMBv1禁用设置这存在严重安全风险4. NTLM身份验证流程安全门禁系统协议协商完成后系统会开始Session Setup阶段。现代Windows默认使用NTLMv2认证其挑战-响应机制就像一套动态密码锁客户端发起请求携带用户名和域名不含密码服务端返回Challenge8字节随机数如3dfaefbce47bc2db客户端计算Response使用NTLM哈希加密Challenge服务端验证Response与本地计算结果比对在Wireshark中定位认证包的小技巧# 查找NTLMSSP认证流程 smb2.cmd 1 smb2.flags.response 0 # 客户端请求 smb2.cmd 1 smb2.flags.response 1 # 服务端响应认证失败的数据包会明确标注STATUS_LOGON_FAILURE (0xc000006d)而成功认证后会分配唯一的Session ID这个ID将贯穿后续所有操作。5. 共享资源访问树连接与文件操作通过身份验证后客户端会发起Tree Connect请求访问具体共享。这里有个有趣的现象即使只是打开共享根目录系统也会先连接IPC$共享命名管道这是Windows用于RPC通信的特殊共享。典型的文件操作流程表现为创建文件句柄SMB2 CREATE Request查询文件信息SMB2 QUERY_INFO Request读取文件内容SMB2 READ Request关闭文件句柄SMB2 CLOSE Request在分析企业级存储性能问题时我特别关注SMB2 CREATE请求中的RequestedOplockLevel字段。**Oplock机会锁**的协商策略会极大影响多用户并发访问时的性能表现。6. 安全加固与异常流量识别正常的SMB流量有其固定模式而异常流量往往表现出以下特征爆破攻击短时间内大量Session Setup请求伴随STATUS_LOGON_FAILURE永恒之蓝攻击使用SMBv1的NT Create AndX Request和PeekNamedPipe请求数据外泄异常的SMB2 WRITE请求指向非标准共享路径建议在Wireshark中使用以下过滤规则监控风险# 检测SMB暴力破解 smb2.nt_status 0xc000006d | count() by smb2.sid对于安全要求较高的环境可以强制启用SMB3加密通过smb2.encrypted 1过滤验证并禁用所有SMBv1相关协议。

更多文章