教你駭客 Windows XP





kenkenken
2001-11-20, 01:17 PM
對於Windows XP的強大的功能和全新的構架我們都不得不嘆服微軟的實力,可以預見Windows XP將成為新一代伺服器作業系統的主流,同時也成為駭客攻擊的對象。但是由於新的WindowsXP的全新構架很大程度都依賴於Active Directory(又稱之為AD),這使得許許多多的管理員在忙於適應新的作業系統,和對原來的資料進行系統的遷移,而對Windows XP的安全性問題還沒有引起足夠重視。

  本文詳細介紹駭客在攻擊Windows XP系統時經常利用的一些漏洞和具體步驟以及應對策略,讓網路系統管理員在維護系統時儘量做到有的放矢。有一句話非常有道理:“世界上沒有絕對愚蠢的系統,只有絕對愚蠢的管理員。”只要我們的網路管理員能夠細心地維護系統,相信駭客們是沒有可乘之機的。

登陸輸入法漏洞

  這塈畯怑漸介紹一個登錄錯誤,也就是常說的輸入法漏洞。當我們啟動WindowsXP進行到登錄驗證的提示介面時,任何用戶都可以打開各種輸入法的幫助欄,並且可以利用其中具有的一些功能訪問檔系統,這也就是說我們可以繞過了WindowsXP的用戶登錄驗證機制,並且能以最高管理員許可權訪問整個系統。所以說這個漏洞的危害性是很大的,而且當我們進入系統後,還可以利用Terminal Server遠端通信這個漏洞對系統進行攻擊。預設的WindowsXP系統自帶的輸入法中有這個漏洞。所以就我感覺而言這個漏洞是首要修補的漏洞。

1、把不需要的輸入法刪除掉。

2、但是畢竟我們不能把所有的自帶輸入法都刪除,如果我們要使用有漏洞的輸入法也可以把那個輸入法的幫助檔刪除掉。這些幫助檔通常在winXP的安裝目錄下(如:C:\WINDOWS)的\help目錄下,對應的幫助檔是:

※ WINIME.CHM 輸入法操作指南

3、微軟公司對於此問題發佈了安全公告,並在網上給出了中文WindowsXP和英文版WindowsXP的修補程式。所以請儘快打上修補程式。

NetBIOS的信息洩漏

   接下來我們談一下NetBIOS的共用入侵.這個問題從NT剛發行到現在就從來沒有解決。而且它一直由來都是NT系統構架最常見的入侵手段。特別值得一提的就是那個IPC$Null session(空會話)在NT系統堻ㄛO已知的安全隱患。雖然打了SP1後可以通過修改註冊表來對其進行限制。但不知道為什麼WindowsXP還是原封不動地保留著這個空對話。那麼就讓我們來看看空會話能給入侵者帶來什麼樣的資訊:

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
..__MSBROWSE__.<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

  但如果一些服務你並不需要開放共用的話。那為什麼不禁止它呢?在WindowsXP堛漱隤k和NT的略有不同。它沒有限制TCP/IP綁定在NetBISO上,但是我們可以在Internet協定(TCP/IP)屬性的設置面板媬翵進階(V)選項,然後選擇TCP/IP 篩選,接著點選啟用TCP/IP篩選,最後在TCP埠點選只允許,然後就可以添加你所想開放的服務的埠了。

奇怪的系統崩潰特性

  此外Windows XP有一個比較奇怪的特性,使用系統的終端用戶可以通過按住右Ctrl,同時Press兩次Scrool Lock按鍵,就輕易可以讓整個WindowsXP系統完全的崩潰。但同時又在C:\Windows\下dump完整的當前系統記憶體記錄,記憶體記錄檔案名是memory.dmp。當然,這個奇怪的特性預設狀態下是關閉的,但是我們可以通過修改註冊表的方法把它啟動:

1、運行regedt.exe (WindowsXP的註冊表編輯器)
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 及 2000中也存在,不知道是不是微軟程式師作測試的一個小功能。不過要是有駭客或者病毒利用它,也是很危險的。

Telnet的拒絕服務攻擊

  Windows中的Telnet一直以來都是網路管理員們最喜愛的網路實用工具之一,但是一個新的漏洞表明,在WindowsXP中Telnet在守護其進程時,在已經被初始化的會話還未被重定的情況下很容易受到一種普通的拒絕服務攻擊。而在XP年的2月份,拒絕服務攻擊幾乎成為了所有大型網站的惡夢。

  Telnet連接後,在初始化的對話還未被重定的情況下,在一定的時間間隔之後,此時如果連接用戶還沒有提供登錄的用戶名及密碼,Telnet的對話將會超時。直到用戶輸入一個字元之後連接才會被復位。如果惡意用戶連接到WindowsXP的Telnet守護進程中,並且對該連接不進行復位的話,他就可以有效地拒絕其他的任何用戶連接該Telnet伺服器,主要是因為此時Telnet的客戶連接數的最大值是1。在此期間任何其他試圖連接該Telnet伺服器的用戶都將會收到如下錯誤資訊:

Microsoft Windows XP allows only 1 Telnet Client LicenseServer has closed connection

  察看“列出當前用戶”選項時並不會顯示超時的會話,因為該會話還沒有成功地通過認證。

IIS服務洩漏檔內容

  這是一個NSFOCUS安全小組發現的漏洞。當微軟IIS 4.0/5.0/5.1(遠東地區版本)在處理包含有不完整的雙位元組編碼字元的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的漏洞進行入侵吧。

  上面我們提到過由於某些雙位元組的WindowsXP在處理某些特殊字元時與英文版本不同,然而利用這種IIS的漏洞,攻擊者就可以通過這些特殊字元繞過IIS的目錄審計遠端執行任意命令。

http://server/scripts/..%c1%1c../windows/system32/cmd.exe?/c+dir+c:\

  駭客們其實只要下面兩句很簡單的指令繞過IIS的審計就能夠對網站的頁面進行改寫,所謂的黑了一個網站就是這麼的簡單。

http://server/scripts/..%c1%1c../windows/system32/cmd.exe?/c+copy+c:\windows\system32\cmd.exe+d:\inetpub\scripts\123.exe
http://server/scripts/123.exe?/c+echo+駭掉啦?+>+c:\inetpub\wwwroot\default.asp

  這個問題已經在IIS 4.0 + SP6中得到解決,然而微軟卻讓它在IIS 5.0/5.1中再度出現。

  但該漏洞不會影響包括英語版在內的其他語言版本的IIS 4.0/5.0/5.1。

MS SQL Server的SA空密碼攻擊

  在WindowsXP中,企業級的用戶一般都會用到另一個微軟的產品,這個產品就是資料庫管理軟體 MS SQL Server,但是在與MS SQL Server配合使用中,我們發現了很多的問題。最後我們就簡單講一下安裝了MS SQL Server的WindowsXP的網路作業系統普遍面臨的安全問題。

  在安裝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組的用戶。所以我們這奡ˋ籉U位網管大人,在安裝好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'

轉載自 http://203.75.137.193/ed2k