声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
No.1 CIF协议简介
CIFS (Common Internet File System)协议是一个文件共享协议,是由microsoft在SMB的基础上发展,扩展到Internet上的协议。他和具体的OS无关,CIFS协议有三个版本:SMB、SMB2和SMB3,现在SMB2和SMB3用的比较普遍.它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。
No.2 环境搭建
在windows上创建CIFS协议非常简单,只要在一个目录上右键单击,在弹出的菜单中选择属性-->共享,再配置权限即可。在其它电脑上只要输入IP和共享名就可以访问了。
No.3 CIFS工作方式分析
1.首先,通过抓包工具查看。CIFS协议是基于TCP协议的,所以必定是以三次握手开始,如下图所示:
2.接下来的第一个CIFS操作时Negotiate(协商),具体协商内容见下图:
3.客户端把自己所支持的所有CIFS版本,比如SMB2和NT LM0.12等都发给服务器。
服务器从中挑出自己所支持的最高版本回复给客户端。从下图可知,服务器选择是SMB2。
4.客户端和服务器协商好CIFS版本之后,就会建立CIFS会话(Session Setup)。Session Setup的主要任务是身份验证,常用的方式有Kerberos和NTLM(这里用到的是NTLM)。客户端发起建立会话请求,服务器回复建立会话响应,如下图所示:
5.Session Setup后,意味着客户端就可以打开[\xxx.xxx.1.4d](file://xxx.xxx.1.4/d)了,接下来就可以进行文件读写了。通过客户端在服务器上创建一个test.txt,此时的通信包如下图所示:
通信图
No.4
结语
后续我们会对关于协议存在的安全行问题进行深入探讨