一 、什么是网页木马
1.利用WSH(Windows Scripting Host Object Reference)等系统控件
WSH,是“Windows Scripting Host”的简称,可以直译为“Windows 脚本宿主”。在Windows系统中会默认安装,它是内嵌于 Windows 操作系统中的脚本语言工作环境。
2.Microsoft Internet Explorer等浏览器存在漏洞
3.脚本语言
二、网页木马的攻击原理
1.下载可执行文件.
2.自动运行程序
把这段代码插入到网页源代码的…之间,然后用IE打开该网页,这段代码可以在IE中自动打开记事本。
这段代码使用了shell.application控件,该控件能使网页获得执行权限,替换代码中的“Notepad.exe”(记事本)程序,就可以用它自动运行本地电脑上的任意程序。
通过以上的例子可以看出,利用IE的漏洞,在网页中插入相关的代码,IE完全可以自动下载和运行程序。
三、可能被网页木马利用的漏洞
1.利用URL格式漏洞
(1).@标志过滤用户名的解析
比如用户访问“Http://www.sina.com@www.Trojan.com.cn/HuiGeZi_Server.exe”,从表面上看,这是新浪网提供的一个链接,用户会认为这是一个无害的链接,而点击,而实际上 “www.sina.com”只是个写成新浪网址形式的用户名(此处的密码为空),因为后面有@标志。而真正链接的网址却是“www.Trojan.com.cn/HuiGeZi_Server.exe” 也就是说这个发来的URL地址其实完全等同于“Http://www www.Trojan.com.cn/HuiGeZi_Server.exe,而与前面的用户名毫无关系,只是迷惑性可就大大提高了。即使没有这个用户名,也完全不影响浏览器对URL的解析。
(2).十进制的IP地址
常见的IP地址包括四个字节,一般表示形式为“xxx.xxx.xxx.xxx”(x表示一个十进制数 码),例如“61.135.132.12”。因为数字IP地址较长,且过于抽象、难以记忆,所以采用域名服务DNS来与之对应。在浏览器地址栏中输入 “Http://www.sohu.com”与“Http://61.135.132.12”的结果完全一样,都是访问搜狐网站,因为 61.135.132.12就是搜狐域名www.sohu.com的IP地址。不过,用Http://1032291340访问的话,仍然可以打开搜狐网 站,这是因为,四位点分十进制形式的IP地址“61.135.132.12”代表一组32位二进制数码,如果合在一起再转换成一个十进制数的话,答案就是 1032291340。转换方法,就是数制的按权展 开:12×2560+132×2561+135×2562+61×2563=12+33792+8847360+1023410176=1032291340(基 数为256,即28)。在上文的例子中提到了“www.Trojan.com.cn/HuiGeZi_Server.exe”。这种字母域名有时还能被用 户识破,而在把它对应的IP地址(假设为“61.135.132.13”)换算成一个十进制数后,结果是1032291341,再结合@标志过滤用户的解 析,就会变成Http://www.sina.com@1032291341这样的地址,这样就更加隐蔽了。
(3).虚假的网址,网络钓鱼者注册一个域名和真实网站域名十分相似的网址,其用户界面也和真实网站页 面非常相似,然后不URL提供给用户,那么一般的用户被引导到这样的虚拟网址上是难以察觉的,攻击者也就可以利用该网页来诱导用户输入自己的个人身份信 息,达到窃取的目的,例如真实网站域名是www.lovebank.xxx,伪造网站域名是www.1ovebank.xxx,一个是小写的"L",一个 是数字"1",域名服务器将解析到完全不同的IP地址上,但用户很难看出来。再如真实网站的域名是www.xxx.xxx.cn,而虚假网站使用域名 www.xxx.xxx,很多人也无法判断
(4).更隐蔽的方法,是根据超文本标记语言的规则,可以对文字制作超链接,这样就使网络钓鱼者有机可 乘。例如文件源代码可以写成:"http://www.xxbank.com.cn"。这样,屏幕上显示的是xxxbank的网址,而实际却链接到了 xxbank的虚假网站。
(5).采用伪装手段。可以在浏览器打开虚假网站的时候,弹出一个很隐蔽的小图像,正好覆盖在浏览器显示网址的地方,该小图像显示被仿冒的网站的真实域名,而浏览器真正访问的地址被掩盖在下面。
(6).虚假的弹出窗口。一些虚假网站会将用户转移到真实的网址,但是转移之前制造假冒的弹出窗口,提示用户进行个人登陆的操作,很多用户会误认为这些弹出窗口是网站的一部分而进一步按照提示操作,直到透露出自己的个人身份信息。
(7).可以利用浏览器漏洞窃取个人信息,如IE就曾暴露出一个漏洞,该漏洞使攻击者可以在垃圾邮件中 构造一种数据,用户点击后便可使IE浏览器显示的网址与实际访问的网址不同。采用这种方式进行攻击,欺骗性更好,可以通过向用户发送包含URL的垃圾邮件 的方式,诱骗用户点击,用户如果不检查邮件的原始代码,根本无法知道自己被浏览器欺骗了。
(8).黑客程序可以修改用户计算机中的HOSTS文件,将特定域名的IP地址设置成自己的虚假网站的 地址,用户访问这些网站时,机器会从HOSTS文件中获得对应的IP。除了上面的方法外,更为隐蔽和目前常用的攻击手法是,攻击者首先攻破一个正常的网 站,然后修改网站的代码,通过跳转语句或嵌入JS脚本的手段,来改造一个挂马的网站,这样当用户点击了包含正常网站的URL时,是不会有戒备心理的,更容 易造成更大的损失。
2.通过ActiveX控件制作网页木马。
通过 ActiveX 把普通的软件转化为可以在主页直接执行的软件的网页木马,此类网页木马对所有的系统和IE版本都有效,缺点是浏览网页木马时会弹出对话框,询问是否安装此插件。病毒作者通常是伪造微软、新浪、Google等知名公司的签名,伪装成它们的插件来迷惑用户。
3.利用WSH的缺陷
利用WSH修改注册表,使IE安全设置中“没有标记为安全的的activex控件和插件”的默认设置改为启用,然后再利用一些可以在本地运行EXE程序的网页代码来运行病毒。它的危害在于,可以利用IE的安全漏洞提升权限达到本地运行任意程序的后果。
4.利用MIME漏洞制做的网页木马。
它利用了Microsoft Internet Explorer中MIME/BASE64处理的漏洞,MIME(Multipurpose Internet Mail Extentions),一般译作“多用途的网络邮件扩充协议”。顾名思义,它可以传送多媒体文件,在一封电子邮件中附加各种格式文件一起送出。现在它已 经演化成一种指定文件类型(Internet的任何形式的消息:E-mail,Usenet新闻和Web)的通用方法。在使用CGI程序时你可能接触过 MIME类型,其中有一行叫作Content-type的语句,它用来指明传递的就是MIME类型的文件(如text/html或text /plain)。MIME在处理不正常的MIME类型时存在一个问题,攻击者可以创建一个Html格式的E-mail,该E-mail的附件为可执行文 件,通过修改MIME头,使IE不能正确处理这个MIME所指定的可执行文件附件。IE处理附件的方式:一般情况下如果附件是文本文件,IE会读取文件, 如果是VIDEO CLIP,IE会查看文件;如果附件是图形文件,IE就会显示文件;如果附件是一个EXE文件呢?IE会提示用户是否执行,但当攻击者更改MIME类型 后,IE就不再提示用户是否执行而直接运行该附件。从而使攻击者加在附件中的程序,攻击命令能够按照攻击者设想的情况进行。在Win9X"ME以及 WinNT4和Win2000下的Internet Explorer 5.0、5.01、5.5均存在该漏洞,微软邮件客户端软件Outlook Express也存在此漏洞。
5.利用系统的图片处理漏洞
这是种只要浏览图片就可以传播的网页木马。这种木马是把一个EXE文件伪装成一个BMP或JPG图片文件,在网页中添加如的代码来欺骗IE自动下载,然后利用网页中的Java Script脚本查找客户端的Internet临时文件夹,寻找下载的BMP格式文件,把它拷贝到TEMP目录.再利用脚本把找到的BMP文件用DEBUG还原成EXE,并添加到注册表启动项中,达到随系统的目的。
6.HTML文件木马
首先利用工具把EXE格式的文件转化成HTML文件的木马,这样.EXE文件看起来就变成了Htm文件,欺骗访问者访问假冒的Htm文件从而达到运行病毒的目的。它和BMP网页木马运用了同一个原理,也会利用JAVASCRIPT脚本和debug程序来转换回EXE文件。
7.Hta木马
Hta网页木马,是利用Internet Explorer Object Data(MS03-032)漏洞制作的网页木马,此漏洞是因为Internet Explorer在处理对象"Object"标记时没有正确处理要被装载的文件参数。("Object"标记用于插入ActiveX组件等对象到HTML 页面。"Object"标记的"Type"属性用于设置或获取对象的MIME类型。通常合法MIME类型包括"plain/text" 或"application/hta", "audio/x-mpeg"等。)Internet Explorer指定远程对象数据位置的参数没有充分检查被装载的文件属性,攻击者可以构建恶意页面,诱使用户访问来运行恶意页面指定的程序 。
8.利用CHM格式漏洞。
这种网页木马首先创建一个Htm文件,包含如下代码:
Microsoft Internet Explorer javaprxy.dll COM Object Remote Exploit
四、网页木马的基本用法
理解了网页木马攻击的原理,以及常用的漏洞,就可以写出相关的利用代码。制作出网页木马,然后就是传播网页木马,目前网页木马的主要传播途径是:
1.通过IM及时聊天软件传播
将包含网页木马的地址(网址)通过QQ等聊天软件在网络中分发,一旦有用户访问了该网页,该网页就会在系统中自动下载并运行放置在网络上的木马。
2.攻击知名网站,获得Webshell权限后,在网站中填加恶意代码,如:
(1)iframe
注:';
利用在知名门户网站,填加恶意脚本的攻击行为很多,例如,安天实验室在06年8月份就发现了针对KFC肯德基,雪花啤酒,迈拓硬盘等知名网站的攻击行为。所采用的都是此种方式。
3.利用美丽的网页名称及内容,诱惑用户访问。
很多恶意网页或是站点的制作者,对浏览者的心理进行了分析,对域名的选择和利用非常精明。很多网民对一 些黄色信息比较感兴趣,成为了他们利用的渠道。他们会构建名www.love.com,或是http://bangbus.year.net等具有诱惑性 的名称诱惑用户点击。
4.利用电子邮件等传播。
攻击者,利用电子邮件群发工具,发送包含诱惑性信息的主题邮件,诱惑用户点击其中包含的网页。
五、目前常用的网页木马制作方式
1.Javascript.Exception.Exploit
利用JS+WSH的完美结合,来制作恶意网页。
2.错误的MIME Multipurpose Internet Mail Extentions,多用途的网际邮件扩充协议头.几乎是现在网页木马流行利用的基本趋势,这个漏洞在IE5.0到IE6.0版本中都有。
3.EXE to .BMP + Javascritp.Exception.Exploit用虚假的BMP文件诱惑用户运行。
4.iframe 漏洞的利用
当微软的IE窗口打开另一个窗口时,如果子窗口是另一个域或安全区的话,安全检查应当阻止父窗口访问子 窗口。但事实并非如此,父窗口可以访问子窗口文档的frame,这可能导致父窗口无论是域或安全区都能在子窗口中设置Frame或IFrame的URL。 这会带来严重的安全问题,通过设置URL指向javascript协议,父窗口能在子域环境下运行脚本代码,包括任意的恶意代码。攻击者也能在“我的电脑 ”区域中运行脚本代码。这更会造成严重的后果。
5.通过安全认证的CAB,COX
此类方法就是在.CAB文件上做手脚,使证书.SPC和密钥.PVK合法
原理:IE读文件时会有文件读不出,就会去“升级”这样它会在网页中指定的位找 .cab 并在系统里写入个CID读入.cab里的文件。
方法:.cab是WINDOWS里的压缩文件, IE里所用的安全文件是用签名的,CAB也不例外,所做的CAB是经过安全使用证书引入的。也就是说IE认证攻击,之所以每次都能入侵,是因为它通过的是IE认证下的安全攻击。
6.EXE文件的捆绑
现在的网页木马捆绑机几乎是开始泛滥了,多的数不胜数。再将生成的MHT文件进行加密。
六、常用网页木马运行原理的分析
1.Javascript.Exception.Exploit
常用的攻击代码:
Function destroy(){
try
{
//ActiveX initialization 初始化ActiveX,为修改注册表做准备
a1=document.applets[0];
//获取applet运行对象,以下语句指向注册表中有关IE的表项
a1.setCLSID( "{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID( "{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID( "{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();
try
{
开始进行破坏
}
}
catch(e)
{}
}
catch(e)
{}
}
function do()
{
//初始化函数,并每隔一秒执行修改程序
setTimeout( "destroy()", 1000); //设定运行时间1秒
}
Do() //进行破坏的执行函数指令
这个代码是JAVAScript编写,很简单,但却可以修改受影响系统的注册表,释放垃圾文件,格式化硬盘等。 2.错误的MIME Multipurpose Internet Mail Extentions,多用途的网际邮件扩充协议头
常用的攻击代码:
Content-Type: multipart/related;
type="multipart/alternative";
boundary= "====B===="
--====B====
Content-Type: multipart/alternative;
boundary= "====A===="
--====A====
Content-Type: text/html;
Content-Transfer-Encoding: quoted-printable
--====A====--
--====B====
Content-Type: audio/x-wav;
name= "run.exe"
Content-Transfer-Encoding: base64
Content-ID: ---以下省略AAAAA N+1个---
把run.exe的类型定义为audio/x-wav,这是利用客户端支持的 MIME(多部分网际邮件扩展,Multipart Internet Mail Extension) 类型的漏洞来完成的。当申明邮件的类型audio/x-wav时,IE存在的一个漏洞会将附件认为是音频文件自动尝试打开,,结果导致邮件文件x.eml中的附件run.exe被执行。在win2000上,即使是用鼠标点击下载下来的 x.eml,或是拷贝粘贴,都会导致x.eml中的附件被运行。整个程序的运行还是依靠x.eml这个文件来支持。Content-Transfer-Encoding: base64 Content-ID: 从中可以看出,由于定义后字符格式为base64,那么一下的代码全部为加密过的代码,里面可以是任何执行的命令:
〈script language=vbs〉
On Error Resume Next• 容错语句,避免程序崩溃
set aa=CreateObject( "WScript.Shell")•建立WScript对象
Set fs = CreateObject( "Scripting.FileSystemObject")•建立文件系统对象
Set dir1 = fs.GetSpecialFolder(0)•得到Windows路径
Set dir2 = fs.GetSpecialFolder(1)•得到System路径
……省略……
之所以有的病毒不能准确的清除全部的病毒体,是因为很多杀毒软件,病毒监控只杀当时查到的,却不能处理新建的文件。 3.Iframe 漏洞的利用
常用攻击代码:
〈iframe src=run.eml width=0 height=0〉〈/iframe〉
常见的木马运用格式,高度和宽度为0的一个框架网页。 一个框架引用的新方式,对type="text/x-scriptlet" 的调整后,就可以实现和eml格式文件同样的效果。
4.Microsoft Internet Explorer浏览器弹出窗口Object类型验证漏洞的利用
常见攻击代码:
----- code cut start for run.asp -----
----- code cut end for run.asp -----
七、网页木马运行后特征分析
1.系统的默认主页被更改,并且IE工具栏内的修改功能被屏蔽掉;
2.在系统的桌面上无故出现陌生网站的链接,无论怎么删除,每次开机都依旧会出现,如果单击鼠标右键,出现的工具栏中有也会有大量陌生网站的链接;
3.系统桌面及桌面上的图标被隐藏;
4.注册表编辑器被锁定,从而无法修改注册表;
5.上网之前,系统一切正常,下网之后系统就会出现异常情况,如系统盘丢失、硬盘遭到格式化等;
6.上陌生网站后,出现提示框“您已经被XX病毒攻击”,之后系统出现异常;
7.登陆站点后,出现一个窗口迅速打开后又消失的现象,系统文件夹内出现异常文件;
8.系统的进程中出现未知进程,而且无法终止,终止后会自动重新出现;
9.系统CPU占用率高;
10.登陆某站点后,杀毒监控软件报警,并删除病毒文件,位置在IE的缓冲区。重新启动计算机后发现IE默认设置被修改。
11.自动弹出广告;
12.信用卡,QQ帐号丢失等;
八、网页木马的预防
1. 避免浏览包含不健康内容的网页;
2. 由于网页木马是含有害代码的ActiveX网页文件,因此在IE设置中将ActiveX插件和控件、Java脚本等全部禁止。
具体方法是:在IE窗口中点击"工具→Internet选项,在弹出的对话框中选择"安全"标签,再点 击"自定义级别"按钮,就会弹出"安全设置"对话框,把其中所有ActiveX插件和控件以及Java相关全部选择"禁用"即可。不过,这样在网页浏览过 程中可能会造成一些正常使用ActiveX的网站无法浏览。
3.对Windows 2000和WINDOWS XP用户,还可以通过在服务里,禁用远程注册表操作服务"Remote Registry Service",来对付该类网页。具体方法是:点击"管理工具→服务→Remote Registry Service(允许远程注册表操作)",禁用即可。
4.升级浏览器到IE6.0并及时安装升级补丁。
5.下载微软最新的Microsoft Windows Script
6. 安装反病毒软件以及防火墙,打开网页监控和脚本监控.
后记:
网页木马,目前的发展方向,是利用操作系统,浏览器存在的溢出漏洞,来下载Trojan- Downloader类木马,达到传播病毒的目的。而网页木马的传播方式,目前,主要是黑客攻击知名网站,在代码中填加恶意脚本,从而达到,利用知名网 站,访问量高的特点,快速传播的目的。网页木马本身的危害巨大,但它带来的最大影响,是可能传播恶性的病毒,造成极大的危害。
通过最近的这些病毒分析,现在越来越多的入侵者采取网页挂马,来达到控制更多的“肉鸡”从而达到,靠流 量和贩卖“肉鸡”来达到收入最大话,通过网站钓鱼,来捕获受害人的信用卡帐号以及个人隐私,更有甚者进行非法交易,出卖给一些商业间谍等,以后的病毒防范 和研究工作还将继续进行下去,任重而道远。
欢迎大家和我交流,我们一同来打一场反黑反病毒的持久战,同时在这里我还是要感谢安天实验室的全体cert组成员,能全力支持我,配合我来更快更好的完成病毒分析工作,也同样感谢我的两个助手-----王清,王琪,以及诚信网安的全体成员,谢谢你们对我工作的支持和帮助。