IIS攻擊與安全加固實(shí)例分析
IIS作為一款流行的Web服務(wù)器,在當(dāng)今互聯(lián)網(wǎng)環(huán)境中占有很大的比重,絕大多數(shù)的asp、asp.net網(wǎng)站都運(yùn)行在它上面。因此,也引來了無數(shù)黑客們關(guān)注的目光。目前針對(duì)IIS的攻擊技術(shù)已經(jīng)非常成熟,而且相對(duì)技術(shù)門檻較低,所以很多初學(xué)者拿它來練手。許多網(wǎng)站因?yàn)榫W(wǎng)站管理員的安全意識(shí)不高或技術(shù)上的疏忽而慘遭毒手。本文通過實(shí)例來談?wù)勧槍?duì)IIS的攻擊技術(shù)與安全加固措施。
攻擊實(shí)例
IIS寫權(quán)限漏洞利用
我們先通過一個(gè)攻擊實(shí)例來演示如何利用IIS權(quán)限配置不當(dāng)來快速攻陷一個(gè)網(wǎng)站,以此來提高廣大讀者對(duì)IIS安全性的重視。
目標(biāo)網(wǎng)站IP:192.168.1.105
利用漏洞:IIS寫權(quán)限漏洞
用到的工具:IIS PUT Scaner、桂林老兵寫權(quán)限利用工具
1 檢測(cè)目標(biāo)網(wǎng)站是否存在寫權(quán)限漏洞
打開IIS PUT Scanner,輸入目標(biāo)網(wǎng)站的IP、端口號(hào)(默認(rèn)為80端口),然后點(diǎn)擊“Scan”按鈕開始掃描,很快就返回了結(jié)果,如圖1所示:
圖1
2 IIS寫權(quán)限漏洞利用過程
根據(jù)掃描結(jié)果,我們可以確定目標(biāo)網(wǎng)站存在IIS寫權(quán)限漏洞。下面我們來看下如何利用這個(gè)漏洞,來得到一個(gè)WebShell。
我們先將“<%eval request("cmd")%>”這段一句話木馬代碼保存成一個(gè)txt文檔,名字隨意。我這里命名為test.txt。接著打開桂林老兵寫權(quán)限利用工具,輸入目標(biāo)網(wǎng)站的IP或域名,在“數(shù)據(jù)包格式”處的下拉菜單中選擇“PUT”數(shù)據(jù)包提交方式,最后點(diǎn)擊“數(shù)據(jù)包提交”按鈕,我們來看服務(wù)器返回的結(jié)果。如圖2所示:
圖2
服務(wù)器返回了201響應(yīng)碼,這標(biāo)志著我們成功上傳了文件。
現(xiàn)在我們需要將剛剛上傳的txt文本修改為asp文件,否則服務(wù)器不會(huì)將它解析為asp文件。在“數(shù)據(jù)包格式”的下拉菜單中選擇“MOVE”數(shù)據(jù)包提交方式,在“Destination”處修改文件名稱,默認(rèn)為shell.asp,這里我修改為cmd.asp。然后點(diǎn)擊“提交數(shù)據(jù)包”按鈕,我們來看服務(wù)器返回的信息。如圖3所示:
圖3
服務(wù)器同樣返回了“201”響應(yīng)碼,說明我們成功將test.txt修改為cmd.asp了。
現(xiàn)在我們用一句話木馬客戶端來連接剛上傳的一句話木馬,可以成功訪問。如圖4所示:
圖4
這樣我們就得到了一個(gè)WebShell。從整個(gè)攻擊過程來看,用的時(shí)間很短,而且技術(shù)門檻很低,一個(gè)普通人運(yùn)用工具也可以很快拿下一個(gè)網(wǎng)站。但遺憾的是,在實(shí)際的滲透測(cè)試過程中,依然有不少站點(diǎn)存在這樣的漏洞,希望通過這個(gè)實(shí)例能夠引起廣大網(wǎng)絡(luò)管理員對(duì)安全的重視。#p#
IIS6.0解析漏洞利用
a. 在WEB目錄下,當(dāng)文件名稱為類似“a.asp;b.jpg”這種格式的時(shí)候,IIS會(huì)將它解析為asp文件,如圖5所示。
圖5
b. 在WEB目錄下,IIS6.0會(huì)將以“x.asp”這種格式命名的文件夾下的所有文件都解析為asp文件,如圖6所示。
圖6
上面這兩點(diǎn)屬于IIS設(shè)計(jì)的缺陷,但可惜微軟認(rèn)為這是IIS的特性,一直沒有推出相應(yīng)的安全補(bǔ)丁。
在嘗試?yán)@過文件上傳檢測(cè)時(shí),這兩種方法有時(shí)非常有效,下面是在實(shí)際滲透測(cè)試過程中遇到的一個(gè)例子。
先登錄網(wǎng)站后臺(tái),直接上傳一個(gè)asp木馬,提示非法文件,不允許上傳。接下來將它的名稱改為1.asp;2.jpg后再次上傳,發(fā)現(xiàn)成功上傳至網(wǎng)站目錄,如圖7所示。
圖7
安全加固
這部分我們通過跟蹤IIS從安裝到配置的整個(gè)過程,分析其中可能面臨的安全風(fēng)險(xiǎn),并給出相應(yīng)的加固措施。#p#
IIS安裝及版本的選擇
在IIS安裝過程中,根據(jù)具體的業(yè)務(wù)需求,只安裝必要的組件,以避免安裝其他一切不必要的組件帶來的安全風(fēng)險(xiǎn)。如網(wǎng)站正常運(yùn)行只需要ASP環(huán)境,那我們就沒必要安裝.net組件。
對(duì)于IIS版本,至少要在6.0以上,IIS5.0存在嚴(yán)重的安全漏洞,不過現(xiàn)在運(yùn)行IIS5.0的服務(wù)器已經(jīng)非常少了,對(duì)于這一點(diǎn)不用太過擔(dān)心。
IIS配置
1 刪除IIS默認(rèn)站點(diǎn)
把IIS默認(rèn)安裝的站點(diǎn)刪除或禁用掉。
2 禁用不必要的Web服務(wù)擴(kuò)展
打開IIS 管理器,檢查是否有不必要的“Web服務(wù)擴(kuò)展”,如果有則禁用掉。如圖8所示:
圖8
3 IIS訪問權(quán)限配置
如果IIS中有多個(gè)網(wǎng)站,建議為每個(gè)網(wǎng)站配置不同的匿名訪問賬戶。
方法:
a. 新建一個(gè)賬號(hào),加入Guests組
b. “網(wǎng)站屬性”--->“目錄安全性”--->“身份驗(yàn)證和訪問控制”,把“啟用匿名訪問”處,用剛新建的賬戶代替默認(rèn)賬戶,如圖9所示。
圖9
4 網(wǎng)站目錄權(quán)限配置
原則(如圖10):
目錄有寫入權(quán)限,一定不要分配執(zhí)行權(quán)限
目錄有執(zhí)行權(quán)限,一定不要分配寫入權(quán)限
網(wǎng)站上傳目錄和數(shù)據(jù)庫目錄一般需要分配“寫入”權(quán)限,但一定不要分配執(zhí)行權(quán)限
其他目錄一般只分配“讀取”和“記錄訪問”權(quán)限即可
圖10#p#
5 只保留必要的應(yīng)用程序擴(kuò)展
根據(jù)網(wǎng)站的實(shí)際情況,只保留必要的應(yīng)用程序擴(kuò)展,其他的一律刪除,尤其是像cer、asa這樣極其危險(xiǎn)的擴(kuò)展,而且一般網(wǎng)站也不需要它,如圖11。
圖11
6 修改IIS日志文件配置
無論是什么服務(wù)器,日志都是應(yīng)該高度重視的部分。當(dāng)發(fā)生安全事件時(shí),我們可以通過分析日志來還原攻擊過程,否則將無從查起。有條件的話,可以將日志發(fā)送到專門的日志服務(wù)器保存。
先檢查是否啟用了日志記錄,如未啟用,則啟用它。日志格式設(shè)置為W3C擴(kuò)展日志格式,IIS中默認(rèn)是啟用日志記錄的。
接著修改IIS日志文件保存路徑,默認(rèn)保存在“C:\WINDOWS\system32\LogFiles”目錄下,這里修改為自定義路徑。建議保存在非系統(tǒng)盤路徑,并且IIS日志文件所在目錄只允許Administrators組用戶和SYSTEM用戶訪問,如圖12。
圖12
7 防止信息泄露
a. 禁止向客戶端發(fā)送詳細(xì)的ASP錯(cuò)誤信息
“IIS管理器”--->“屬性”--->“主目錄”--->“配置”--->“調(diào)試”,選擇“向客戶端發(fā)送下列文本錯(cuò)誤消息”項(xiàng),自定義出錯(cuò)時(shí)返回的錯(cuò)誤信息,如圖13。
圖13
b. 修改默認(rèn)錯(cuò)誤頁面
“IIS管理器”--->“屬性”--->“自定義錯(cuò)誤”,用自定義的錯(cuò)誤頁面替換默認(rèn)的默認(rèn)頁面。下面是我自定義的一個(gè)404錯(cuò)誤頁面,當(dāng)網(wǎng)站發(fā)生404錯(cuò)誤時(shí),將向客戶端返回這個(gè)頁面,如圖14。
圖14
#p#
8 自定義IIS Banner信息
默認(rèn)Banner信息會(huì)泄露服務(wù)器類型、版本等相關(guān)信息,我們需要對(duì)其進(jìn)行修改,這樣可以防止信息泄露,還可以騙過一些自動(dòng)化掃描、攻擊工具。
a. 修改默認(rèn)HTTP頭信息
在修改之前,我們先來看下默認(rèn)的HTTP頭信息是什么樣的。我們向IIS服務(wù)器發(fā)一個(gè)請(qǐng)求,然后用抓包工具分析它返回的數(shù)據(jù),就可以發(fā)現(xiàn)HTTP頭信息,如圖15所示:
圖15
上圖用紅框標(biāo)注的地方就是HTTP頭信息,通過它我們就可以確定目標(biāo)網(wǎng)站使用的是IIS服務(wù)器。
現(xiàn)在我們來看下如何自定義HTTP頭信息。首先,打開“IIS管理器”--->“屬性”--->“HTTP頭”,在“自定義HTTP頭”選中默認(rèn)的HTTP頭信息,進(jìn)行編輯,或者刪除掉默認(rèn)的,自己添加一個(gè)新的HTTP頭信息。圖16中是我隨便自定義的一個(gè)HTTP頭。
圖16
在修改完成后,我們?cè)賮碜グ治鲆幌?,如圖17所示:
圖17
從圖上可以看到,現(xiàn)在IIS服務(wù)器返回的HTTP頭已經(jīng)是我們自定義了。
b. 修改默認(rèn)IIS頭信息
修改默認(rèn)IIS頭信息需要通過工具來完成。這里推薦使用ServerMask,它是一款專門用來隱藏或修改IIS服務(wù)器默認(rèn)Banner信息,防止信息泄露的工具。下圖18是該軟件的界面:
圖18
在修改之前,我們先來分析下IIS默認(rèn)的頭信息,如圖19所示:
圖19
根據(jù)服務(wù)器返回的信息,我們很容易判斷出目標(biāo)網(wǎng)站使用的服務(wù)器是IIS,版本是6.0,操作系統(tǒng)是Windows Server 2003,這些信息對(duì)攻擊者確定下一步行動(dòng)是非常有幫助的。
我們也可以使用掃描工具來完成刺探目標(biāo)網(wǎng)站服務(wù)器相關(guān)信息的任務(wù),這類工具非常多,而且使用非常簡單,如圖20。
圖20
現(xiàn)在我們來把默認(rèn)的IIS頭信息隱藏或修改掉,首先打開軟件,選中要保護(hù)的網(wǎng)站,在“Security Profile”處的下拉菜單中選擇相應(yīng)的策略,這里我自定義一個(gè)。
圖21
如圖21所示,我把IIS默認(rèn)的頭信息修改成了Apache服務(wù)器的信息。這樣就可以迷惑攻擊者,有效隱藏網(wǎng)站的真實(shí)信息?,F(xiàn)在我們?cè)賮矸治鱿滦薷暮蟮腎IS服務(wù)器返回的頭信息,如圖22:
圖22
現(xiàn)在IIS服務(wù)器返回的頭信息已經(jīng)是我們自定義的了,這里偽裝成了Apache服務(wù)器。
我們?cè)儆脪呙韫ぞ邟呙枰幌?,看能否得到目?biāo)網(wǎng)站的真實(shí)服務(wù)器類型,結(jié)果如圖23:
圖23
根據(jù)上圖,我們可以看到現(xiàn)在掃描器已經(jīng)獲取不到目標(biāo)網(wǎng)站的服務(wù)器類型了。
對(duì)于一些自動(dòng)化攻擊工具來說,因?yàn)楂@取不到目標(biāo)服務(wù)器的類型和版本相關(guān)信息,自然也就無法進(jìn)行下一步攻擊了。
總結(jié)
通過上面對(duì)IIS攻擊和安全加固的實(shí)例,相信讀者對(duì)IIS服務(wù)器的安全有了更加深入的認(rèn)識(shí)。其實(shí)對(duì)于IIS的安全加固并不難,很多時(shí)候更重要的是管理員的安全意識(shí),只要有足夠的安全意識(shí),加上上面介紹的安全加固方法,相信你一定可以打造一個(gè)安全的IIS服務(wù)器。