天天看點

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

一、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),并且加入了許多新的特色。

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

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協定,并建立一個共享檔案夾:

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

2、用戶端(windows10)開啟SMB協定:

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

3、輸入:192.168.135.130共享檔案夾

填寫Windows7賬戶名和密碼

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)
B.抓包分析工作

1、TCP三向交握建立連接配接

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

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 

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

3、通過上圖Response包可以看到,希望服務端使用的版本是SMB 2.10

協定确定後,用戶端程序向伺服器發起一個使用者或共享的認證,這個過程是通過發送session setup request請求資料報實作的。用戶端發送一對使用者名和密碼或一個簡單密碼到伺服器。

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

4、然後伺服器通過發送一個Session setup response應答資料報來允許或拒絕本次連接配接。

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

5、當用戶端和伺服器完成了磋商和認證之後,它會發送一個Tree connect rerquest SMB資料報并列出它想通路網絡資源的名稱。

之後伺服器會發送一個tree connect response應答資料報以表示此次連接配接是否被接受或拒絕

windows smb更改端口_SMB協定(使用說明+過程詳解+抓包分析)

6、最後就可以進行讀寫操作。

原文連結