登陸輸入法漏洞
這裡我們首先介紹一個登錄錯誤,也就是常說的輸入法漏洞。當我們啟動Windows2000進行到登錄驗證的提示界面時,任何用戶都可以打開各種輸入法的幫助欄,並且可以利用其中具有的一些功能訪問文件系統,這也就是說我們可以繞過了Windows2000的用戶登錄驗證機制,並且能以最高管理員權限訪問整個系統。所以說這個漏洞的危害性是很大的,而且當我們進入系統後,還可以利用Terminal Server遠程通信這個漏洞對系統進行攻擊。默認的Windows2000系統自帶的輸入法中有這個漏洞的是:智能ABC,微軟拼音,內碼,全拼,雙拼,鄭碼。所以就我感覺而言這個漏洞是首要修補的漏洞。
1、把不需要的輸入法刪除掉,例如鄭碼等。
2、但是畢竟我們不能把所有的自帶輸入法都刪除,如果我們要使用有漏洞的輸入法也可以把那個輸入法的幫助文件刪除掉。這些幫助文件通常在win2000的安裝目錄下(如:C:\WINNT)的\help目錄下,對應的幫助文件是:
※ WINIME.CHM 輸入法操作指南
※ WINSP.CHM 雙拼輸入法幫助
※ WINZM.CHM 鄭碼輸入法幫助
※ WINPY.CHM 全拼輸入法幫助
※ WINGB.CHM 內碼輸入法幫助
3、微軟公司對於此問題發布了MS00-069安全公告,並在互聯網上給出了簡體中文Windows2000和英文版Windows2000的補丁。所以請盡快打上補丁。
NetBIOS的信息洩漏
接下來我們談一下NetBIOS的共享入侵.這個問題從NT剛發行到現在就從來沒有解決。而且它一直由來都是NT系統構架最常見的入侵手段。特別值得一提的就是那個IPC$Null session(空會話)在NT系統裡都是已知的安全隱患。雖然打了SP3後可以通過修改注冊表來對其進行限制。但不知道為什麼Windows2000還是原封不動地保留著這個空對話。那麼就讓我們來看看空會話能給入侵者帶來什麼樣的信息:
net use \\server\IPC$ "" /user:"" //此命令用來建立一個空會話
net view \\server //此命令用來查看遠程服務器的共享資源 服務器名稱 注釋
-------------------------------------------------------
\\pc1
\\pc2
命令成功完成。
net time \\server //此命令用來得到一個遠程服務器的當前時間。
nbtstat -A server //此命令用來得到遠程服務器的NetBIOS用戶名字表
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
NULL <00> UNIQUE Registered
NULL <20> UNIQUE Registered
INTERNET <00> GROUP Registered
XIXI <03> UNIQUE Registered
INet~Services <1C> GROUP Registered
IS~NULL...... <00> UNIQUE Registered
INTERNET <1E> GROUP Registered
ADMINISTATOR <03> UNIQUE Registered
INTERNET <1D> UNIQUE Registered
..__M***(文字因故被系統屏蔽)***(文字因故被系統屏蔽)ROWSE__.<01> GROUP Registered
MAC Address = 00-54-4F-34-D8-80
看看,只不過用了幾個系統自帶的命令就得到了如此多的信息,那麼我們有什麼辦法可以不讓別人輕易得到這麼多信息哪?
僅靠單純的修改注冊表是一勞永逸的。 HKEY-LOCAL_MACHINE\SYSTEM\CurrentControSet\Control\LSA
Value Name: RestrictAnonymous
Data Type: REG_DWORD
Value: 1
但如果一些服務你並不需要開放共享的話。那為什麼不禁止它呢?在Windows2000裡的方法和NT4的略有不同。它沒有限制TCP/IP綁定在NetBISO上,但是我們可以在Internet協議(TCP/IP)屬性的設置面板裡選取高級(V)選項,然後選擇TCP/IP 篩選,接著點選啟用TCP/IP篩選,最後在TCP端口點選只允許,然後就可以添加你所想開放的服務的端口了。
奇怪的系統崩潰特性
此外Windows 2000有一個比較奇怪的特性,使用系統的終端用戶可以通過按住右Ctrl,同時Press兩次Scrool Lock按鍵,就輕易可以讓整個Windows2000系統完全的崩潰。但同時又在C:\WinNT\下dump完整的當前系統內存記錄,內存記錄文件名是memory.dmp。當然,這個奇怪的特性默認狀態下是關閉的,但是我們可以通過修改注冊表的方法把它激活:
1、運行regedt32.exe (Windows2000的32位注冊表編輯器)
2、選擇主鍵:
HKEY_LOCAL_MACHINE\
然後找到SYSTEM\下的CurrentControlSet\
選擇Services\
進入i8042prt\中的Parameters
3、新建一個雙字節值
4、將鍵名為CrashOnCtrlScroll
5、然後在設置一個不為零的值。
6、退出重啟
當這一切做完後,你就可以嘗試讓系統崩潰了,按下按鍵後的效果為黑屏,將會出現以下信息:
*** STOP: 0x000000E2 (0x00000000,0x00000000,0x00000000,0x00000000)
The end-user manually generated the crashdump.
值得注意的是,這個奇怪的特性在WindowsNT4中也存在,不知道是不是微軟程序員作測試的一個小功能。不過要是有黑客或者病毒利用它,也是很危險的。
Telnet的拒絕服務攻擊
Windows中的Telnet一直以來都是網絡管理員們最喜愛的網絡實用工具之一,但是一個新的漏洞表明,在Windows2000中Telnet在守護其進程時,在已經被初始化的會話還未被復位的情況下很容易受到一種普通的拒絕服務攻擊。而在2000年的2月份,拒絕服務攻擊幾乎成為了所有大型網站的惡夢。
Telnet連接後,在初始化的對話還未被復位的情況下,在一定的時間間隔之後,此時如果連接用戶還沒有提供登錄的用戶名及密碼,Telnet的對話將會超時。直到用戶輸入一個字符之後連接才會被復位。如果惡意用戶連接到Windows2000的Telnet守護進程中,並且對該連接不進行復位的話,他就可以有效地拒絕其他的任何用戶連接該Telnet服務器,主要是因為此時Telnet的客戶連接數的最大值是1。在此期間任何其他試圖連接該Telnet服務器的用戶都將會收到如下錯誤信息:
Microsoft Windows Workstation allows only 1 Telnet Client LicenseServer has closed connection
察看“列出當前用戶”選項時並不會顯示超時的會話,因為該會話還沒有成功地通過認證。
IIS服務洩漏文件內容
這是一個NSFOCUS安全小組發現的漏洞。當微軟IIS 4.0/5.0(遠東地區版本)在處理包含有不完整的雙字節編碼字符的HTTP命令請求時,會導致WEB目錄下的文件內容被洩漏給遠程攻擊者。
Microsoft IIS遠東地區版本包括中文(簡體/繁體),日文,韓文版,由於特定的文字格式使它們都是使用的雙字節編碼格式。而當IIS接收到用戶提交的一個HTTP請求時,如果文件名中包含非ASCII字符,IIS會檢查這個字符是否為雙字節編碼中的前導字符(例如,日文的前導字符包含兩段字符:0x81-0x9F, 0xE0-0xFC)。如果是前導字符,它會繼續檢查下一個字符是否為結尾字符。如果沒有下一個字符,IIS會簡單地丟棄這個前導字符,因為它並沒有構成一個完整的雙字節編碼。然而,這種處理將導致IIS打開不同的文件而不是用戶在請求中指定的文件。
攻擊者通過提交一個特殊格式的URL, 可以使IIS使用某個ISAPI動態鏈接庫打開某種它所不能解釋的類型的文件,並獲得該文件的內容。依賴於系統安裝的ISAPI應用程序的類型,攻擊者可能獲得WEB根目錄或者虛擬目錄下的文件內容,這些文件可以是普通文本文件(.asp, .ini, .asa等等),也可以是二進制文件(.exe等等)。
黑客們會使用Unicode的方法利用這個漏洞: Unicode(統一的字符編碼標准, 采用雙字節對字符進行編碼)可以說是近一段時期以來最為流行的攻擊入侵手段,僅國內近期就有江民公司等幾個大的網站被這種入侵手段攻擊。那我們就來談一下這個很容易的利用Unicode漏洞配合IIS的漏洞進行入侵吧。
上面我們提到過由於某些雙字節的Windows2000在處理某些特殊字符時與英文版本不同,然而利用這種IIS的漏洞,攻擊者就可以通過這些特殊字符繞過IIS的目錄審計遠程執行任意命令。
http://server/scripts/..%c1%1c../wi....exe?/c+dir+c:\
黑客們其實只要下面兩句很簡單的指令繞過IIS的審計就能夠對網站的頁面進行改寫,所謂的黑了一個網站就是這麼的簡單。
http://server/scripts/..%c1%1c../wi...scripts\123.exe
http://server/scripts/123.exe?/c+echo+黑掉啦?+>+c:\inetpub\wwwroot\default.asp
這個問題已經在IIS 4.0 + SP6中得到解決,然而微軟卻讓它在IIS 5.0中再度出現。
但該漏洞不會影響包括英語版在內的其他語言版本的IIS 4.0/5.0。
MS SQL Server的SA空密碼攻擊
在Windows2000中,企業級的用戶一般都會用到另一個微軟的產品,這個產品就是數據庫管理軟件 MS SQL Server,但是在與MS SQL Server配合使用中,我們發現了很多的問題。最後我們就簡單講一下安裝了MS SQL Server的Windows2000的網絡操作系統普遍面臨的安全問題。
在安裝MS SQL Server後,MS SQL Server會將產生一個默認的SA用戶,而且初始密碼在管理員沒有設置的情況下為空。但是SA是SQL Server中非常重要的安全模塊成員,這樣一來黑客們就可以通過SQL Server的客戶端進行數據庫遠程連接,然後再通過SQL的遠程數據庫管理命令xp_cmdshell stored procedure(擴展存儲過程)來進行命令操作:
xp_cmdshell "net user id password /add"
Xp_cmdshell "net localgroup Administrators id /add"
就以上兩條簡單的命令入侵者就能在MS SQL Server的服務器上馬上新建一個管理員級別的Administrators組的用戶。所以我們這裡提醒各位網管大人,在安裝好SQL Server您需要做的第一件事就是把SA的空密碼立即進行修改。這個問題就不要我告訴你應該在哪裡改了吧?
而且在一般情況下,一些功能對管理員來說也是沒有必要的。如果你不需要MS SQL Server 的xp_cmdshell(use sp_dropextendedproc "xp_cmdshell")這項功能就不要把xp_cmdshell extended stored proc(擴展存儲過程)命令功能留著。
我們只需要在isql窗口中輸入:
use master
sp_dropextendedproc 'xp_cmdshell'
然後打上Service Pack 3,這裡提醒管理員們一下,一定要經常留意微軟的補丁包文件,並且注意及時的把系統和軟件更新到最新的補丁。