網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 當服務器被攻擊時,最容易被人忽略的地方,就是記錄文件,服務器的記錄文件了黑客活動的蛛絲馬跡。在這里,我為大家介紹一下兩種常見的網頁服務器中最重要的記錄文件,分析服務器遭到攻擊后,黑客在記錄文件中留下什么記錄。 目前最常見的網頁服務器有兩種:Apache和微軟的Internet Information Server (簡稱IIS)。這兩種服務器都有一般版本和SSL認證版本,方便黑客對加密和未加密的服務器進行攻擊。 IIS的預設記錄文件地址在 c:winntsystem32logfilesw3svc1的目錄下,文件名是當天的日期,如yymmdd.log。系統會每天產生新的記錄文件。預設的格式是W3C延伸記錄文件格式(W3C Extended Log File Format),很多相關軟件都可以解譯、分析這種格式的檔案。記錄文件在預設的狀況下會記錄時間、客戶端IP地址、method(GET、POST等)、URI stem(要求的資源)、和HTTP狀態(數字狀態代碼)。這些字段大部分都一看就懂,可是HTTP狀態就需要解讀了。一般而言,如果代碼是在200到299代表成功。常見的200狀態碼代表符合客戶端的要求。300到399代表必須由客戶端采取動作才能滿足所提出的要求。400到499和500到599代表客戶端和服務器有問題。最常見的狀態代碼有兩個,一個是404,代表客戶端要求的資源不在服務器上,403代表的是所要求的資源拒絕服務。Apache記錄文件的預設儲存位置在/usr/local/apache/logs。最有價值的記錄文件是access_log,不過 ssl_request_log和ssl_engine_log也能提供有用的資料。 access_log記錄文件有七個字段,包括客戶端IP地址、特殊人物識別符、用戶名稱、日期、Method Resource Protocol(GET、POST等;要求哪些資源;然后是協議的版本)、HTTP狀態、還有傳輸的字節。
我在這里所用的是與黑客用的相似的模擬攻擊網站方式和工具。(注意:在本文中所介紹的方法請大家不要試用,請大家自覺遵守網絡準則。
分析過程
網頁服務器版本是很重要的信息,黑客一般先向網頁服務器提出要求,讓服務器送回本身的版本信息。只要把「HEAD / HTTP/1.0」這個字符串用常見的netcat utility(相關資料網址:http://www.l0pht.com/~weld/netcat/)和OpenSSL binary(相關資料網址:http://www.openssl.org/)送到開放服務器的通訊端口就成了。注意看下面的示范:
C:>nc -n 10.0.2.55 80
HEAD / HTTP/1.0 HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Sun, 08 Mar 2001 14:31:00 GMT Content-Type: text/html Set-Cookie: ASPSESSIONIDGQQQQQPA=IHOJAGJDECOLLGIBNKMCEEED; path=/ Cache-control: private 這種形式的要求在IIS和Apache的記錄文件中會生成以下記錄:
IIS: 15:08:44 11.1.2.80 HEAD /Default.asp 200
Linux: 11.1.2.80 - - [08/Mar/2001:15:56:39 -0700] "HEAD / HTTP/1.0" 200 0 雖然這類要求合法,看似很平常,不過卻常常是網絡攻擊的前奏曲。access_log和IIS的記錄文件沒有表明這個要求是連到SSL服務器還是一般的網頁服務器,可是Apache的 ssl_request_log和ssl_engine_log(在/usr/local/apache/logs目錄下)這兩個記錄文件就會記錄是否有聯機到SSL服務器。請看以下的ssl_request_log記錄文件:
[07/Mar/2001:15:32:52 -0700] 11.1.1.50 SSLv3 EDH-RSA-DES-CBC3-SHA "HEAD / HTTP/1.0" 0
第三和第四個字段表示客戶端使用的是哪種加密方式。以下的ssl_request_log分別記錄從OpenSSL、 Internet Explorer和Netscape客戶端程序發出的要求。
[07/Mar/2001:15:48:26 -0700] 11.1.1.50 SSLv3 EDH-RSA-DES-CBC3-SHA "GET / HTTP/1.0" 2692
[07/Mar/2001:15:52:51 -0700] 10.0.2.55 TLSv1 RC4-MD5 "GET / HTTP/1.1" 2692 [07/Mar/2001:15:54:46 -0700] 11.1.1.50 SSLv3 EXP-RC4-MD5 "GET / HTTP/1.0" 2692 [07/Mar/2001:15:55:34 –0700] 11.1.2.80 SSLv3 RC4-MD5 “GET / HTTP/1.0” 2692 另外黑客通常會復制一個網站(也就是所謂的鏡射網站。),來取得發動攻擊所需要的信息。網頁原始碼中的批注字段常有目錄、文件名甚至密碼的有用資料。復制網站常用的工具包括窗口系統的Teleport Pro(網址:http://www.tenmax.com/teleport/pro/home.htm)和Unix系統的wget(網址:http://www.gnu.org/manual/wget/)。在這里我為大家分析wget和TeleportPro這兩個軟件攻擊網頁服務器后記錄文件中的內容。這兩個軟件能全面快速搜尋整個網站,對所有公開的網頁提出要求。只要檢查一下記錄文件就知道,要解譯鏡射這個動作是很簡單的事。以下是IIS的記錄文件:
16:28:52 11.1.2.80 GET /Default.asp 200
16:28:52 11.1.2.80 GET /robots.txt 404 16:28:52 11.1.2.80 GET /header_protecting_your_privacy.gif 200 16:28:52 11.1.2.80 GET /header_fec_reqs.gif 200 16:28:55 11.1.2.80 GET /photo_contribs_sidebar.jpg 200 16:28:55 11.1.2.80 GET /g2klogo_white_bgd.gif 200 16:28:55 11.1.2.80 GET /header_contribute_on_line.gif 200 注:11.1.2.80這個主機是Unix系統的客戶端,是用wget軟件發出請求。
16:49:01 11.1.1.50 GET /Default.asp 200
16:49:01 11.1.1.50 GET /robots.txt 404 16:49:01 11.1.1.50 GET /header_contribute_on_line.gif 200 16:49:01 11.1.1.50 GET /g2klogo_white_bgd.gif 200 16:49:01 11.1.1.50 GET /photo_contribs_sidebar.jpg 200 16:49:01 11.1.1.50 GET /header_fec_reqs.gif 200 16:49:01 11.1.1.50 GET /header_protecting_your_privacy.gif 200 注:11.1.1.50系統是窗口環境的客戶端,用的是TeleportPro發出請求。
注意:以上兩個主機都要求robots.txt這個檔,其實這個檔案是網頁管理員的工具,作用是防止wget和TeleportPro這類自動抓文件軟件對某些網頁從事抓取或搜尋的動作。如果有人提出robots.txt檔的要求,常常代表是要鏡射整個網站。但,TeleportPro和wget這兩個軟件都可以把要求robots.txt這個文件的功能取消。另一個偵測鏡射動作的方式,是看看有沒有同一個客戶端IP反復提出資源要求。
網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。
|