传奇网站被劫持(又一款传奇私服利用Rootkit病毒进行推广)
近日,火绒收到多位用户反馈,电脑频繁报毒、网页被劫持等问题,经排查发现是传奇私服捆绑Rootkit病毒导致。该病毒通过篡改用户流量来推广自己的传奇私服,不仅使用多种对抗手段,还伪装成系统驱动等来隐藏自身,对用户构成较大的威胁。
用户登录传奇私服客户端后,该病毒会通过黑加白文件释放 Loader 驱动,再通过 Loader 驱动来下载、加载劫持驱动,以拦截杀毒软件驱动和专杀工具的进程。随后,其会根据C&C服务器配置信息来修改受害者电脑代理、DNS等系统设置,使用户访问传奇相关的网页时,跳转到指定传奇私服。该病毒执行流程,如下图所示:
病毒的执行流程图
病毒的执行流程图
目前,火绒安全产品可对上述病毒进行拦截查杀。已感染该病毒的用户,可先使用火绒专杀工具进行扫描,再使用火绒【系统修复】和【全盘查杀】功能,重启电脑后即可彻底清除该病毒。
查杀图
查杀图
一、样本分析
当传奇私服启动一段时间后,会通过释放出黑加白文件的方式来绕过杀毒软件查杀,火绒剑监控到的行为,如下图所示:
火绒剑监控到的行为
火绒剑监控到的行为
BugRpt.DLL启动后,会创建一个线程循环尝试寻找360卫士关闭窗口的位置,通过模拟鼠标点击来关闭360卫士,相关代码,如下图所示:
关闭360卫士
关闭360卫士
之后BugRpt.DLL释放Loader驱动,通过Loader驱动来下载、加载Rootkit病毒,相关代码,如下图所示:
下载、加载Loader驱动
下载、加载Loader驱动
在Loader驱动中,会从C&C服务器下载、加载Rootkit病毒,相关代码,如下图所示:
该Rootkit病毒会根据C&C服务器配置信息来修改受害者电脑代理、DNS等系统设置,当用户访问传奇相关的网页时,会被劫持到病毒作者指定传奇私服,并且该病毒使用VMProtect保护壳进行加密,以及多种内核对抗手段来拦截杀毒软件进程和驱动。该Rootkit病毒启动后,会添加模块加载回调函数和进程加载回调函数来拦截杀毒软件的驱动和进程。 相关代码,如下图所示:
添加模块加载回调函数和进程加载回调函数
添加模块加载回调函数和进程加载回调函数
在模块加载回调函数中会计算驱动文件的签名以及MD5,如果为相关杀毒软件的驱动,就会阻止杀毒软件驱动的加载,相关代码,如下图所示:
模块加载回调函数中拦截驱动
模块加载回调函数中拦截驱动
会被拦截的驱动签名列表,其中一些看起来像是人名,如下图所示:
会被拦截的驱动签名
会被拦截的驱动签名
在进程加载回调函数中通过匹配进程名以及MD5来终止专杀工具进程,相关代码,如下图所示:
进程加载回调函数中终止专杀工具进程
进程加载回调函数中终止专杀工具进程
之后该Rootkit病毒会创建多个线程来实现各种恶意功能,有很多线程都是空的,猜测该病毒更多恶意功能还在开发当中,相关代码,如下图所示:
创建多个线程
创建多个线程
在线程一中来请求服务器配置信息,在其他线程中会根据配置信息来修改受害者电脑的代理以及DNS设置。C&C服务器的地址是由www.zhao123ookk.com或www.777fffhhh.com域名对应的IP地址来决定如:www.zhao123ookk.com域名对应的IP是51.88.1.11,C&C服务器的地址为http://hebv.5188111.top:5858/posn.cnf,相关代码,如下图所示:
获取服务器地址
获取服务器地址
获取到的配置信息是加密的,如下图所示:
接收配置信息
接收配置信息
服务器返回的配置信息是先由RC4进行加密后,再对加密的结果用XOR 9F加密,之后再用base64进行编码,相关解密代码,如下图所示:
解密配置文件
解密配置文件
解密后的配置信息,如下图所示:
解密后的配置信息
解密后的配置信息
在线程二中会实现各种恶意功能如:将自身伪装成系统驱动、修改受害者代理和DNS设置、以及利用注册表回调来保护注册表位置防止代理设置被修改回去。将自身伪装成系统驱动,相关代码,如下图所示:
伪装成系统驱动
伪装成系统驱动
修改系统代理来劫持用户访问的传奇网站,相关代码,如下图所示:
修改用户代理
修改用户代理
PAC劫持脚本会将传奇私服相关的网页劫持到黑客指定的网页,PAC脚本代码,如下图所示:
PAC代理脚本
PAC代理脚本
修改用户DNS相关代码,如下图所示:
修改系统DNS
修改系统DNS
再创建注册表回调函数来保护这些位置不被修改回去,回调函数中会先排除自身线程,如果发现指定注册表位置被修改就返回错误代码:0xC0000022,相关代码,如下图所示:
保护关键注册表位置不被修改
保护关键注册表位置不被修改
在线程6中会循环检测各种回调函数是否存在,如果被摘除就重新添加,相关代码,如下图所示:
检测回调函数是否被摘除
检测回调函数是否被摘除
该病毒还会创建关机回调,在关机时,会判断驱动启动项是否存在,如果不存在,就重新添加一个驱动启动项,相关代码,如下图所示:
关机回调中添加驱动启动项
关机回调中添加驱动启动项
二、附录
C&C:
HASH:
本文由某某资讯网发布,不代表某某资讯网立场,转载联系作者并注明出处:http://dynnyz.cn/index.php/yunying/547.html