歷史
IBM在區域網路中,為他們的大型主機開發了IBM系統網上架構(SNA)。但這套系統過於複雜,不適用於個人計算機,IBM雇用了Sytek Inc,為他們開發新的IBM PC Network,適用於個人計算機組成的區域網路。
1983年,Sytek Inc開發了一套軟體API,使用在IBM PC Network區域網路中。
1984年,IBM授權開放這套標準的API給外界使用,用來與IBM計算機進行網上連結。
1985年,IBM開發令牌環(token ring)網上,為了讓舊有使用NetBIOS API的軟體能在新的網上架構上運作,創建了NetBIOS模擬器,這個模擬器被稱為 NetBIOS延伸用戶界面(NetBIOS Extended User Interface, NetBEUI),擴展了原有的 NetBIOS API。同時,也制定了NetBIOS Frames協定,讓NetBEUI能夠在token ring網上上提供服務,特別是在IEEE 802.2LLC層。
1986年,Novell發表NetWare2.0,將NetBIOS實現在其中。Novell讓NetBIOS運作在IPX/SPX協定上,提出了NetBIOS over IPX/SPX協定。
1987年,出現將NetBIOS封裝為TCP與UDP數據包的技術,IETF隨後發布RFC 1001與RFC 1002,將它制定為標準,這套標準被稱為NetBIOS over TCP/IP,簡稱為NBT。在PS/2計算機上市之後,IBM發布了PC LAN支持程式,在其中包括了NetBIOS驅動程式。
簡介
NetBIOS是網路的基本輸入輸出系統。
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 地址上有三種方法:
•IP 廣播 - 當目標地址不在本地 cache 上時,廣播一個 包含目標計算機 NetBIOS 名稱的數據包。目標計算機返回其 IP 地址。
•lmhosts 檔案 - 這是一個負責映射 IP 地址和 NetBIOS 計算機名稱的檔案。
•NBNS - NetBIOS 命名伺服器負責將 NetBIOS 名稱映射到 IP 地址上。該服務由 Linux 環境下的後台程式(nmbd daemon)執行。
內容
NetBIOS提供了三種軟體服務:
•名稱服務,包括名稱登錄與名稱解析
•數據報文服務
•會話服務
潛在危害
當安裝TCP/IP協定時,NetBIOS 也被Windows作為默認設定載入,我們的計算機也具有了NetBIOS本身的開放性。某些別有用心的人就利用這個功能來攻擊伺服器,使管理員不能放心使用檔案和印表機共享。
漏洞攻擊
1.利用軟體查找共享資源
利用NetBrute Scanner 軟體掃描一段IP位址(如10.0.13.1~10.0.13.254)內的共享資源,就會掃描出默認共享
2. 用PQwak破解共享密碼
雙擊掃描到的已分享檔案夾,如果沒有密碼,便可直接打開。當然也可以在IE的地址欄直接輸入掃描到的帶上已分享檔案夾的IP位址,如“\\10.0.13.191”(或帶C$,D$等查看默認共享)。如果設有共享密碼,會要求輸入共享用戶名和密碼,這時可利用破解網路鄰居密碼的工具軟體,如PQwak,破解後即可進入相應資料夾。
關閉漏洞
1. 解開檔案和印表機共享綁定
滑鼠右擊桌面上[網路鄰居]→[屬性] →[本地連線] →[屬性],去掉“Microsoft網路的檔案和印表機共享”前面的勾,解開檔案和印表機共享綁定。這樣就會禁止所有從139和445連線埠來的請求,別人也就看不到本機的共享了。
2. 利用TCP/IP篩選
滑鼠右擊桌面上[網路鄰居] →[屬性]→[本地連線] →[屬性],打開“本地連線屬性”對話框。選擇[Internet協定(TCP/IP)]→[屬性]→[高級]→[選項], 在列表中單擊選中“TCP/IP篩選”選項。單擊[屬性]按鈕,選擇“只允許”,再單擊[添加]按鈕,填入除了139和445之外要用到的連線埠。這樣別人使用掃描器對139和445兩個連線埠進行掃描時,將不會有任何回應。
3. 使用IPSec安全策略
選擇[我的電腦]→[控制臺]→[管理工具]→[本地安全策略]→[IP安全策略,在本地機器],在這裡定義一條阻止任何IP位址從TCP139和TCP445連線埠訪問IP位址的IPSec安全策略規則,這樣別人使用掃描器掃描時,本機的139和445兩個連線埠也不會給予任何回應。
4. 停止Server服務
選擇[我的電腦]→[控制臺]→[管理工具]→[服務],進入服務管理器,關閉Server服務。這樣雖然不會關閉連線埠,但可以中止本機對其他機器的服務,當然也就中止了對其他機器的共享。但是關閉了該服務會導致很多相關的服務無法啟動,如機器中如果有IIS服務,則不能採用這種方法。
5. 使用防火牆防範攻擊
在防火牆中也可以設定阻止其他機器使用本機共享。如在“天網個人防火牆”中,選擇一條空規則,設定數據包方向為“接收”,對方IP位址選“任何地址”,協定設定為“TCP”,本地連線埠設定為“139到139”,對方連線埠設定為“0到0”,設定標誌位為“SYN”,動作設定為“攔截”,最後單擊[確定]按鈕,並在“自定義IP規則”列表中勾選此規則即可啟動攔截139連線埠攻擊了。
防範方法
在windows9x下如果你是個撥號用戶。完全不需要登入到nt區域網路環境的話。只需要在控制臺→網路→刪除microsoft網路用戶,使用microsoft友好登入就可以了。但是如果你需要登入到nt網路的話。那這一項就不能去處。因為nt網裡需要使用netbios。
在windowsNT下你可以取消netbios與TCP/IP協定的綁定。控制臺→網路→Netbios接口→WINS客戶(tcp/ip)→禁用。確定。重啟。這樣nt的計算機名和工作組名也隱藏了,不過會造成基於netbios的一些命令無法使用。如net等。
在windowsNT下你可以選中網路鄰居→右鍵→本地連線→INTERNET協定(TCP/IP)→屬性→高級→選項→TCP/IP篩選→在“只允許”中填入除了137,138,139之外的連線埠。如果你在區域網路中,會影響區域網路的使用
在windowsXP下你可以在控制臺上點擊管理工具-本地安全策略,右擊"IP安全策略,在本地計算機"選擇"管理IP篩選器表和篩選器操作",點添加,在對話框裡填,隨便寫.只要你記得住.最好還是寫"禁用135/139連線埠"比較看的懂.點右邊的添加->下一步->源地址為"任何地址"->目的地址"我的地址"->協儀為TCP->在到此連線埠里填135或139就可以.
還有一個辦法就是TCP/IP協定里禁用NETBIOS。
相關條目
•伺服器訊息塊
•NetBIOS Frames協定
•NetBIOS over TCP/IP