剛剛抓包發現了一個NBNS協議的數據包,出於興趣查了一下資料,原來是這么一回事情。
NBNS = NetBIOS Name Service,應該是在做命名查詢。微軟WINS的實現就是一個例子。例如開啟了WINS的主機就會發出目的地址地址.*.*.255進行廣播,使用UDP協議,連137端口。
可是很多人,尤其是一些網管經常發現大量的這樣報文,最終影響網絡,甚至導致交換機的癱瘓,這是為什么呢? 一下就有一個例子:
最近也發現很多接入交換機出現類似的情況,因為接入交換機端口所屬VLAN在核心交換機上也有,最終竟然導致接入交換機和匯聚交換機、核心交換機間的鏈路阻塞,使得網絡變得基本不通
初步分析了一下捕獲到的數據,基本認定原因在於好多個人計算機內包含惡意/流氓軟件,會不停地訪問btamail.net、bar.baidu.com、sobar.baidu.com等域名,同時,windows的名字解析機制的順序是:
1. hosts
2. net bios, wins, lmhosts
3. dns
所以,就會在網絡中產生大量nbns的數據包
解決辦法(准備測試):
設置交換機的ACL禁用源端口137、目的端口137,如果要用到wins服務,另當別論。
NetBIOS:
是Network Basic Input/Output System的簡稱,一般指用於局域網通信的一套API
歷史
NetBIOS是一個網絡協議,在上世紀80年代早期由IBM和Sytec聯合開發,用於所謂的PC-Network。雖然公開發表的文檔很少,協議的API卻成為了事實上的標准。
隨着PC-Network被令牌環和以太網取代,NetBIOS也應該退出歷史舞台。但是,由於很多軟件使用了NetBIOS的API,所以NetBIOS被適配到了各種其他的協議上,比如IPX/SPX和TCP/IP。
使用令牌環和以太網傳輸的NetBIOS現在被稱為NetBEUI。在Micrsoft Windows 98發布之前,一直廣泛使用。在TCP/IP上運行的NetBIOS稱為NBT,由RFC 1001和RFC 1002定義。NBT的基本思想是在基於IP的絡上模擬基於NetBIOS的PC-Network。NBT在Windows 2000中引入,是現在首選的NetBIOS傳輸。
概述
不管使用哪一種傳輸方式,NetBIOS提供三種不同的服務:
名字服務:名字登記和解析
會話服務:可靠的基於連接的通信
數據包服務:不可靠的無連接通信
當NetBIOS是數據鏈路層協議時,可以通過5Ch中斷訪問其功能。傳遞給這些函數的消息使用NCB格式。
NetBIOS和NetBEUI被設計為僅僅用於局域網,因此不支持路由,並且最多只能處理72個節點或者設備。NetBIOS和NetBEUI經常使用廣播實現,尤其是名字服務的相關操作。
NBT使用一個或多個NBNS(NetBIOS Name Server(s))將名字服務擴展到多個子網。NBNS是動態DNS的一種,Microsoft的NBNS實現稱為WINS。另外,為了將虛擬的NetBIOS網絡擴展到多個IP子網,WINS標准還引入了一個或者多個NBDD(NetBIOS Datagram Distribution) 服務器。不幸的是,微軟的NBDD實現從來沒有工作過。
NBNS(NetBIOS Name Service)
名字服務。名字服務器。
類似於TCP/IP協議中的DNS,它負責查找目標機器相應的節點地址(TCP/IP協議中為IP地址),並賦予一個NetBIOS名稱。
NetBIOS的缺陷危及到NBNS(NetBIOS Name Service)。特定情況下,對於NBNS(NetBIOS Name Service)請求,目標系統內存的隨機數據會做出響應。這些數據可以是目標系統用戶正在瀏覽的html頁面數據的一部分,也可以是存在於目標系統內存的數據。攻擊者可以發送一個特定的NBNS請求到目標系統,然后可以獲得可能包含目標系統內存的數據。如果用戶涉及的安全級別很高,關閉了 UDP 137端口,那么基於Internet的攻擊就不可能實現。
NetBIOS Name Server
最近也發現很多接入交換機出現類似的情況,因為接入交換機端口所屬VLAN在核心交換機上也有,最終竟然導致接入交換機和匯聚交換機、核心交換機間的鏈路阻塞,使得網絡變得基本不通
初步分析了一下捕獲到的數據,基本認定原因在於好多個人計算機內包含惡意/流氓軟件,會不停地訪問btamail.net、bar.baidu.com、sobar.baidu.com等域名,同時,windows的名字解析機制的順序是:
1. hosts
2. net bios, wins, lmhosts
3. dns
所以,就會在網絡中產生大量nbns的數據包
解決辦法(准備測試):
設置交換機的ACL禁用源端口137、目的端口137,如果要用到wins服務,另當別論
NetBIOS是Network Basic Input/Output System的簡稱,一般指用於局域網通信的一套API
歷史
NetBIOS是一個網絡協議,在上世紀80年代早期由IBM和Sytec聯合開發,用於所謂的PC-Network。雖然公開發表的文檔很少,協議的API卻成為了事實上的標准。
隨着PC-Network被令牌環和以太網取代,NetBIOS也應該退出歷史舞台。但是,由於很多軟件使用了NetBIOS的API,所以NetBIOS被適配到了各種其他的協議上,比如IPX/SPX和TCP/IP。
使用令牌環和以太網傳輸的NetBIOS現在被稱為NetBEUI。在Micrsoft Windows 98發布之前,一直廣泛使用。在TCP/IP上運行的NetBIOS稱為NBT,由RFC 1001和RFC 1002定義。NBT的基本思想是在基於IP的絡上模擬基於NetBIOS的PC-Network。NBT在Windows 2000中引入,是現在首選的NetBIOS傳輸。
概述
不管使用哪一種傳輸方式,NetBIOS提供三種不同的服務:
名字服務:名字登記和解析
會話服務:可靠的基於連接的通信
數據包服務:不可靠的無連接通信
當NetBIOS是數據鏈路層協議時,可以通過5Ch中斷訪問其功能。傳遞給這些函數的消息使用NCB格式。
NetBIOS和NetBEUI被設計為僅僅用於局域網,因此不支持路由,並且最多只能處理72個節點或者設備。NetBIOS和NetBEUI經常使用廣播實現,尤其是名字服務的相關操作。
NBT使用一個或多個NBNS(NetBIOS Name Server(s))將名字服務擴展到多個子網。NBNS是動態DNS的一種,Microsoft的NBNS實現稱為WINS。另外,為了將虛擬的NetBIOS網絡擴展到多個IP子網,WINS標准還引入了一個或者多個NBDD(NetBIOS Datagram Distribution) 服務器。不幸的是,微軟的NBDD實現從來沒有工作過。
=================================================================================
NetBIOS Services Protocols
中文釋義:(RFC-1001,1002)網絡基本輸入/輸出系統協議
注解:該協議是由IBM公司開發,主要用於數十台計算機的小型局域網。NetBIOS協議是一種在局域網上的程序可以使用的應用程序編程接口(API),為程序提供了請求低級服務的統一的命令集,作用是為了給局域網提供網絡以及其他特殊功能,幾乎所有的局域網都是在NetBIOS協議的基礎上工作的。
應 用:在Windows操作系統中,默認情況下在安裝TCP/IP協議后會自動安裝NetBIOS。比如在Windows 2000/XP中,當選擇“自動獲得IP”后會啟用DHCP服務器,從該服務器使用NetBIOS設置;如果使用靜態IP地址或DHCP服務器不提供NetBIOS設置,則啟用TCP/IP上的NetBIOS。具體的設置方法如下:首先打開“控制面板”,雙擊“網絡連接”圖標,打開本地連接屬性。接着,在屬性窗口的“常規”選項卡中選擇“Internet協議(TCP/IP)”,單擊“屬性”按鈕。然后在打開的窗口中,單擊“高級”按鈕;在“高級TCP/IP設置”窗口中選擇“WINS”選項卡,在“NetBIOS設置”區域中就可以相應的NetBIOS設置。
———————————————以下由Perfectshi補充———————————————
——什么是NetBIOS,NetBIOS的作用
NetBIOS(Network Basic Input Output System,網絡基本輸入輸出系統),是一種應用程序接口(API),系統可以利用WINS服務、廣播及Lmhost文件等多種模式將NetBIOS名解析為相應IP地址,實現信息通訊,所以在局域網內部使用NetBIOS協議可以方便地實現消息通信及資源的共享。因為它占用系統資源少、傳輸效率高,尤為適於由 20 到 200 台計算機組成的小型局域網。 所以微軟的客戶機/服務器網絡系統都是基於NetBIOS的。
當安裝TCP/IP協 議時,NetBIOS 也被Windows作為默認設置載入,我們的計算機也具有了NetBIOS本身的開放性,139端口被打開。某些別有用心的人就利用這個功能來攻擊服務器,使管理員不能放心使用文件和打印機共享。
——利用NetBIOS漏洞攻擊
1.利用軟件查找共享資源
利用NetBrute Scanner 軟件掃描一段IP地址(如10.0.13.1~10.0.13.254)內的共享資源,就會掃描出默認共享
2. 用PQwak破解共享密碼
雙擊掃描到的共享文件夾,如果沒有密碼,便可直接打開。當然也可以在IE的地址欄直接輸入掃描到的帶上共享文件夾的IP地址,如“\10.0.13.191”(或帶C$,D$等查看默認共享)。如果設有共享密碼,會要求輸入共享用戶名和密碼,這時可利用破解網絡鄰居密碼的工具軟件,如PQwak,破解后即可進入相應文件夾。
——關閉NetBIOS漏洞
1. 解開文件和打印機共享綁定
鼠標右擊桌面上[網絡鄰居]→[屬性] →[本地連接] →[屬性],去掉“Microsoft網絡的文件和打印機共享”前面的勾,解開文件和打印機共享綁定。這樣就會禁止所有從139和445端口來的請求,別人也就看不到本機的共享了。
2. 利用TCP/IP篩選
鼠標右擊桌面上[網絡鄰居] →[屬性]→[本地連接] →[屬性],打開“本地連接屬性”對話框。選擇[Internet協議(TCP/IP)]→[屬性]→[高級]→[選項], 在列表中單擊選中“TCP/IP篩選”選項。單擊[屬性]按鈕,選擇“只允許”,再單擊[添加]按鈕(如圖2),填入除了139和445之外要用到的端口。這樣別人使用掃描器對139和445兩個端口進行掃描時,將不會有任何回應。
3. 使用IPSec安全策略阻止對端口139和445的訪問
選擇[我的電腦]→[控制面板]→[管理工具]→[本地安全策略]→[IP安全策略,在本地機器],在這里定義一條阻止任何IP地址從TCP139和TCP445端口訪問IP地址的IPSec安全策略規則,這樣別人使用掃描器掃描時,本機的139和445兩個端口也不會給予任何回應。
4. 停止Server服務
選擇[我的電腦]→[控制面板]→[管理工具]→[服務],進入服務管理器,關閉Server服務。這樣雖然不會關閉端口,但可以中止本機對其他機器的服務,當然也就中止了對其他機器的共享。但是關閉了該服務會導致很多相關的服務無法啟動,如機器中如果有IIS服務,則不能采用這種方法。
5. 使用防火牆防范攻擊
在防火牆中也可以設置阻止其他機器使用本機共享。如在“天網個人防火牆”中,選擇一條空規則,設置數據包方向為“接收”,對方IP地址選“任何地址”,協議設定為“TCP”,本地端口設置為“139到139”,對方端口設置為“0到0”,設置標志位為“SYN”,動作設置為“攔截”,最后單擊[確定]按鈕,並在“自定義IP規則”列表中勾選此規則即可啟動攔截139端口攻擊了。
————————————————————————————————————————
Supplemented by ihui
NetBIOS:網絡基本輸入輸出系統
(NetBIOS:Network Basic Input Output System)
網絡基本輸入輸出系統(NetBIOS)由 IBM 公司開發。NetBIOS 定義了一種軟件接口以及在應用程序和連接介質之間提供通信接口的標准方法。NetBIOS 是一種會話層協議,應用於各種 LAN (Ethernet、Token Ring 等)和 WAN 環境,諸如 TCP/IP、PPP 和 X.25 網絡。
NetBIOS 使得應用程序無需了解包括差錯恢復(會話模式)在內的網絡細節。NetBIOS 請求以網絡控制塊(NCB:Network Control Block)的形式提供,NCB 中包含了信息存放位置和目標名稱等信息。
NetBIOS 提供開放系統互聯(OSI)模型中的會話層和傳輸層服務,但不支持標准幀或數據格式的傳輸。NetBIOS 擴展用戶接口(NetBEUI)支持標准幀格式,它為 NetBIOS 提供網絡層和傳輸層服務支持。
NetBIOS 支持兩種通信模式:會話(session)或數據報(datagram)。會話模式是指兩台計算機為“對話”建立一個連接,允許處理大量信息,並支持差錯監測和恢復功能。數據報模式面向“無連接”(信息獨立發送)操作,發送的信息較小,由應用程序提供差錯監測和恢復功能。此外數據報模式也支持將信息廣播到局域網中的每台計算機上。
NetBIOS 名稱為 16 字節長(必要情況下使用填充位填滿),對使用的字節值幾乎沒有限制。對於不執行路由的小型網絡,將 NetBIOS 名稱映射到 IP 地址上有三種方法:
1. IP 廣播 - 當目標地址不在本地 cache 上時,廣播一個 包含目標計算機 NetBIOS 名稱的數據包。目標計算機返回其 IP 地址。
2. lmhosts 文件 - 這是一個負責映射 IP 地址和 NetBIOS 計算機名稱的文件。
3. NBNS - NetBIOS 命名服務器負責 將 NetBIOS 名稱映射到 IP 地址上。該服務由 Linux 環境下的后台程序(nmbd daemon)執行。
協議結構
NetBIOS 數據包有很多不同格式,主要取決於服務和信息類型,以及用以傳送 NetBIOS 數據包的傳輸協議。 NetBIOS 包含三種基本服務: NAME、SESSION 和 DATAGRAM。作為例子,我們提供 TCP/IP 環境中的 NetBIOS 名稱數據包格式:
Header (12 bytes)
Question Entry (variable)
Answer Resource Records (variable)
Authority Resource Records (variable)
Additional Resource Records (variable)