NetBIOS与SMB协议概览
Windows局域网络有两种管理方式对等网工作组模式和主从域管理模式。对等网(Peer to Peer),所谓对等是指,在LAN中所有的PC机都是平等关系,没有隶属、管理与被管理的关系,它们的地位是平等的。我们的计算机机房就是一个简单的对等网,网络中的所有PC都平等关系。与对等网相对的是基于目录服务进行集中认证、授权管理共享资源的网络——Windows域管理模式。Windows域管理模式,在Window 域中由活动目录对域中的软、硬件资源进行管理。
在对等网中,网上邻居是共享资源的方式。通过网上领居,本地计算机可以访问网络中其它计算机共享的资源,本地计算机也可以把自己的资源共享给其它计算机。网上邻居是使用NetBIOS协议传输数据。NetBIOS是由IBM开发的,全称是:Network Basic Input and Output System。在Windows NT下的NetBIOS 是基于TCP/IP环境的,与早期DOS下的NetBIOS有所不同。RFC1001和1002是TCP/IP环境下的NetBIOS 协议标准。当安装了TCP/IP协议后,NetBIOS协议已经自动安装到计算机中。NetBIOS 使用下列端口:UDP/137(NetBIOS 名称服务)、UDP/138(NetBIOS 数据报服务)、TCP/139(NetBIOS 会话服务);SMB 使用下列端口:TCP/139、TCP/445。
SMB是Server Message Block的缩写。
图一Windows XP下的NetBIOS设置
在上图中,可以看到默认的设置是从DHCP服务器使用NetBIOS设置。如果使用静态的IP地址或DHCP 服务器不提供NetBIOS设置,则启用TCP/IP上的NetBIOS。本次的协议分析环境是使用静态的IP地址。顺便说一下,如果计算机所在的网络环境内没有DHCP服务器,而又没有设置静态的IP地址,计算机会自动获取以169.254开头的IP地址。
NetBIOS协议的两个标准文档RFC1001和1002一共有二百多页。在这里只做粗略地分析。使用的抓包工具是OmniPeek。
分析场景:
图二
以下的NetBIOS和SMB协议是在此场景是进行。双击桌面上的“网上邻居”,打开如下图的界面:
图三
此时抓取的部分数据包(共有67个数据包):
图四
分析以上抓取的数据包,对NetBIOS Name Service(名字服务)、NetBIOS Session、SMB等进行分析。查看Name Service数据包的内容与格式:
图五Name Service
由上图可以看出:PCA(192.168.1.8)发出一个广播包,查询工作组名WORKGROUP,Netbios名字服务使用UDP协议,端口号是137。
双击打开workgroup工作时抓取的数据包,共13个:
图六
由上图可以看出,只有一个Netbios 会话管理数据包,其它的全部是SMB协议数据包。
图七SMB数据包
上图的中SMB数据包被封装在Netbios Session Service中,使用TCP协议传输,端口号为139。
在workgroup中双击计算机PCB(192.168.1.6),访问它时抓取如下的69个数据包,SMB数据包占据绝大多数:
图八
由上图抓取的数据来看,网上邻居访问计算机的命令操作以SMB协议传输。打开计算机上共享文件夹时抓取的数据包:
图九
查看第一个数据包的详细内容:
图十
由上面数据包可以看出,这个数据包是PCA向PCB发出查看共享文件的请求。
选择中某个文件时抓取的数据包:
图十一
在选择的文件上右键单击,弹出快捷菜单时抓取的数据包,文件名称:文档.txt:
图十二
查看一个数据包的部分内容:
图十三
把计算机PCB上共享的文件复制到计算机PCA时,抓取的数据包:
图十四
查看一个数据包的部分内容:
图十五
在我们看似非常简单的操作,对于计算机来说,就要做很多的工作,因为计算机所有的工作都是执行编程人员事先编好的指令。计算机之间没情感,不能看脸色行事,只是按部就班执行命令。