NETBIOS協(xié)議是由IBM公司開發(fā),主要用于數(shù)十臺計算機的小型局域網(wǎng)。該協(xié)議是一種在局域網(wǎng)上的程序可以使用的應用程序編程接口(API),為程序提供了請求低級服務的統(tǒng)一的命令集,作用是為了給局域網(wǎng)提供網(wǎng)絡以及其他特殊功能,系統(tǒng)可以利用WINS服務、廣播及Lmhost文件等多種模式將NetBIOS名解析為相應IP地址,實現(xiàn)信息通訊,所以在局域網(wǎng)內(nèi)部使用NetBIOS協(xié)議可以方便地實現(xiàn)消息通信及資源的共享。因為它占用系統(tǒng)資源少、傳輸效率高,所以幾乎所有的局域網(wǎng)都是在NetBIOS協(xié)議的基礎上工作的。
目錄
NetBIOS的應用英文原義:NetBIOS Services Protocols 中文釋義:(RFC-1001,1002)網(wǎng)絡基本輸入/輸出系統(tǒng)協(xié)議 應 用:在Windows操作系統(tǒng)中,默認情況下在安裝TCP/IP協(xié)議后會自動安裝NetBIOS。比如在Windows 2000/XP中,當選擇“自動獲得IP”后會啟用DHCP服務器,從該服務器使用NetBIOS設置;如果使用靜態(tài)IP地址或DHCP服務器不提供NetBIOS設置,則啟用TCP/IP上的NetBIOS。具體的設置方法如下:首先打開“控制面板”,雙擊“網(wǎng)絡連接”圖標,打開本地連接屬性。接著,在屬性窗口的“常規(guī)”選項卡中選擇“Internet協(xié)議(TCP/IP)”,單擊“屬性”按鈕。然后在打開的窗口中,單擊“高級”按鈕;在“高級TCP/IP設置”窗口中選擇“WINS”選項卡,在“NetBIOS設置”區(qū)域中就可以相應的NetBIOS設置。NetBIOS:網(wǎng)絡基本輸入輸出系統(tǒng)(NetBIOS:Network Basic Input Output System) NetBIOS 定義了一種軟件接口以及在應用程序和連接介質(zhì)之間提供通信接口的標準方法。NetBIOS 是一種會話層協(xié)議,應用于各種 LAN (Ethernet、Token Ring 等)和 WAN 環(huán)境,諸如 TCP/IP、PPP 和 X.25 網(wǎng)絡。 NetBIOS 使得應用程序無需了解包括差錯恢復(會話模式)在內(nèi)的網(wǎng)絡細節(jié)。NetBIOS 請求以網(wǎng)絡控制塊(NCB:Network Control Block)的形式提供,NCB 中包含了信息存放位置和目標名稱等信息。 NetBIOS 提供開放系統(tǒng)互聯(lián)(OSI)模型中的會話層和傳輸層服務,但不支持標準幀或數(shù)據(jù)格式的傳輸。NetBIOS 擴展用戶接口(NetBEUI)支持標準幀格式,它為 NetBIOS 提供網(wǎng)絡層和傳輸層服務支持。 NetBIOS 支持兩種通信模式:會話(session)或數(shù)據(jù)報(datagram)。會話模式是指兩臺計算機為“對話”建立一個連接,允許處理大量信息,并支持差錯監(jiān)測和恢復功能。數(shù)據(jù)報模式面向“無連接”(信息獨立發(fā)送)操作,發(fā)送的信息較小,由應用程序提供差錯監(jiān)測和恢復功能。此外數(shù)據(jù)報模式也支持將信息廣播到局域網(wǎng)中的每臺計算機上。 NetBIOS 名稱為 16 字節(jié)長(必要情況下使用填充位填滿),對使用的字節(jié)值幾乎沒有限制。對于不執(zhí)行路由的小型網(wǎng)絡,將 NetBIOS 名稱映射到 IP 地址上有三種方法: 1. IP 廣播 - 當目標地址不在本地 cache 上時,廣播一個 包含目標計算機 NetBIOS 名稱的數(shù)據(jù)包。目標計算機返回其 IP 地址。 2. lmhosts 文件 - 這是一個負責映射 IP 地址和 NetBIOS 計算機名稱的文件。 3. NBNS - NetBIOS 命名服務器負責 將 NetBIOS 名稱映射到 IP 地址上。該服務由 Linux 環(huán)境下的后臺程序(nmbd daemon)執(zhí)行。NETBIOS協(xié)議結構NetBIOS 數(shù)據(jù)包有很多不同格式,主要取決于服務和信息類型,以及用以傳送 NetBIOS 數(shù)據(jù)包的傳輸協(xié)議。 NetBIOS 包含三種基本服務: NAME、SESSION 和 DATAGRAM。作為例子,我們提供 TCP/IP 環(huán)境中的 NetBIOS 名稱數(shù)據(jù)包格式: Header (12 bytes) Question Entry (variable) Answer Resource Records (variable) Authority Resource Records (variable) Additional Resource Records (variable) NBTSTAT命令可以用來查詢涉及到NetBIOS信息的網(wǎng)絡機器。另外,它還可以用來消除NetBIOS高速緩存器和預加載LMHOSTS文件。這個命令在進行安全檢查時非常有用。 用法:nbtstat [-a RemoteName] [-A IP_address] [-c] [-n] [-R] [-r] [-S] [-s] 參數(shù) :-a列出為其主機名提供的遠程計算機名字表。 -A列出為其IP地址提供的遠程計算機名字表。 -c列出包括了IP地址的遠程名字高速緩存器。 -n列出本地NetBIOS名字。 -r列出通過廣播和WINS解析的名字。 -R消除和重新加載遠程高速緩存器名字表。 -S列出有目的地IP地址的會話表。 -s列出會話表對話。 NBTSTAT生成的列標題具有以下含義: Input :接收到的字節(jié)數(shù)。 Output :發(fā)出的字節(jié)數(shù)。 In/Out :無論是從計算機(出站)還是從另一個系統(tǒng)連接到本地計算機(入站)。 Life :在計算機消除名字表高速緩存表目前“度過”的時間。 Local Name :為連接提供的本地NetBIOS名字。 Remote Host :遠程主機的名字或IP地址。 Type :一個名字可以具備兩個類型之一:unique or group 在16個字符的NetBIOS名中,最后一個字節(jié)往往有具體含義,因為同一個名可以在同一臺計算機上出現(xiàn)多次。這表明該名字的最后一個字節(jié)被轉換成了16進制。 State NetBIOS連接將在下列“狀態(tài)”(任何一個)中顯示: 狀態(tài)含義: Accepting: 進入連接正在進行中。 Associated: 連接的端點已經(jīng)建立,計算機已經(jīng)與IP地址聯(lián)系起來。 Connected: 這是一個好的狀態(tài)!它表明您被連接到遠程資源上。 Connecting: 您的會話試著解析目的地資源的名字-IP地址映射。 Disconnected: 您的計算機請求斷開,并等待遠程計算機作出這樣的反應。 Disconnecting: 您的連接正在結束。 Idle: 遠程計算機在當前會話中已經(jīng)打開,但現(xiàn)在沒有接受連接。 Inbound: 入站會話試著連接。 Listening: 遠程計算機可用。 Outbound: 您的會話正在建立TCP連接。 Reconnecting: 如果第一次連接失敗,就會顯示這個狀態(tài),表示試著重新連接 下面是一臺機器的NBTSTAT反應樣本: C:\>nbtstat CA x.x.x.x NetBIOS Remote Machine Name Table Name Type Status --------------------------------------------- DATARAT <00> UNIQUE Registered R9LABS <00> GROUP Registered DATARAT <20> UNIQUE Registered DATARAT <03> UNIQUE Registered GHOST <03> UNIFQUE Registered DATARAT <01> UNIQUE Registered MAC Address = 00-00-00-00-00-00 您通過下表能掌握有關該機器的哪些知識呢? 名稱編號類型的使用: 00 U 工作站服務 01 U 郵件服務 \\_MSBROWSE_ 01 G 主瀏覽器 03 U 郵件服務 06 U RAS服務器服務 1F U NetDDE服務 20 U 文件服務器服務 21 U RAS客戶機服務 22 U Exchange Interchange 23 U Exchange Store 24 U Exchange Directory 30 U 調(diào)制解調(diào)器共享服務器服務 31 U 調(diào)制解調(diào)器共享客戶機服務 43 U SMS客戶機遠程控制 44 U SMS管理遠程控制工具 45 U SMS客戶機遠程聊天 46 U SMS客戶機遠程傳輸 4C U DEC Pathworks TCP/IP服務 52 U DEC Pathworks TCP/IP服務 87 U Exchange MTA 6A U Exchange IMC BE U網(wǎng)絡監(jiān)控代理 BF U網(wǎng)絡監(jiān)控應用 03 U郵件服務 00 G域名 1B U域主瀏覽器 1C G域控制器 1D U主瀏覽器 1E G瀏覽器服務選擇 1C G Internet信息服務器 00 U Internet信息服務器 [2B] U Lotus Notes服務器 IRISMULTICAST [2F] G Lotus Notes IRISNAMESERVER [33] G Lotus Notes Forte_$ND800ZA [20] U DCA Irmalan網(wǎng)關服務 Unique (U): 該名字可能只有一個分配給它的IP地址。在網(wǎng)絡設備上,一個要注冊的名字 可以出現(xiàn)多次,但其后綴是唯一的,從而使整個名字是唯一的。 Group (G): 一個正常的群;一個名字可以有很多個IP地址。 Multihomed (M): 該名字是唯一的,但由于在同一臺計算機上有多個網(wǎng)絡接口, 這個配置可允許注冊。這些地址的最大編號是25。 Internet Group (I): 這是用來管理WinNT域名的組名字的特殊配置。 Domain Name (D): NT 4.0提供的新內(nèi)容。因NETBIOS給用戶帶來的潛在危害簡介當安裝TCP/IP協(xié) 議時,NetBIOS 也被Windows作為默認設置載入,我們的計算機也具有了NetBIOS本身的開放性。某些別有用心的人就利用這個功能來攻擊服務器,使管理員不能放心使用文件和打印機共享。 利用NETBIOS漏洞進行攻擊的端口分別為: 135端口開放實際上是一個WINNT漏洞,開放的135的端口情況容易引起自外部的“Snort”攻擊?。?! 對于135端口開放的問題,可以在你的防火墻上,增加一條規(guī)則:拒絕所有的這類進入的UDP包,目的端口是135,源端口是7,19,或者135,這樣可以保護內(nèi)部的系統(tǒng),防止來自外部的攻擊。大多數(shù)防火墻或者包過濾器已經(jīng)設置了很多嚴格的規(guī)則,已覆蓋了這條過濾規(guī)則,但仍需注意:有一些NT的應用程序,它們依靠UDP135端口進行合法的通訊,而打開你135的端口與NT的RPC服務進行通訊。如果真是這樣,你一定要在那些原始地址的系統(tǒng)上(需要135口通訊),實施上述的規(guī)則,指定來自這些系統(tǒng)的通訊可以通過防火墻,或者,可以被攻擊檢測系統(tǒng)所忽略,以便維持那些應用程序的正常連接。為了保護你的信息安全,強烈建議你安裝微軟的最新補丁包。 上面我們說到Netbios(NETwork Basic Input/Output System)網(wǎng)絡基本輸入輸出系統(tǒng)。是1983年IBM開發(fā)的一套網(wǎng)絡標準,微軟在這基礎上繼續(xù)開發(fā)。微軟的客戶機/服務器網(wǎng)絡系統(tǒng)都是基于NetBIOS的。在利用Windows NT4.0 構建的網(wǎng)絡系統(tǒng)中,對每一臺主機的唯一標識信息是它的NetBIOS名。系統(tǒng)可以利用WINS服務、廣播及Lmhost文件等多種模式通過139端口將NetBIOS名解析為相應IP地址,從而實現(xiàn)信息通訊。在這樣的網(wǎng)絡系統(tǒng)內(nèi)部,利用NetBIOS名實現(xiàn)信息通訊是非常方便、快捷的。但是在Internet上,它就和一個后門程序差不多了。因此,我們很有必要堵上這個可怕的漏洞。 ——利用NetBIOS漏洞攻擊1.利用軟件查找共享資源利用NetBrute Scanner 軟件掃描一段IP地址(如10.0.13.1~10.0.13.254)內(nèi)的共享資源,就會掃描出默認共享2. 用PQwak破解共享密碼雙擊掃描到的共享文件夾,如果沒有密碼,便可直接打開。當然也可以在IE的地址欄直接輸入掃描到的帶上共享文件夾的IP地址,如“\\10.0.13.191”(或帶C$,D$等查看默認共享)。如果設有共享密碼,會要求輸入共享用戶名和密碼,這時可利用破解網(wǎng)絡鄰居密碼的工具軟件,如PQwak,破解后即可進入相應文件夾。 ——關閉NetBIOS漏洞1. 解開文件和打印機共享綁定鼠標右擊桌面上[網(wǎng)絡鄰居]→[屬性] →[本地連接] →[屬性],去掉“Microsoft網(wǎng)絡的文件和打印機共享”前面的勾,解開文件和打印機共享綁定。這樣就會禁止所有從139和445端口來的請求,別人也就看不到本機的共享了。2. 利用TCP/IP篩選鼠標右擊桌面上[網(wǎng)絡鄰居] →[屬性]→[本地連接] →[屬性],打開“本地連接屬性”對話框。選擇[Internet協(xié)議(TCP/IP)]→[屬性]→[高級]→[選項], 在列表中單擊選中“TCP/IP篩選”選項。單擊[屬性]按鈕,選擇“只允許”,再單擊[添加]按鈕(如圖2),填入除了139和445之外要用到的端口。這樣別人使用掃描器對139和445兩個端口進行掃描時,將不會有任何回應。3. 使用IPSec安全策略3. 使用IPSec安全策略阻止對端口139和445的訪問 選擇[我的電腦]→[控制面板]→[管理工具]→[本地安全策略]→[IP安全策略,在本地機器],在這里定義一條阻止任何IP地址從TCP139和TCP445端口訪問IP地址的IPSec安全策略規(guī)則,這樣別人使用掃描器掃描時,本機的139和445兩個端口也不會給予任何回應。4. 停止Server服務選擇[我的電腦]→[控制面板]→[管理工具]→[服務],進入服務管理器,關閉Server服務。這樣雖然不會關閉端口,但可以中止本機對其他機器的服務,當然也就中止了對其他機器的共享。但是關閉了該服務會導致很多相關的服務無法啟動,如機器中如果有IIS服務,則不能采用這種方法。5. 使用防火墻防范攻擊在防火墻中也可以設置阻止其他機器使用本機共享。如在“天網(wǎng)個人防火墻”中,選擇一條空規(guī)則,設置數(shù)據(jù)包方向為“接收”,對方IP地址選“任何地址”,協(xié)議設定為“TCP”,本地端口設置為“139到139”,對方端口設置為“0到0”,設置標志位為“SYN”,動作設置為“攔截”,最后單擊[確定]按鈕,并在“自定義IP規(guī)則”列表中勾選此規(guī)則即可啟動攔截139端口攻擊了。非局域網(wǎng)用戶如何防范NETBIOS漏洞攻擊在windows9x下如果你是個撥號用戶。完全不需要登陸到nt局域網(wǎng)絡環(huán)境的話。只需要在控制面板→網(wǎng)絡→刪除microsoft網(wǎng)絡用戶,使用microsoft友好登陸就可以了。但是如果你需要登陸到nt網(wǎng)絡的話。那這一項就不能去處。因為nt網(wǎng)里需要使用netbios。 在windowsNT下你可以取消netbios與TCP/IP協(xié)議的綁定??刂泼姘?#8594;網(wǎng)絡→Netbios接口→WINS客戶(tcp/ip)→禁用。確定。重啟。這樣nt的計算機名和工作組名也隱藏了,不過會造成基于netbios的一些命令無法使用。如net等。 在windowsNT下你可以選中網(wǎng)絡鄰居→右鍵→本地連接→INTERNET協(xié)議(TCP/IP)→屬性→高級→選項→TCP/IP篩選→在“只允許”中填入除了137,138,139只外的端口。如果你在局域網(wǎng)中,會影響局域網(wǎng)的使用 在windowsXP下你可以在控制面板上點擊管理工具-本地安全策略,右擊"IP安全策略,在本地計算機"選擇"管理IP篩選器表和篩選器操作",點添加,在對話框里填,隨便寫.只要你記得住.最好還是寫"禁用135/139端口"比較看的懂.點右邊的添加->下一步->源地址為"任何地址"->目的地址"我的地址"->協(xié)儀為TCP->在到此端口里填135或139就可以. 還有一個辦法就是TCP/IP協(xié)儀里禁用NETBIOS.[1] |
|