在IIS中還提供了FTP服務,雖然沒有Serv-u等FTP服務器功能強大,但使用起來很方便。當客戶端使用LeapFTP等連接工具連接FTP服務時,會出現“Microsoft FTP Service”等提示信息,這就說明您使用的是IIS服務器。
實際上,我們完全可以自定義IIS的FTP回應信息,在資源管理器中打 開“C:WINDOWSsystem32inetsrv”文件夾,使用Ultraedir打開其中的“ftpsvc2.dll” 文 件,在Ultraedit窗口中點擊“Ctrl+F”鍵打開尋找窗口,在其中輸入“Microsoft FTP Service”,同 時 勾 選“查 找ASCⅡ”項,點擊查找按鈕,很快就找到了該特征字符串,在Ultraedit的編輯窗口中直接將其修改為自定義內容即可,同時注意在執行上述操作時,應該在CMD窗口中執 行 命 令“iisreset /stop”,停止IIS服務,另外為了防止Windows啟用系統文件保護機制自動還原文件,應該將“C:WINDOWSsystem32dllcache”文件夾中的文件徹底刪除。
實際上,利用該方法同樣可以簡單快捷地修改IIS頭信息。利用Ultraedit打開上述目錄中的“w3svc.dll”文件,查找其中的“Server:”特征字符串,可以很快定位IIS的頭信息,將其修改為自定義內容即可。修改完成后執行“iisreset/start”命令重啟IIS服務。
在有些Windows服務器上,通常還啟用了Telnet服務,可以讓遠程用戶以模擬終端的方式,登錄到本服務器上,連接成功之后,就可以像使用自己的電腦一樣在服務器上執行各種命令了。當客戶端連接到Windows后,Windows會彈出“歡迎使用Microsoft Telnet 服務器”的提示信息,這就等于說明本機使用的是Windows系統,為了防止黑客利用Telnet服務侵入主機,需要對登錄腳本進行“偽裝”。在系統盤 的“Winntsystem32”文件 夾 中 打 開“Login.cmd”文件,將其中的“echo歡迎使用Microsoft Telnet 服務 器”、“echo Welcome to Microsoft Telnet Server”等信息進行修改,假設修改為“echo Red Hat Linux release 8.0(Psyche)Kernel 2.4.18-14 on an i686”,之后保存文件。這樣當黑客連接Telnet服務時,就搞不清您的服務器類型了。
當黑客對選定的服務器進行攻擊之前,通常都會用Ping命令對其進行探測,根據返回的TTL信息來判斷服務器的類型,一般來說,Linux服務器返回的TTL 值 為“64” 或“255”,Windows NT/2000/XP返回的TTL值為“128”等,為了防止TTL值暴露主機類型,可以將Windows 2000系列的TTL返回值修改成255來偽裝操作系統,在注冊表編輯器中展開“HKEY_LOCAL_MACHINE|SystemCurrentControlSetServicesTcpipParameters”分支,在右側窗口中將“DefaultTTL”鍵值名的數值修改為十進制的“255”即可。

