一、SMB概述

SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。SMB使用了NetBIOS的应用程序接口 (ApplicationProgram Interface,简称API),一般端口使用为139,445。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(CommonInternet File System),并且加入了许多新的特色。

SMB协议是一个很重要的协议,目前绝大多数的PC上都在运行这一协议,windows系统都充当着SMB协议的客户端和服务器,所以SMB是一个遵循客户机服务器模式的协议。SMB服务器负责通过网络提供可用的共享资源给SMB客户机,服务器和客户机之间通过TCP/IP协议、或者IPX协议、或者是NetBEUI进行连接。

SMB是应用层(和表示层)协议,使用C/S架构,其工作的端口与其使用的协议有关。

当远程连接计算机访问共享资源时有两种方式:

★共享计算机地址共IP享资源路径

★共享计算机名共享资源路径

其中,使用计算机名访问时,SMB服务工作在NetBIOS协议之上,用的是TCP的139端口;使用IP地址访问时,用的是TCP的445端口。

二、SMB工作原理

01

首先客户端发送一个SMB negprot请求数据报,并列出它所支持的所有SMB协议版本。服务器收到请求信息后响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回0XFFFFH,结束通信。

02

协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个SesssetupX应答数据报来允许或拒绝本次连接。

03

当客户端和服务器完成了磋商和认证之后,它会发送一个Tcon或TconX SMB数据报并列出它想访问网络资源的名称,之后服务器会发送一个TconX应答数据报以表示此次连接是否被接受或拒绝。

04

连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。

三、抓包分析SMB服务的具体过程

环境搭建

服务端:Windows7虚拟机一台(账户名:SoisMoooo;密码:111)

客户端:Windows10计算机一台(安装Wireshark)

windows7的IP:192.168.135.130

Windows10的IP:192.168.135.1

A.开启SMB协议

1、服务端(windows7)开启SMB协议,并建立一个共享文件夹:

2、客户端(windows10)开启SMB协议:

3、输入:192.168.135.130共享文件夹

填写Windows7账户名和密码

B.抓包分析工作

1、TCP三次握手建立连接

2、SMB协商过程:

首先客户端发送一个SMB negotiate protocol request请求数据报,并列出它所支持的所有SMB协议版本

0x0202   SMB 2.002
0x0210   SMB 2.10
0x0300   SMB 3.0
0x0302   SMB 3.02
0x0311   SMB 3.11 

3、通过上图Response包可以看到,希望服务端使用的版本是SMB 2.10

协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送session setup request请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器。

4、然后服务器通过发送一个Session setup response应答数据报来允许或拒绝本次连接。

5、当客户端和服务器完成了磋商和认证之后,它会发送一个Tree connect rerquest SMB数据报并列出它想访问网络资源的名称。

之后服务器会发送一个tree connect response应答数据报以表示此次连接是否被接受或拒绝

6、最后就可以进行读写操作。

原文链接

开启smb协议_SMB协议(使用说明+过程详解+抓包分析)相关推荐

  1. windows smb更改端口_SMB协议(使用说明+过程详解+抓包分析)

    一.SMB概述 SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议.SMB 是 ...

  2. 一条标准SQL语句是怎么执行之“步步惊心”过程详解与案例分析

    SQL逻辑执行过程详解(限标准SQL) 表与数据 -- 1 创建 HR.Employees表 CREATE TABLE HR.Employees (empid INT NOT NULL IDENTIT ...

  3. pap认证过程_PPP协议当中LCP协商过程详解和PAP认证原理介绍

    路由策略 filter-policy 案例1:filter-policy(rip) 案例2:filter-policy(ospf) route-policy 案例3:控制路由引入并修改路由属性 策略路 ...

  4. SSL/TSL双向认证过程与Wireshark抓包分析

    原博文 1. SSL/TSL基本知识 (1)SSL/TLS协议运行机制:https://blog.csdn.net/fw0124/article/details/40873253 (2)图解SSL/T ...

  5. 云片采用http(https)协议发送短信过程详解

    按照步骤100%发送短信成功.如有疑问:请联系QQ254079335 源代码地址:点击获取源代码 1. 到https://www.yunpian.com/entry/register注册用户名 2. ...

  6. 理论经典:TCP协议的3次握手与4次挥手过程详解

    理论经典:TCP协议的3次握手与4次挥手过程详解 https://blog.csdn.net/omnispace/article/details/52701752 转载于:https://www.cn ...

  7. EIGRP实验--协议工作过程详解(一)

    实验目的: 了解五种报文的格式及工作过程:初步学习,不妥当的地方还请大牛指教! Hello: 我们现在R1路由器上面开启EIGRP进程,R2上暂时不开启,然后使用wireshark进行抓包分析: 由此 ...

  8. 简述tcp协议三报文握手过程_TCP协议的3次握手与4次挥手过程详解

    前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服 ...

  9. (转)理论经典:TCP协议的3次握手与4次挥手过程详解

    摘要: 本文将分别讲解经典的TCP协议建立连接(所谓的"3次握手")和断开连接(所谓的"4次挥手")的过程. 1.前言 尽管TCP和UDP都使用相同的网络层(I ...

  10. U-Boot 之一 零基础编译 U-Boot 过程详解 及 编译后的使用说明

      在之前的博文 Linux 之八 完整嵌入式 Linux 环境介绍及搭建过程详解 中我们说了要一步步搭建整个嵌入式 Linux 运行环境,今天就开始编译 U-Boot.我所使用的硬件平台及整个要搭建 ...

最新文章

  1. 怀旧版大脚插件未能从服务器,魔兽世界怀旧服大脚插件
  2. 推荐算法炼丹笔记:非采样的负样本
  3. 014箱子开合并移动
  4. 长这么大了,一件事也没做好过
  5. 设计师网站大全视野导航,灵感、素材统统搞定
  6. JPA @Lob 存储大文本 org.postgresql.util.PSQLException: 大型对象无法被使用在自动确认事物交易模式。问题...
  7. 相信大家看了这篇文章对Oracle如何工作有一个形象的了解!
  8. Samba之打印机共享配置 (CUPS系统)
  9. how to send blogs to wordpress through the windows live writer
  10. rpc无法启动计算机,RPC服务器不可用,无法进入系统,怎么处理?
  11. win7科学计算机的用法,Win7自带计算器使用功能介绍
  12. 外汇兑换人民币业务的居民
  13. build up__css
  14. android gridview textview,gogo体育官方网站-gogo体育官方网站
  15. html字体名称有哪些,css有哪些字体系列?
  16. 支付宝将推出免费WiFi
  17. 卷积神经网络实现手写数字集
  18. 有联系的标识变量的变化一定要同步
  19. 人脸识别之人脸对齐(三)--AAM算法
  20. matlab中光敏电阻,51单片机光敏电阻寻光程序

热门文章

  1. Linux下安装zabbix详细介绍
  2. Windows中cmd命令启动Oracle数据
  3. python提取百度首页链接_python获取百度热榜链接的实例方法
  4. php完整系统由哪几部分,一个完整的物联网系统由哪些部分组成,各有什么功能?...
  5. sql_插入,修改,删除
  6. php 判断输入字符串,php 判断(输入框) 字符串函数
  7. Angr安装与使用之使用篇(四)
  8. (10)二进制文件方式部署Kubernetes高可用集群----------部署node节点
  9. [例程]string.trim().length()的用法
  10. 保证服务4个9的可用性的核心思路