1. 程式人生 > >NetBIOS網路基本輸入/輸出系統協議分析

NetBIOS網路基本輸入/輸出系統協議分析

簡介

        NetBIOS(Network Basic Input/Output System)即網路基本輸入/輸出系統協議,英文原義:NetBIOS Services Protocols。是由IBM公司開發,主要用於數十臺計算機的小型區域網。NetBIOS協議是一種在區域網上的程式可以使用的應用程式程式設計介面(API),為程式提供了請求低階服務的統一的命令集,作用是為了給區域網提供網路以及其他特殊功能,幾乎所有的區域網都是在NetBIOS協議的基礎上工作的。
        NetBIOS是一個網路協議,在上世紀80年代早期由IBM和Sytec聯合開發,用於所謂的PC-Network。雖然公開發表的文件很少,協議的API卻成為了事實上的標準。
        使用令牌環和乙太網傳輸的NetBIOS現在被稱為NetBEUI。在Micrsoft Windows 98釋出之前,一直廣泛使用。在TCP/IP上執行的NetBIOS稱為NBT,由RFC 1001和RFC 1002定義。NBT的基本思想是在基於IP的網路上模擬基於NetBIOS的PC-Network。NBT在Windows 2000中引入,是現在首選的NetBIOS傳輸。

構成

        NetBIOS名稱用來在網路上鑑別資源。程式用這些名稱開始和結束會話。你能用多個程式配置一臺單獨的機器,每個程式都有獨特的NetBIOS名稱。每臺支援應用的pc機也有使用者定義或通過內部方法獲得NetBIOS站名。
        NetBIOS能包含至多16個阿爾法數字字母。在整個資源路由網路裡,字母的組合必須獨特。在一臺使用NetBIOS的pc機在網路上能完全工作起來之前,PC必須先登記NetBIOS名稱。當客戶端活躍時,客戶端廣播它的名稱。當它成功廣播自己,並沒有其他人和它重名,客戶端就登記成功。登記過程如下:
1.在登陸上,客戶端在所有地方廣播它自己和它的NetBIOS資訊6到10次,確保其他網路成員收到資訊。
2.如果有客戶端A已用此名,客戶端A釋出它自己的廣播,包括它正在使用的名字。請求登陸的客戶端停止所有登記的企圖。
3.如無其他客戶端反對登記,請求登陸的客戶端完成登記過程。
        在windows作業系統中,預設情況下在安裝TCP/IP協議後會自動安裝NetBIOS協議,NetBIOS的報文型別較多、結構複雜,在不同的網路環境和不同用途中會使用不同的報文,可用埠進行區分,WINS協議使用的NetBIOS名字報文UDP 137埠,NetBIOS資料報報文使用UDP 138埠,NetBIOS會話報文使用TCP 139埠。

 

1.NetBIOS Names System

封包格式及各欄位分析

封包格式


欄位分析

標識:佔16位、也叫事務ID,請求方為每次名字服務請求所設定的ID值,響應方在相應的響應報文中要填入這個事務ID值
程式碼和標誌:佔16位:
    請求/響應:佔1位、宣告是請求報文還是響應報文
    操作碼:佔4位、宣告報文的型別
    授權答覆:佔1位、是否為授權答覆
    截斷:佔1位、是否截斷
    期望遞迴:

佔1位、是否期望遞迴
    可用遞迴:佔2位、是否有可用遞迴
    廣播:佔2位、是否是廣播
    響應碼:佔4位、指示請求的結果
問題數:佔16位、在問題記錄欄位中的問題數量,如果是響應報文,該欄位為0。
回答數:佔16位、在回答記錄欄位中的回答數量。
權威記錄數:佔16位、在權威記錄欄位中的記錄數量。
附加記錄數:佔16位、在附加記錄欄位中的記錄數量。
資料:問題記錄、回答記錄、權威記錄、附加記錄。

資料包分析

命令:nbtstat -a <ipaddress>,請求遠端計算機名稱表,抓包。

請求報文:

響應報文:

響應報文中名稱陣列:

 

2.NetBIOS Datagrams

封包格式及各欄位分析

封包格式

其中,當資料包的訊息型別欄位為0x10(傳送給相鄰的特定主機),0x11(傳送給直連網段內的全部主機),0x12(廣播給全部主機),此時的報文格式為:

 

資料包分析

 

3.NetBIOS Sessions

封包格式及各欄位分析

封包格式

欄位分析

型別:佔8位、指明會話報文的型別,可用的值有:{0x00:會話訊息,0x81:會話請求,0x82:正面會話響應,0x83:負面會話響應,0x84:重定向會話響應,0x85:會話保活}。
標誌:佔8位、0~6位保留未使用,第七位作為擴充套件長度位,使NetBIOS會話報文的內容部分最多可以達到128k位元組。
長度:佔16位、NetBIOS會話報文的內容部分的長度,不包括首部的4位元組。

資料包分析

 

<--可用的參考文件實在太少了,水平有限,只能整理出這些了-->