“食鼠猫”样本主要通过虚假色情播放器等流氓软件的捆绑安装进行传播,感染主机会被强制安装多款推广软件,病毒通过篡改浏览器快捷方式、Hosts文件等方式劫持用户电脑的导航网站流量,病毒导入根证书伪造数字签名逃避杀毒软件查杀与防御,还尝试使用网络过滤驱动屏蔽杀毒软件的升级与云查杀。
“食鼠猫”样本作为典型的推广类病毒,对于当前国内病毒传播的流行形势具有一定的代表性。本文尝试通过对样本行为、传播源头的相关分析,溯源追踪其幕后黑手,揭露国内流氓推广类病毒传播与牟利的灰色产业链。
病毒样本行为分析
“食鼠猫”病毒捆绑在一款名为“好爱FM收音机”的流氓软件中,主要通过一些色情站点和下载站点的诱导虚假下载链接进行传播。样本使用delphi语言编写,通过多层Loader模块的解密与内存加载执行,下载运行最终功能模块,样本分析同样按Loader层和功能模块层分为两大部分。
一、Loader层分析
1、静默安装“爱好FM收音机”流氓软件,然后解密病毒模块A,直接在内存中加载运行。
2、模块A访问http://jsion.sin-o.com/favicon.ico,读取解析其中隐藏的下载链接并解密,然后访问此链接下载模块B,解密后再次内存装载运行。
3、模块B的主要功能包括病毒运行环境检测、流量渠道标记保存、后续恶意模块释放以及安装统计数据发送等:
1)、病毒运行环境检测,主要是为了对抗分析检测。使用的手法也比较常规,包括简单的反调试、特权指令反虚拟机、遍历检测系统窗口是否存在安全工具以及是否存在网吧管理程序进程等。
2)、保存推广渠道流量标记信息到注册表,方便后续模块根据流量ID读取对应的配置信息。
渠道标记信息:"fifm_s1_1030" (文件名)
标记信息格式:fifm_渠道标识_安装包标识
注册表:HKEY_CURRENT_USER\SOFTWARE\_alt
3)、释放资源中包含的MSI程序包(模块C)到临时目录(~DFAN9FP.tmp),调用msiexec.exe以静默参数解析安装。
4)、获取主机的MAC地址、系统版本以及安装包路径,加密后发送到远程服务器。
数据包信息:000XX9B704C2|Hide|5.1.2600.Service Pack 3|C:fifm_s1_1030.exe|1
统计后台地址:http://tj.5astyle.com/_one/GetState.aspx?Login=
4、模块C实际为msi格式的安装包程序,使用rootsupd.exe工具导入根证书,为加入恶意代码的IDriverT.exe伪造数字签名,企图逃避安全软件的查杀与防御。
MSI包文件列表:
IDriverT.exe:作者修改某款delphi程序源码(个人电脑助手v1.3),在其中添加了恶意代码后重新编译。
RCImage.skn:IDriverT.exe的依赖模块,实际为VMProtect的SDK动态库文件。
~DFDE9FD.tmp:实际为rootsupd.exe,用于更新系统根证书列表的命令行工具。
~DFCCBFE.tmp:根证书文件,伪造Symantec Corporation签名。
5、IDriverT.exe在正常程序的基础上添加恶意代码后重新编译,运行以后解密模块D,继续内存加载运行。
6、模块D访问远程服务器下载http://dl.zzxssm.com/data/_Config.dat(模块E),解密后继续在内存中直接加载运行。
7、模块E同样将如下格式信息加密后发送到另一安装统计后台服务器,可以看到此次的病毒变种版本为v1.6.1;然后与模块B一样再次对病毒运行环境进行检测;最后检测"_lost_downfile_mod_"互斥事件是否存在,如果存在则发送另外一条安装统计信息后退出,不存在则进入后续模块下载的逻辑分支。
明文数据A:000XX97C9DA6|v1.6.1|5.1.2600.Service Pack 3|C:TempIDriverT.exe|0
统计后台A:http://g.d8ht.com/set_index.php?Ver=
明文数据B:000C297C9DA6|v1.6.1|5.1.2600.Service Pack 3|C:TempIDriverT.exe|0#0#0#0#0#2
统计后台B:http://g.d8ht.com/set_stat.php?Ver=
8、模块E后续下载逻辑分支:发送安装统计数据包,返回数据为渠道的安装位置量,如果小于100则sleep十分钟后退出进程,否则开始下载白文件DumpUper.exe和恶意模块F到临时目录,读取恶意模块F解密后注入到白文件进程中运行,命令行参数为“1”。注入方法为常规手法,以挂起方式启动白文件进程,卸载原进程镜像内存后重新申请,拷贝自身并修复导入表,修改线程上下文,将目标进程OEP指向自身入口,最后恢复进程运行。
明文数据:000XX97C9DA6|v1.6.1|5.1.2600.Service Pack 3|C:TempIDriverT.EXE|0
统计后台:http://g.d8ht.com/set_index.php?Ver=
白文件链接:http://dl.zzxssm.com/data/1.jpg
文件目录:%temp%/DumpUper.exe [360杀毒的dump上报进程文件]
模块F链接:http://dl.zzxssm.com/data/6.jpg
文件目录:%temp%/YYM_JFFMEHN9_S%T955WD38.jpg [加密文件]
9、模块F首先检查“_Lost_Jump_Mod_1”互斥事件是否只存在,存在则退出进程;如果进程参数为”0”或“1”则将模块F重新注入自身白进程,命令参数为”2”;如进程参数为“2”则删除模块F文件,下载模块G注入自身进程继续运行,启动参数为渠道标识信息。
模块G链接:http://dl.zzxssm.com/data//2.jpg
10、模块G读取服务器配置信息,开始下载真正的工作模块。模块G取命令行参数解密获得渠道标记,开启定时器访问http://i1.d8ht.com:8080/GetLog.html获取配置信息,根据自身渠道标记去读取对应的配置信息,二次解密后再进行格式化解析,下载链接信息,开启线程下载执行各模块。
1)访问http://i1.d8ht.com:8080/GetLog.html获取配置信息,共26条有效数据,可以推测出此变种目前最少有26个流量渠道进行推广,格式如下:
2)获取上面的配置信息后,模块G根据自身的渠道ID读取对应的条目,进行两层解密,然后进行格式化解析,结果如下:
3)模块G接着开启线程按照格式化后的数据进行下载安装,本例中推广软件安装包为百度杀毒、百度卫士以及UC浏览器,下载安装包到配置信息中的指定目录;其他[self]标签的模块为自身工作模块,其中12.jpg为推广包安装模块,4.jpg为浏览器快捷方式篡改模块,8.jpg为hosts文件劫持模块,test.exe为网络驱动对抗模块,以上[self]类工作模块下载完成后通过白文件DumpUper.exe进程注入启动。
主要工作模块功能列表:
http://dl.zzxssm.com/data/test.exe [网络驱动对抗模块]
http://dl.zzxssm.com/data/3.gif[链接失效]
http://dl.zzxssm.com/data/12.jpg[推广包安装模块]
http://dl.zzxssm.com/data/4.jpg[浏览器快捷方式篡改模块]
http://dl.zzxssm.com/data/8.jpg[hosts文件劫持导航模块]
功能模块层分析
1、网络驱动对抗模块
本模块主要尝试加载TDI过滤驱动来屏蔽主流杀毒软件进程访问网络,屏蔽杀毒软件升级逃避云查杀。主要流程如下:
1)、下载百度杀毒软件压缩包释放,释放资源文件BDLiveUpdate.exe、dl.dll以及twain.dat,创建服务启动BDLiveUpdate.exe进程,在被白进程主动加载的dl.dll中解密twain.dat模块,然后内存加载运行。
百度杀毒压缩包:http://files.cnblogs.com/cfdown/bd_data.zip
释放目录:C:Program FilesBaiduBaiduLiveUpdate
服务信息:
ServiceName = "BDLiveUpSvc"
DisplayName = "BDLiveUpdate Service"
BinaryPathName = """C:Program FilesBaiduBaiduLiveUpdateBDLiveUpdate.exe"" -Embedding"
2)、twain.dat模块为BDLiveUpSvc服务的控制函数,主要负责后续网络过滤驱动的加载。创建VolStub驱动服务,根据操作系统类型释放相应x86/x64的网络过滤驱动文件并启动此驱动服务,随后释放另一份驱动文件(白文件:SscRdCls.sys)替换掉volstub.sys,再删除VolStub驱动服务。
X86/X64版本的驱动文件签名:(X86版本数字签名是通过导入根证书伪造的)
3)、随后尝试打开网络过滤驱动设备,如果成功则联网下载http://jsion.sin-o.com/data.json并解密,内容为主流杀软的进程列表,然后通过DeviceIoControl将格式化后的杀软进程列表数据发送给驱动程序。
4)、网络过滤驱动程序内容比较简单,通过挂载tcp/udp驱动设备,对常见杀毒软件进程访问网络进行过滤屏蔽。
2、推广包安装模块
本模块主要负责前面下载的推广软件包的安装,根据下载模块传递的命令行参数进行安装,参数分别为安装目录环境变量、推广包名、安装后进程名称。
1)首先检测是否存在常见的网吧管理程序进程,存在则不进行安装。
2)检查指定目录下的推广包是否存在,如果存在判断相应进程名是否存在,防止重复安装。
3)解密DmpUper.exe(360杀毒白文件)作为宿主傀儡进程,将安装包程序注入其中运行,循环继续下一个安装包的安装。
4)统计安装成功结果数量,如果为0则获取当前系统环境信息上传到远程FTP服务器,信息内容主要包括系统信息、活动窗口程序、系统进程列表以及桌面截图等。
5)发送安装统计信息到远程服务器。
数据包明文:000C2915324A|v1.5.1|5.1.2600.Service Pack 3|def_def_def|1#0#0#1#0#0
统计后台A:http://g.d8ht.com/set_stat.php?Ver=
统计后台B:http://tj.5astyle.com/two/GetState.aspx?Login=
3、浏览器快捷方式篡改模块
本模块主要通过修改浏览器快捷方式的属性实现篡改主页功能。
1)、访问http://www.d8ht.com/Model/url_mod.html配置链接,按启动参数指定的渠道标记读取对应的配置条目,解密后内容如下:
2)、修改注册表,隐藏系统桌面原生Internet Explorer图标。
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIcons]NewStartPanel:"{871C5380-42A0-1069-A2EA-08002B30309D}"=dword:00000001ClassicStartMenu:"{871C5380-42A0-1069-A2EA-08002B30309D}"=dword:00000001
3)、读取注册表获取桌面、开始菜单、快速启动栏等目录,遍历目录对快捷方式等文件进行过滤,删除其他网页快捷方式,按配置信息篡改主流浏览器快捷方式的目标属性,修改为病毒指定的导航网站。
4、hosts文件劫持导航模块
本模块主要通过修改hosts文件劫持域名解析,将hao123等常见导航网站引导到自己的服务器上,通过自己导航站点的广告推广赚取利润。
1)、读取注册表解析自身的渠道标记,访问http://i1.d8ht.com:8080/GetIp.html配置链接,解密获取对应劫持IP的信息。
2)、遍历进程检查是否存在qqpcrtp.exe(腾讯管家进程),如果存在则放弃修改,否则将常见导航网站的域名加上劫持IP写入到hosts文件中。
导航网站劫持列表:
www.hao123.com / hao.360.cn / www.3600.com
hao.qq.com / 123.duba.net / www.duba.com
123.sogou.com / www.114la.com / www.256.cc / www.uc123.com
通过上述的分析可以看出“食鼠猫”病毒所使用的对抗技术手段并不是特别高深,但是另一方面又具有一定的代表性,体现在以下几个部分:
1、样本loader部分使用多层的模块内存加载。loader进行解密再内存加载配合“白加黑”技术,已经成为对抗杀毒查杀的常见手法,部分情况下可以绕过杀毒查杀拦截。
2、修改正常软件源码添加恶意代码后重新编译。在大量的正常代码中混合一小段的loader代码,对杀毒引擎的鉴别能力和人工病毒分析都提出了更高的要求。
3、在系统中导入根证书伪造正常签名。可以绕过部分对文件数字签名验证逻辑不够严谨的安全软件。
样本追踪溯源
每一个热点病毒的传播过程都并非孤立事件,从样本编写、传播渠道、牟利方式以及到最终的受害用户,各个环节往往都是紧密关联的,“食鼠猫”病毒同样如此,通过对样本暴漏的信息以及安全统计数据的分析,尝试对“食鼠猫”病毒进行样本溯源,追踪病毒传播链条的幕后黑手。
1)、通过对病毒关联域名的历史解析数据分析,可以此流氓软件的推广从2014年初开始,变种文件最少在30个以上,本次新变种从2014年8月份左右开始传播,大多通过诱导站点的流氓软件捆绑传播,涉及到的推广渠道多达数十个。本次变种使用的推广域名与服务器在编写分析报告时已经关闭,病毒作者可能更换了新的下载域名和渠道,后续传播情况有待进一步的监控。
2)、部分病毒作者缺乏基本安全意识,经常使用邮箱、FTP服务器等方式上传信息,导致帐号密码信息暴漏。“食鼠猫”样本尝试上传到FTP服务器上的信息主要包括两类:安装失败和对抗监控,主要内容为系统环境信息和桌面截图。从FTP的上传文件中我们可以看到一些比较有意思的内容:
(1)、信息上传按日期创建目录,从8月11日到8月23日,这也说明本次新变种从近期开始传播;上传信息主要为系统环境和桌面截图,从部分感染用户当时的系统环境分析看,主要是被诱导安装了一些虚假色情播放器(例如优播视频等流氓软件),这些软件往往也捆绑安装了其他的的流氓病毒,在“刚需”的作用下不少用户面对杀毒拦截选择了放行。
(2)、用户在访问一些安全软件论坛时也会触发上传策略,其中大多为用户中招以后无法升级杀毒软件,访问论坛进行求助。从上传信息分析来看,很明显实际情况并非像某杀毒厂商对外宣传的很早就可以完美查杀修复,更不存在所谓的”凭借云查功能的某一特殊保护机制,是目前唯一未被“食猫鼠”阻断云安全服务的安全软件 ”。安全宣传应该本着实事求是的态度,这样才能真正帮助用户解决问题。
(3)、病毒作者在测试样本的时候也上传了一些调试信息,包括系统信息、代码截图等。可以发现一个有趣的细节,作者当时正在浏览一篇网页“DELPHI中MessageBox的用法”,从这个细节中我们可以看出作者可能是个delphi编程的初学者。
3)、同样在对病毒使用的某统计后台进行检测时,发现统计程序和服务器配置存在安全漏洞,导致统计后台程序的源码泄漏,进而获取到相应数据库的帐号密码信息,后续渗透拿到了部分病毒服务器的管理权限。通过对病毒服务器文件的进一步分析,获取到“食鼠猫”病毒的传播统计数据和病毒作者的其他信息。
(1)、病毒统计后台程序存在安全漏洞,数据库操作语句也未进行安全过滤操作,还可以看到作者针对不同推广渠道进行扣量的设置。
(2)、后续渗透得到部分病毒后台服务器的管理权限,通过进一步分析,掌握了“食鼠猫”病毒样本传播的历史统计数据以及病毒作者的其他信息。从“食鼠猫”病毒的后台安装统计数据中可以看出,本次新变种的传播感染量较高,在8月8日前后达到日感染量近9万最高峰,在总共一个半月的时间里,累计感染量达到95万。
国内互联网的推广行为一直以来缺乏严格的规范和监管,在利益的熏陶下衍生了非常多的灰色地带。被利益纠结在一起的流量圈内角色关系复杂,有时其中一环就覆盖了链条上的多个角色。庞大的国内互联网市场作为一块蛋糕,有人通过出色的产品赢得用户,有人则伸出黑手在背后暗暗蚕食。
“食鼠猫”样本作为一例典型的流氓推广类木马,一个多月的传播感染量就多达近百万,其本身载体就是一款流氓软件,而推广渠道也大多是通过其他流氓软件进行捆绑安装。一方面通过安装安装某杀毒软件赚取推广费用,另一方面通过劫持导航网站赚取广告费用。一款杀毒产品最终通过病毒木马被安装到用户电脑上,不得不说这是一种尴尬和讽刺,也暴漏了软件厂商对产品推广监管的缺失,通过强制手段的推广安装也很难得到用户的真正认可。
流氓软件的本质,一方面体现在其流氓推广方式上,往往是隐蔽、强制和暴力的;另一方面流氓软件很大程度上是个空壳软件,并没有为用户带来应有价值,带来的是系统资源浪费和各种频繁骚扰;最不容忽视的一点是其往往暗藏病毒木马,在利益追求的引导下,推广者想尽办法通过一台电脑的安装流量榨取十份的推广回报,用户电脑最终只能沦为赚取推广费用的傀儡,甚至最后被装上各类木马病毒,严重影响用户系统安全。
近年来流氓软件的传播增长趋势非常迅猛,加上与之伴随的流量类、推广类木马,已经日益成为国内互联网安全的一大毒瘤。用户作为流氓软件的最大受害者,不仅要遭受推广骚扰和安全威胁,最终可能还要为厂商推广费用的超额部分买单。流氓软件安全问题的解决,需要用户自觉抵制各类诱导软件,需要部分厂商联盟加强监管,规范自身的推广行为,也需要各安全公司增强针对性的查杀清理方案,为用户提供更全面及时的安全保护。