随着各种网络技术不断发展,黑客对于网站攻击也总是不断变换策略以及通过互相之间的交流来改进攻击技术。而事实上就目前网站安全方面,面临的挑战主要也正是来自于攻击技术不断的演进,使得防御也需不断升级。在之前也发布过《 恶意软件新玩法:隐匿在Pastebin上的后门 》,而这一次,我们将展示一种新的攻击方法,是通过结合上述的技术,使用伪造的jquery Pastebin文件来进行恶意软件传播。
Pastebin,官网地址为 http://pastebin.com ,在PasteBin上的可以将代码、文本进行粘贴并存储好,比如在Paste文本框内贴好文本、代码,并选择类型,比如截图中的css,再点击submit,就会自动上传并获得分享地址。通过这种方式,我们可以很好地进行代码或者其他文本的分享。
早在几个星期之前,SuCuri安全团队通过SiteCheck开始检测扫描WordPress的站点,但在通过逆向分析某个WordPress网站的/wp-includes/js/jquery/jquery.js以及/wp-includes/js/jquery/jquery-migrate.min.js文件中的JavaScript代码时发现,出现某些不属于原始文件的代码,我们可以在下面检测到受感染的jquery文件的截图中看到,相应的URL其实是被写在 payload里面的。
从上面的分析结果来看(其中 war/moc.nibetsap//:ptth反过来过来的网址是 http://pastebin.com/raw ),上述的两个文件被注入了从 Pastebin加载进来的恶意脚本。在之前,我们在 infected Magento sites 的案例中也有了解到类似的攻击方式。那么,从某种程度上来说,这两个攻击案例是相关联的。不过,这个WordPress的感染方式更加有趣,所以也让我们仔细看看先前检测到的Pastebin链接。
jquery.js 和 jquery-migrate.min.js这两个文件是WordPress的核心文件。一般来说,黑客在获得访问网站的访问权限后,有时会选择将上述文件的内容替换成恶意代码,实现跨站攻击。
在这个案例中,我们可以发现,
1、攻击者向 jquery.js文件嵌入的恶意脚本是从以下网址加载的(成对出现),
hxxp://pastebin .com/raw/HC90NJsp hxxp://pastebin .com/raw/dWe3gcb5 (or hxxp://pastebin .com/sE8cX1Pi)
2、向jquery-migrate.min.js文件嵌入的恶意脚本则是通过以下网址加载的,
hxxp://pastebin .com/raw/WMMc4sS8 hxxp://pastebin .com/raw/rDiH4Bjy
现在我们对于这些成对的Pastebin链接可能会产生一些问题。
1、为什么攻击者会注入两个脚本? 2、为什么攻击者会将合法代码从WordPress的核心文件中移除? 3、它不会对被感染的网站造成破坏么?
以上的问题我们将在下面通过分析来找到答案。
让我们先剖析下每对 Pastebin链接的内容,
HC90NJsp 实际上是jQuery (v1.11.3)的原始源码,它相对应的链接,dWe3gcb5却是一个恶意脚本,会将访问者重定向到hxxps://goo .gl/54Miz5 同样的, WMMc4sS8是 jQuery Migrate库的原始脚本,它相对应的链接rDiH4Bjy也是一个恶意脚本,会将访问者重定向到hxxps://goo .gl/54Miz5或者 hxxp://get .adobe.com .flashplayer .frogsland .com/flashplayer_20ga/上
那现在我们了解了,在此案例中,黑客获取访问权限后,会将jQuery库文件移除,而在每一个感染 WordPress jQuery文件的脚本中,第一个感染的Pastebin脚本是用于补充此前移除的 jQuery原始代码,而第二个脚本则用于植入恶意程序。
目前尚不清楚为何攻击者要先移除现有的代码,再从Pastebin加载进去。比较有可能的是,这样会使得恶意程序的感染以及二次感染更容易。攻击者在实施攻击时还是需要检查是否 .js文件已经感染成功,而通过将全部代码都更换,来确保恶意程序的成功感染。因为jQuery代码被嵌入到攻击的脚本中的话,会导致攻击脚本会相当长,所以攻击者想到了通过将 jQuery库文件保存在 Pastebin上,然后只提供一个额外的调用。
经过对pastebin上的paste内容的追踪,我们发现,上述调用的paste所属的用户并不是匿名的,有两个用户是跟它有关联的。
Emonostin –资料显示该用户创建于2015年12月2日 Jstoolshope – 资料显示该用户则创建于2015年12月17日
再经过研究发现,两个用户都只有两个paste, 而其中Emonostin的pastes是用于加载到 jquery-migrate.min.js文件中,而Jstoolshope的pastes是用于加载到 jquery.js文件的。
那么到这里,我们也会产生疑问,为什么攻击者会选择使用经过注册的用户账户来进行文件的加载。首先,因为这样会显得更灵活,攻击者可以针对自己的pastes内容进行随时更换。比如,如果黑客需要重定向URL,那么就可以直接在paste里面的代码做。下图为恶意程序在pastebin.com上的修改时间,
其实在Pastebin上,针对每一个paste 也提供了关于浏览次数的统计信息。我们看到,jquery.js 的两个paste的浏览次数均为20,000+,而 jquery-migrate.min.js的两个相关的paste则有接近 40,000的浏览量。乍一看,这种情况似乎又很合乎逻辑,上述提到的两个成对的paste浏览量都是接近的。到这里,我们也会猜测,是不是植入恶意程序的.js脚本在paste有浏览记录的同时也会被下载。但是,从 pastebin FAQ社区的回复说,关于Pastebin上paste的浏览统计量,并不仅仅只是针对paste下载的次数。所以从Pastebin的计数数据来看,并不能准确评估攻击的次数。但为了获取更加可靠的统计数据,我们可以看goo.gl的重定向情况。
现在让我们看回恶意代码,经过具体的分析,我们发现它会检查 “tmid_no_session”(在一个版本中)以及“tmid_no_check”(另外一个版本) cookie 的状态。如果 cookie中的状态是设置为“1”,那么则不会返回信息给到访问者。但接着脚本会将cookie状态设置为“3”,并将访问者重定向到第三方网址。
在本案例中,在jquery-migrate.min.js 的恶意脚本会将Windows用户重定向到hxxp://get .adobe .com .flashplayer .frogsland .com/flashplayer_20ga/,其它系统用户则重定向到hxxps://goo .gl/54Miz5。而jquery.js中的恶意脚本则将Windows系统和非Windows系统的用户重定向到hxxps://goo .gl/54Miz5。
而Windows重定向的URL是伪造的。我们可以看到其被伪装成Flash player的升级页面。但其实该网址已经被Google列入钓鱼网站的黑名单中了。
以下链接是VirusTotal针对该网址提供升级并下载的恶意程序的分析报告,大家有兴趣可以看看。
VirusTotal链接
另外一个重定向网址“hxxps://goo .gl/54Miz5”,则指向“hxxps://go .padsdel .com/afu.php?id=473791“。这是一个隶属于广告联盟的网址。
从实际情况来看,将访问流量从被攻击的网站重定向到广告联盟链接是2015年较为常用的攻击方式。而我们也看到越来越多的攻击者从中获利。攻击者一般在此类攻击中将广告联盟链接嵌入其中,并利用这种方式从广告商那里获利。这些广告商往往愿意出价的原因是通过重定向的网站,诱骗访问者去安装恶意软件和垃圾软件(UWS)。而这些恶意软件可以劫持浏览器,用以显示更多的垃圾和恶意广告。(这看起来似乎像是一个递归的恶意广告投入模式)
广告和恶意软件一般都是并行的,在本次“jquery pastebin”攻击案例中,攻击者有两种操作模式:一个是针对垃圾广告,另外一个是针对恶意软件。而这种模式也逐渐在黑市中形成“盈利”产业链条。
Goo.gl链接一般都较为明显,我们可以看到任意短链接的使用统计数量。比如,以下是重定向的网址 https://goo.gl/#analytics/goo.gl/54Miz5/month 的使用数据。
我们可以看到攻击者开始使用重定向网址”hxxps://goo .gl/54Miz5” 是在12月15日。经过对其监测,该网址平均每天有接近1万的访问量(即重定向次数),而在12月29日则到达顶峰,有超过3万访问量。这些数字同时也代表了被重定向的访问者的数量,因为恶意软件通过cookie设置不会对已知的访问者进行重定向。
从影响来看,这种攻击会比较令人头疼。而一种相对麻烦的解决方式是对.js文件中的恶意代码进行清除,但这样做却是存在可能会因为不小心清空代码造成网站不可用的风险,所以如果采用这种方法还请注意。
另外一种较为容易的解决方式是:
1、利用最近备份的副本恢复到原先的版本及状态; 2、升级或者重装WordPress; 3、对感染的.js文件进行修复,用户可以在以下地址中获取标准版本,(针对WordPress 4.4)
http://core.svn.wordpress.org/tags/4.4/wp-includes/js/jquery/jquery.js
http://core.svn.wordpress.org/tags/4.4/wp-includes/js/jquery/jquery-migrate.min.js
与此同时,仅仅只是清除恶意代码对于网站的安全保障来说还是不够的,用户最好能够全面扫描下服务器,检查是否存在后门,并修补发现的安全漏洞。同时,在平时应该利用工具或者其他方式,对网站进行实时监控,确保能在攻击发生时,管理员可以及时作出反应。
* 参考来源: sucuri ,FB小编troy编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)