簡介
發展曆史
網絡系統
(NetBIOS:NetworkBasicInputOutputSystem)
NetBIOS是網絡的基本輸入輸出系統。
NetBIOS定義了一種軟件接口以及在應用程序和連接介質之間提供通信接口的标準方法。NetBIOS是一種會話層協議,應用于各種LAN(Ethernet、TokenRing等)和WAN環境,諸如TCP/IP、PPP和X.25網絡。
NetBIOS使得應用程序無需了解包括差錯恢複(會話模式)在内的網絡細節。NetBIOS請求以網絡控制塊(NCB:NetworkControlBlock)的形式提供,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環境下的後台程序(nmbddaemon)執行。
協議結構
NetBIOS數據包有很多不同格式,主要取決于服務和信息類型,以及用以傳送NetBIOS數據包的傳輸協議。NetBIOS包含三種基本服務:NAME、SESSION和DATAGRAM。作為例子,我們提供TCP/IP環境中的NetBIOS名稱數據包格式:
Header(12bytes)
QuestionEntry(variable)
AnswerResourceRecords(variable)
AuthorityResourceRecords(variable)
AdditionalResourceRecords(variable)
NBTSTAT命令可以用來查詢涉及到NetBIOS信息的網絡機器。另外,它還可以用來消除NetBIOS高速緩存器和預加載LMHOSTS文件。這個命令在進行安全檢查時非常有用。
用法:nbtstat[-aRemoteName][-AIP_address][-c][-n][-R][-r][-S][-s][-RR]
參數:-a列出為其主機名提供的遠程計算機名字表。
-A列出為其IP地址提供的遠程計算機名字表。
-c列出包括了IP地址的遠程名字高速緩存器。
-n列出本地NetBIOS名字。
-r列出通過廣播和WINS解析的名字。
-R消除和重新加載遠程高速緩存器名字表。
-S列出有目的地IP地址的會話表。
-s列出會話表對話。
-RR發送數據包名稱到WINS,然後開始刷新
NBTSTAT生成的列标題具有以下含義:
Input:接收到的字節數。
Output:發出的字節數。
In/Out:無論是從計算機(出站)還是從另一個系統連接到本地計算機(入站)。
Life:在計算機消除名字表高速緩存表目前“度過”的時間。
LocalName:為連接提供的本地NetBIOS名字。
RemoteHost:遠程主機的名字或IP地址。
Type:一個名字可以具備兩個類型之一:uniqueorgroup
在16個字符的NetBIOS名中,最後一個字節往往有具體含義,因為同一個名可以在同一台計算機上出現多次。這表明該名字的最後一個字節被轉換成了16進制。
State
NetBIOS連接将在下列“狀态”(任何一個)中顯示:
狀态含義:
Accepting:進入連接正在進行中。
Associated:連接的端點已經建立,計算機已經與IP地址聯系起來。
Connected:這是一個好的狀态!它表明您被連接到遠程資源上。
Connecting:您的會話試着解析目的地資源的名字-IP地址映射。
Disconnected:您的計算機請求斷開,并等待遠程計算機作出這樣的反應。
Disconnecting:您的連接正在結束。
Idle:遠程計算機在當前會話中已經打開,但沒有接受連接。
Inbound:入站會話試着連接。
Listening:遠程計算機可用。
Outbound:您的會話正在建立TCP連接。
Reconnecting:如果第一次連接失敗,就會顯示這個狀态,表示試着重新連接
下面是一台機器的NBTSTAT反應樣本:
C:>nbtstatCAx.x.x.x
NetBIOSRemoteMachineNameTable
NameTypeStatus
---------------------------------------------
DATARAT<00>UNIQUERegistered
R9LABS<00>GROUPRegistered
DATARAT<20>UNIQUERegistered
DATARAT<03>UNIQUERegistered
GHOST<03>UNIFQUERegistered
DATARAT<01>UNIQUERegistered
MACAddress=00-00-00-00-00-00
您通過下表能掌握有關該機器的哪些知識呢?
名稱編号類型的使用:
00U工作站服務
01U郵件服務
_MSBROWSE_01G主浏覽器
03U郵件服務
06URAS服務器服務
1FUNetDDE服務
20.U文件服務器服務
21.URAS客戶機服務
22.UExchangeInterchange
23.UExchangeStore
24.UExchangeDirectory
30.U調制解調器共享服務器服務
31.U調制解調器共享客戶機服務
43.USMS客戶機遠程控制
44.USMS管理遠程控制工具
45.USMS客戶機遠程聊天
46.USMS客戶機遠程傳輸
4CUDECPathworksTCP/IP服務
52.UDECPathworksTCP/IP服務
87.UExchangeMTA
6AUExchangeIMC
BEU網絡監控代理
BFU網絡監控應用
03U郵件服務
00G域名
1BU域主浏覽器
1CG域控制器
1DU主浏覽器
1EG浏覽器服務選擇
1CGInternet信息服務器
00UInternet信息服務器
[2B]ULotusNotes服務器
IRISMULTICAST[2F]GLotusNotes
IRISNAMESERVERGLotusNotes
Forte_$ND800ZAUDCAIrmalan網關服務
Unique(U):該名字可能隻有一個分配給它的IP地址。在網絡設備上,一個要注冊的名字
可以出現多次,但其後綴是唯一的,從而使整個名字是唯一的。
Group(G):一個正常的群;一個名字可以有很多個IP地址。
Multihomed(M):該名字是唯一的,但由于在同一台計算機上有多個網絡接口,
這個配置可允許注冊。這些地址的最大編号是25。
InternetGroup(I):這是用來管理WinNT域名的組名字的特殊配置。
DomainName(D):NT4.0提供的新内容。
潛在危害
簡介
當安裝TCP/IP協議時,NetBIOS也被Windows作為默認設置載入,我們的計算機也具有了NetBIOS本身的開放性。某些别有用心的人就利用這個功能來攻擊服務器,使管理員不能放心使用文件和打印機共享。
利用NETBIOS漏洞進行攻擊的端口分别為:
135端口開放實際上是一個WINNT漏洞,開放的135的端口情況容易引起自外部的“Snort”攻擊!!!
對于135端口開放的問題,可以在你的防火牆上,增加一條規則:拒絕所有的這類進入的UDP包,目的端口是135,源端口是7,19,或者135,這樣可以保護内部的系統,防止來自外部的攻擊。大多數防火牆或者包過濾器已經設置了很多嚴格的規則,已複蓋了這條過濾規則,但仍需注意:有一些NT的應用程序,它們依靠UDP135端口進行合法的通訊,而打開你135的端口與NT的RPC服務進行通訊。如果真是這樣,你一定要在那些原始地址的系統上(需要135口通訊),實施上述的規則,指定來自這些系統的通訊可以通過防火牆,或者,可以被攻擊檢測系統所忽略,以便維持那些應用程序的正常連接。為了保護你的信息安全,強烈建議你安裝微軟的最新補丁包。
上面我們說到Netbios(NETworkBasicInput/OutputSystem)網絡基本輸入輸出系統。是1983年IBM開發的一套網絡标準,微軟在這基礎上繼續開發。微軟的客戶機/服務器網絡系統都是基于NetBIOS的。在利用WindowsNT4.0構建的網絡系統中,對每一台主機的唯一标識信息是它的NetBIOS名。系統可以利用WINS服務、廣播及Lmhost文件等多種模式通過139端口将NetBIOS名解析為相應IP地址,從而實現信息通訊。在這樣的網絡系統内部,利用NetBIOS名實現信息通訊是非常方便、快捷的。但是在Internet上,它就和一個後門程序差不多了。因此,我們很有必要堵上這個可怕的漏洞。
漏洞攻擊
1.利用軟件查找共享資源
利用NetBruteScanner軟件掃描一段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篩選”選項。單擊[屬性]按鈕,選擇“隻允許”,再單擊[添加]按鈕(如圖2),填入除了139和445之外要用到的端口。這樣别人使用掃描器對139和445兩個端口進行掃描時,将不會有任何回應。
3.使用IPSec安全策略
3.1使用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端口攻擊了。
防範方法
在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.



















