表1 静态、动态寄生虫病毒对比表
隐蔽性
繁殖数量
繁殖文件类型
静态寄生虫
低
有限
Html静态文件
动态寄生虫
高
无限
虚拟繁殖的动态文件
3
揭开寄生虫的面目——病毒代码分析
安恒信息零壹实验室按照发现的时间纵向对比分析了病毒源码,结合最新监测检出的失陷网站特征,对动态寄生虫程序进行了总结归纳。
1
客户端代码详解
客户端的作用主要是伪装、鉴权并向服务端发起通信,我们总结了目前见到的病毒功能(详见表2),并以PHP病毒为例,选取其中有代表性的3个样本进行介绍。
表2 客户端病毒样本功能汇总表
功能
来源判断
搜索引擎判断
后门
防删除
路径判断
样本一
×
√
×
×
×
样本二
√
√
√
×
×
样本三
√
√
×
√
√
01
样本一
样本一会对访问对象进行判断,具备一定隐蔽性,若为正常访客访问则不显示寄生虫页面;若访问对象是搜索引擎,则会构造UA为” aQ0O010O”的访问体并向服务端发起访问。
图5 客户端样本一的部分源码
02
样本二
样本二不但实现了搜索引擎判断,还对访问来源进行判断,当访客通过搜索引擎的搜索结果访问该网页时会显示寄生虫页面,而寄生虫页面会利用搜索引擎爬虫不加载js的特性,通过js加载iframe标签的方法展示出非法页面。除此之外,样本二还植入了一个后门,通过HTTP报文中的特定字段鉴权,可用于后续病毒更新、接收服务端指令等。
图6 来源判断代码
图7 后门代码
03
样本三
样本三除来源判断和搜索引擎判断外,还会判断访问路径中是否带有特定字符串,只有带有特定字符串如”. psd”的访问才会返回寄生虫界面,一定程度上增加了病毒的隐蔽性。
图8 特定字符串判断代码
除此之外,样本三还会针对参数进行判断,具体特征为访问不带参数时,仅返回轮链,访问携带参数时,返回寄生虫页面,这样只需利用一定办法(如蜘蛛池)让搜索引擎爬虫访问一次客户端程序,如”www.victim.com/virus.php”,便可让爬虫自动地爬取繁殖出的页面。
图9 样本三参数判断页面
样本三还兼具一定的防删除功能,利用php可以执行系统命令的特性将病毒本身修改为只读。
图10 防删除功能代码
2
服务端代码详解
服务端的功能为制作寄生虫页面,各样本间的功能大同小异,以其中一个样本为例,其主要文件构造及作用如表3所示。
表3 静态、动态寄生虫病毒对比表
文件名称
作用
index.php
程序总入口
mb.html
模板页面,需要替代的文本/链接带{}
lunlian.txt
存放失陷网站的客户端链接,用于制作轮链
keyword.txt
存放非法关键词
content.txt
存放新闻或小说等正常文本,用于欺骗搜索引擎
服务端的运行如图9所示,以一个静态网页源码为模板,将需要收录的黑词和轮链植入,并利用新闻、小说等近期搜索率较高的文本让搜索引擎误认为这是个包含高质量内容的正常网页。
图11 服务端运行流程
为了自动化地更新新闻文本,每当客户端发起一次访问,服务端会从随机从中国新闻网爬取最新的新闻,代码如图10所示。
图12 实时新闻采集代码
4
只是暗链?——欢迎联系我们
“寄生虫”不叮“无缝”的网站,病毒往往都过后门进入失陷网站,切不可轻视暗链植入的情况,单纯地删除暗链页面或病毒是不够的,不彻底清除网站的后门可能会使网站再次挂链。零壹实验室在监测中发现,某高校学报网站于2022年5月13日被检出存在暗链植入情况,并于6月份修复了这一暗链网页。但由于可能并未对网站后门进行修复,该网站在2022年9月2日再次被挂上了博彩网站的暗链。
图13 浙江某高校学报两次被挂链
另外,在暗链监测过程中,零壹实验室发现,黑产进行暗链植入的方式和手法呈现多元化和对抗性,寄生虫程序从静态到动态的进化就是一个例子。为了避免网站被植入寄生虫病毒,需定期对网站下资产进行扫描、检测,尤其注意更新日期较近的PHP、ASPX文件。当然,与防治所有的暗链事件一样,网站的漏洞防护才是治本之策,如发现服务器存在暗链植入情况但经排查仍无法解决,欢迎联系我们400-6059110。