圖1 偽裝IIS頭信息
一般來說,在黑客對您的服務器進行攻擊之前,都需要判斷Web服務器的類型,最常用的是使用Telnet命令連接服務器的80端口,從返回信息上取得服務器的重要信息。
例如執行命令“telnet 對方 IP 80”, IIS 服務器就會返 回“HTTP/1.1 400 Bad Bequest,Server:Microsoft-IIS/5.0”等IIS頭信息,從其中 的“Server:Microsoft-IIS/5.0”中即可判斷出對方使用的是IIS服務器,然后黑客即可通過進一步的掃描,搜尋漏洞,溢出攻擊等手段侵入您的服務器。
如果對IIS的頭信息進行加密偽裝,讓黑客摸不清服務器的“底細”,那么對方就不敢貿然進攻了。使用ServerMask這款軟件,就可以對IIS頭信息進行全面偽裝,讓黑客摸不清您的服務器底細,無從下手進行入侵。
在ServerMask主窗口左側顯示在IIS服務器上安裝的所有網站,選擇目標網站,在窗口右側的“Security Profile”列表中提供了多種偽裝手段,如果選擇“Hide”項,ServerMask即可將您的網站隱藏起來,當攻擊者試圖向其發送測試連接請求時,ServerMask將拒絕發送任何回應信息,如果該網站消失了一樣。如果選擇“Emulate”項,表示執行網站仿真功能,當攻擊者試圖探測本網站的信息時,ServerMask可以將本網站偽裝成Apache服務器,并將相關的虛假信息發送給攻擊者,讓其誤以為本機使用的Apache服務器,讓其要么知難而退,要么執行錯誤的攻擊操作。如果選擇“Randomize”項,表示使用隨機偽裝信息保護本網站。
實際上,ServerMask可以模擬大量的服務器回應信息,包括Apache對應的Redhat、Unix、Mac、Win32等服務器版本,以及 Oracle 9i、Lotus-Domino、Zeus、IBM_HTTP_Server、SunOS、LiveServer、WebSphere Application Server等40多種服務器的頭信息。這樣攻擊者每次試圖探測本網站時,ServerMask可以使用隨機的服務器的頭信息來“糊弄”攻擊者,讓其感到本網站“高深莫測”,從而知難而退。
如果您選擇“Customize”項,表示自定義偽裝信息。在彈出的面板中輸入新的偽裝項目名稱,點擊“Headers”按鈕,在“Server Header”面板(如圖1所示)中勾選“Enable Server header masking”項,激活IIS信息頭加密功能,選擇“Remove Server header from all HTTP response”項,表示刪除IIS信息頭。選擇“Masquerade in Server header as common non-IIS server”項,表 示 使 用其它服務器的信息頭內容替換IISIIS信息頭。選擇“Randomize Swever header among common non-IIS servers”項,讓 ServerMask自動隨機改變IISIIS信息頭,選 擇“Set custom Server header value”項,可以讓您自定義IIS信息頭內容。在“Add Headers”面板中勾選“Enable Header Add”項,表示允許添加新的IIS信息頭。點擊“Add”按鈕,添加新的IIS信息頭即可。

