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

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

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

连接到相应资源后,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. TCP协议:三次握手过程详解

    本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图1所示,给出了TCP通信过程的示意图. 上图主要包括三部分:建立连接.传输数 ...

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

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

  5. Wireshark数据抓包分析(网络协议篇)第1章网络协议抓包概述

    Wireshark数据抓包分析(网络协议篇)第1章网络协议抓包概述 网络协议是用于不同计算机之间进行网络通信的.网络协议是网络上所有设备(如网络服务器.计算机.交换机.路由器等)之间通信规则的集合,它 ...

  6. telnet协议的Wireshark抓包分析

    文章目录 1.telnet背景介绍 2.telnet服务器的安装 3.使用MobaXterm的telnet连接 4.使用Wireshark进行抓包 1.telnet背景介绍 常用的登录远程服务器的方式 ...

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

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

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

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

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

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

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

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

最新文章

  1. 得到ios设备的屏幕尺寸信息
  2. 内存扩展算法 linux,Linux下内存的使用率正确的算法
  3. IDEA报错:Cannot resolve plugin org.apache.maven.plugins:*
  4. centos rpm mysql 5.6_centos6.5 mysql5.6 RPM安装
  5. Leetcode 648.单词替换
  6. Fiddler2用于手机抓包时的配置方法
  7. 夜间灯光遥感数据下载方法
  8. IDEA代码格式化校验
  9. 【胡学长 带你学 Global Mapper 】新手必看 入门指南
  10. 指纹算法 c语言,指纹识别算法研究
  11. [Android/Icon] 分享一个图标/Icon制作网站
  12. java微信支付通知接口_java实现微信支付结果通知
  13. 怎么录制自己手机上的视频
  14. Android Adb 连接海马玩模拟器
  15. Unity_检测颜色相似度
  16. codewars练习(javascript)-2021/2/24
  17. 括号画家(括号匹配)
  18. Linux下的压测工具 hey
  19. 13 款开源的全文检索引擎
  20. LCD12864液晶显示屏与12位AD模块程序

热门文章

  1. 什么是物联网?常见IoT协议最全讲解
  2. 找到某个关键字 同义词词林 python_Python从小白到攻城狮(7):函数
  3. FPGA产生m序列及其应用
  4. HackTheBox-Magic-Walkthrough
  5. 使用JDOM生成/解析XML文档
  6. GitHub微信防撤回项目 for Mac
  7. 装机、资料库结构与文件备份方案
  8. Leetcode 5053. 地图分析 (150周赛)
  9. SecureCRT 8.5下载安装破解
  10. java 概率生成随机数_JAVA 生成随机数,并根据概率、比率