受影響系統(tǒng):
Microsoft Systems Management Server 2.0
Microsoft Windows NT 4.0
Microsoft BackOffice 4.5
Microsoft Windows NT 4.0
Microsoft Systems Management Server 1.2
Microsoft Windows NT 4.0
Microsoft BackOffice 4.0
Microsoft Windows NT 4.0
Microsoft Windows NT 4.0
Microsoft Windows NT 3.5.1
Microsoft Windows NT 3.5
Microsoft Windows NT Terminal Server
Microsoft Windows NT 4.0
Microsoft Windows NT 2000
描述:
隨Windows NT/2000一起發(fā)行的網(wǎng)絡監(jiān)視器工具允許管理員捕獲和分析到本機的數(shù)據(jù)流以及局域網(wǎng)中的所有數(shù)據(jù)流。Netmon被設計成在數(shù)據(jù)流可以用圖形界面察看之前捕獲它們,它分析接收自網(wǎng)絡的信息,然后在用戶界面中將其轉換成可讀的格式。
Netmon中不同的DLL庫分析不同的應用協(xié)議。這些庫中一個名為“browser.dll”的DLL存在漏洞。通過利用這些存在漏洞的DLL中的函數(shù)調用的多處堆棧溢出,遠程攻擊者可以控制網(wǎng)絡監(jiān)視器,執(zhí)行任意代碼并控制受害主機。
測試方法:
警 告
以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負!
1、如果發(fā)送一個CIFS瀏覽幀到138號UDP端口,browser.dll中的函數(shù)FormatBrowserSummary( )將被調用。一種名為“Become Backup”的特定的CIFS瀏覽幀包含有要顯示的瀏覽服務器的名字。該信息從UDP數(shù)據(jù)報中提取,以便將其包含在單行的總結中。
瀏覽服務器名字被傳遞給Win32 API函數(shù)OemToChar( ),該函數(shù)將字符串從OEM定義的字符集轉換成ANSI字符集或者寬字符集。當OemToChar( )遇到一個空字符時將停止轉換。browser.dll中存在漏洞的FormatBrowserSummary( )函數(shù)調用OemToChar( )將服務器名字轉換后存放在堆棧中長度為255字節(jié)的緩沖區(qū)中。OemToChar( )沒有提供邊界檢查,堆?梢员蝗我庵蹈采w。
2、如果161號UDP端口收到一個SNMP請求,snmp.dll將被調用。SNMP請求中的community串是從數(shù)據(jù)報中提取的,以便用在與協(xié)議有關的總結中。SNMP community串被browser.dll用Win32函數(shù)wsprintfA( )拷貝到堆棧中的一個緩沖區(qū)中。由于該函數(shù)未提供足夠的邊界檢查,堆?杀桓采w。
3、如果從139號TCP端口接收到一個SMB會話,smb.dll將被調用。這個分析器包含兩個漏洞。如果網(wǎng)絡監(jiān)視器接收到一個SMB會話,而該會話中有用于C類事務的很長的用戶名或文件名,它將按照類似如上所描述的SNMP分析器中的漏洞那樣,通過未經(jīng)邊界檢查的wsprintfA( )調用覆蓋其堆棧。
可以通過兩種方法來控制這些漏洞中的指令指針,一種是通過覆蓋返回地址從而使存在漏洞的函數(shù)返回到指定的地址,另外一種方法是通過覆蓋結構化異常處理回調指針來導致一個無效的內(nèi)存引用。
建議:
微軟已經(jīng)提供如下補。
Microsoft Systems Management Server 2.0:
Microsoft patch Q273476c
Microsoft Systems Management Server 1.2:
Microsoft patch Q273476c (SMS 1.2)
Microsoft Windows NT 4.0:
Microsoft patch Q274835i
Intel
Microsoft Windows NT 2000:
Microsoft patch Q274835_W2K_SP2_x86_en