圖2 構造虛假的Cookie信息
在配置了IIS的服務器時,除了系統自身提供的IIS頭信息之外,在IIS中運行的一些腳本程序環境,一些第三方的IIS增強工具都會產生一些HTTP頭信息。當客戶端連接服務器時,在IIS的回應包中可能附帶有這些相關的HTTP頭信息(例如使用FlashGet、迅雷等軟件對網站進行探測或者下載文件時,在返回信息中就包含一些IIS的敏感信息),即使您使用上述方法偽裝了IIS基本頭信息,然而這些第三方的HTTP頭信息照樣可以暴露您的服務器類型,例如可能在IIS的回應信息中包含“X-Powered-By:PHP/4.0.0”信 息,這表示在您的PHP腳本運行環境中存在錯誤的配置信息,在IIS頭信息中包含“X-AspNet-Version”, 說明您使用了在IIS中運行了ASP.Net腳本程序,在IIS頭信息中包含“IISExport”項,表示您使用了IISExport這款IIS信息導出工具等。ServerMask可以讓您自由地刪除這些第三方的HTTP頭信息,讓你的IIS服務器更加難以探測。打開“Remove Headers”面板,在其中勾選“Remove all HTTP headers on list”項,表示可以在IIS頭信息中刪除列表中的第三方HTTP信息。當然,您也可以根據實際需要,添加更多的HTTP信息項,在面板底部的“Header”欄中輸入新的HTTP項 目,點 擊“Add”按鈕完成添加操作。
COOKIE技術在網絡編程中使用的很廣泛,例如 使 用 ASP、ASP.NET、PHP、JSP、SiteServer、ColdFusion、PHP等腳本設計的網站,當用戶訪問您的網站時,會在客戶機中留下相關的COOKIE信息,通過對這些COOKIE的信息類型進行分析,就可以判斷出服務器的類型。ServerMASK可以對COOKIE項目進行偽裝,從而在客戶端留下誰也看不懂的COOKIE信息,這樣就可以有效避免了服務器信息的暴露。
當使用上面的方法,創建了自定義的偽裝項目名稱,ServerMask會將其添加到窗口左側的網站列表中。在其中選擇對應的自定義偽裝項目名稱,在窗口右側點擊“Cookies”按鈕,在“Cookie Masking”面板中勾選“Mask all session cookie on list”項,表示激活Cookie偽裝功能。在Cookie偽裝列表左側的“Cookie name to mask”欄中顯示一些常見的Cookie類型,例如ASPSESSIONID、PHPSESSID等。選中這些Cookie項目,在列表右側的“Masked cookie name”欄中可以根據需要對其進行更改,將其修改為讓黑客感到迷茫的名稱。如果您不想自行修改,可以點擊“Generate”按鈕,讓ServerMask為其產生隨機字符串進行替換。當然,ServerMask預設的Cookie類型畢竟有限,您可以點擊“Add”按鈕,來添加所需的Cookie名稱,并根據實際需要對其進行偽裝處理。
除了對真實存在的Cookie項的名稱進程偽裝外,ServerMASK還能以假亂真的創建一些虛假的Cookie,來更加有效的迷惑入侵者。在“Cookie Decoys”面板(如圖2所示)中勾選“Add all decoy cookie in list”項,激活虛假Cookie創建功能。點擊“Add”按鈕,可以在列表中添加名稱為“CookieX”的虛假Cookie項(其中X代表順序編號),在列表的“Cookie name to add”列中選擇新建的虛假Cookie項,可以更改其名稱,例如可以為其編造雜亂的名稱等。如果您不想費力地自創虛假Cookie,可以點擊“Generate”按鈕,讓ServerMASK隨機添加名稱隨意的Cookie項。在“Randomize decoy cookie value every X seconds”項,可以設置每隔多長時間,自動為這些虛假的Cookie賦予隨機數值,默認周期為1200秒。當然,這里的虛假Cookie僅僅用來迷惑入侵者,隨著這些Cookie也會被服務器和客戶機之間傳送和存儲,但是這些Cookie并沒有實際用途,并不參與和干涉任何實際網絡程序的正常活動,不會對其造成任何不良影響。
我們知道,當訪問一些不存在的網址時,瀏覽器會回應HTTP 404等錯誤提示頁面,在其中可能包含一些有可能泄露網站信息的數據。對于黑客來說,通過對該錯誤回應頁面進行分析,可以對網站相關信息進行窺視,為之后的入侵進行必要的“踩點”。使用ServerMASK提供的自定義錯誤回應頁面功能,可以徹底堵住這一潛在的漏洞。
在ServerMASK主 窗口 中 點 擊“Errors”按 鈕,在“General”面 板 中 勾 選“Enable Custom Errors”項,激活自定義錯誤回應頁面功能。勾選“Replace application layer error(5xx)with non-IIS 404 responses”項,激活應用程序層錯誤替換功能,當觸發HTTP 500以上錯誤回應事件后,同樣可以使用預設的錯誤信息加以替換。這樣,當客戶端訪問服務器產生錯誤事件后,ServerMASK會立即攔截該錯誤事件,并將預設的錯誤信息發送給客戶端,來迷惑入侵者。
在“Error Directory”面板中的“Error Directory Name”欄中輸入存儲錯誤提示信息的文件夾名稱,默認 為“errors”。 在“Error Directory Search Mode”欄中 選 擇“Check Site Root Only for Error Directory”項,表示需要在對應網站根目錄下創建上述文件夾(例如“error”文件夾),將包含錯誤提示信息的文件存放在里面。當觸發錯誤事件后,ServerMASK可以從網站根目錄下的“error”文件夾中提取相關文件(名稱必須為“404”,例如“404.htm”等),并將其內容作為錯誤回應信息發送給客戶端。選擇“Check Requested Directory for Error Directory”項,表 示當客戶端發送的錯誤訪問請求觸發錯誤回應事件后,ServerMASK根據提交的網址查詢其所屬的網站根目錄下是否存在上述預設文件夾(例如“error”文件夾),如果存在就從中提取相關文件,將其包含的錯誤信息發送給客戶端。如果網站下包含很多子網站的話,很適合選擇該種方法來設定以上文件夾來存儲錯誤提示信息。
我們上面講過,自定義信息實際上是包含在名稱為404的文件中,并存儲在預設的文件夾中。ServerMASK支持多種格式的錯誤信息文件,可以滿足各種情況下的實際需要。在“Error Files”面板中的“Static Error Page Files Types”項,點 擊“Configure”按鈕,可以配置靜態格式的錯誤信息文件。在彈出窗口中可以看到,ServerMASK默認支持htm、html等格式的網頁文件。當然,可以點擊“Add”按鈕,添加新的靜態文件格式。之后在網站根目錄下進入預設的文件夾(例如“error”文件夾),在其中創建諸如“404.htm、404.html”等名稱的文件,在其中編輯所需的錯誤回應信息。如果勾選“Enable Dynamic Page for 404 Errors”項,點擊“Configure”按鈕,可以管理和添加動態錯誤信息文件,例如“asp,aspx,php,cfm 等格式”,之后進入上述預設文件夾,編輯諸如“404.asp,404.php”等文件,在其中編輯所需的錯誤回應信息。此外,還可以勾選“Enable Image Files for 404 Image Error”項,點擊“Configure”按鈕,可以將圖片文件作為回應錯誤信息發送給客戶端,您可以編輯所需的圖片格式,之后按照上述方法編輯圖片名稱(例如404.jpg等)。
除了使用上述常規偽裝方式外,還可以針對一些特殊的情況,使用更加高級的偽裝模式。在ServerMASK窗口中點擊“Advanced”按鈕,在“Emulation”面板中勾選“Emulate common non-IIS server Etag formats”項,激活針對Etag標識的偽裝操作,Etag標識存在于網絡緩存數據中,這些格式標識可能會暴露IIS服務器的相關信息。在其下的列表中可以選擇用于偽裝的服務器標識格式,包括 Apache format1、Apache format、Sun format、TomCat等格式信息,ServerMASK使用選定的上述非IIS服務器格式來替換Etag標識格式。如 果 勾 選“Random Etag format”項,標示按照預設周期,動態替換IIS緩存中的Etag格式,默認周期為1200秒。勾選“Emulate Apache Web server HTTP headers order”和“Emulate Apache(ALLOW) header format”項,可以使用Apache服務器的HTTP頭的順序排列信息和格式數據對IIS服務器對應內容進行偽裝。
在“File Extension”面板中勾選“Support URLs and HTTP requests without file to mask extension signatures”項,表示當客戶端發來的訪問地址中包含文件名信息時,ServerMASK可以使用無關的內容對其進行屏蔽,防止黑客通過探測特定的網站文件來刺探虛實。在“Response Code”面板中勾選“Normalize and mask various response code messages and format”項,表示服務器觸發200,403.404,501等編號的事件時,對傳輸給客戶端的相關內容定位頭 信 息(Content-Location header)中包含的網址進行偽裝處理,防止黑客借此分析服務器敏感信息。
如果啟用該功能,需要在“IP Mask”面板中勾選“Mask internal IP address in Content-Location header”項,在“Domain Name”欄中輸入用于上述偽裝的網站,這樣一旦ServerMASK發現傳輸給客戶端的相關內容定位頭信息包含有網址信息,就會使用預設網址進行替換。