0x00 前言
对于网站上的各种弹窗侧栏广告,大家已经屡见不鲜。我们一边通过网站获取我们想要的信息,一边默默忍受的各种广告的苦恼。
网站论坛通过投放广告来获得收入,这是无可厚非的,但是,我们在网站上看到的各种广告,并不一定就是该网站正常投放的,有可能是其他恶意软件通过某种技术手段,进行的流氓广告推广。这种恶意软件一旦得以运行,往往会使用户的浏览器上出现各种莫名的、来历不明的“幽浮”广告。
近日,360互联网安全中心捕获到一个恶意软件程序,该恶意软件正是通过劫持浏览器,注入恶意的JS代码,从而达到投放流氓广告获利的目的。
0x01 恶意软件信息
该恶意软件名为“WebJs”,打开之后,无任何界面,一直在后台静默运行。通过对该恶意软件的分析以及溯源,发现该软件是由一个名为浏览器卫士(HProtect)的软件下载并安装运行的,该浏览器卫士其实是一个假借着保护浏览器的名义的流氓软件,它会阻止其他浏览器以及安全软件的安装,破坏安全软件的功能,同时会静默下载安装推广软件。通过搜索,发现很多用户都遇到过这种问题,如下图所示。
图1浏览器卫士的相关问题(一)
同时也有很多网友反馈该浏览器卫士来自系统自带,由此可见盗版的系统安装镜像也是该恶意软件的传播渠道之一,如下图所示。
图2浏览器卫士的相关问题(二)
0x02 运行效果
该恶意软件一旦得以运行,用户使用浏览器打开的任何HTTP页面都会被插入恶意的JS代码,这里以IE打开360搜索主页(www.so.com )为例,通过使用网络监控工具,可以发现本来应该是IE浏览器发送给服务器的请求,却全部被重定向到WebJs.exe,查看该页面的Web源码,发现该页面被插入了恶意的JS代码,该类型的恶意代码通常是用来进行各种广告的推广,比如浏览器右下角的弹窗,左右侧广告等等,如下图所示。
图3 HTTP劫持效果
0x03 基本流程
该恶意软件采用了中转服务器的方式,它分为主体程序WebJs.exe和劫持DLL两部分,WebJs.exe主要负责注入劫持DLL到浏览器进程中、中转浏览器的请求以及篡改HTTP响应包,劫持DLL主要是负责将浏览器的HTTP请求重定向到WebJs.exe。正是通过此种手法来劫持浏览器上的所有HTTP数据,注入恶意的JS代码,其主要工作流程如下图所示。
图4 WebJs恶意软件工作流程
0x04 详细分析
4.1 WebJs.exe运行之后,会立即添加自身到自启动项中,以便常驻系统。
图5 添加自启动
4.2从自身资源中释放恶意的劫持DLL文件,加载并运行DLL中的SetShellHook函数,实现DLL注入功能。
图6 释放并运行劫持DLL
4.3 监听本地9868端口,该端口总是接收来自各个浏览器的HTTP请求,然后中转该请求。
图7 监听9868端口并处理请求
4.4劫持浏览器的所有HTTP链接,并篡改HTTP响应包,向HTML页面中插入恶意代码。
图8 插入恶意的JS脚本
4.5 在WebJs.exe运行之后,一旦用户打开浏览器,就会被注入劫持DLL文件(1.dll),该劫持DLL会判断当前进程是否为浏览器。
图9 判断宿主进程是否是浏览器
4.6 Hook浏览器的connect函数,将浏览器的所有的HTTP链接重定向到本机的9868端口,也就是WebJs.exe监听的端口,这样就完成了HTTP的劫持流程。
图10 劫持HTTP请求到本地的9868端口
0x05 查杀情况以及如何防范
目前,360安全产品已经能够对该恶意程序进行查杀,如果在上网的过程中遇到文中类似的问题,请及时进行扫描查杀。
在此360反病毒专家提醒广大用户,请使用正规渠道的系统镜像安装系统,请谨慎使用来路不明的程序,保持杀毒软件常开,定期进行安全体检。如果发现异常程序,请及时向360互联网安全中心反馈,我们会在第一时间协助您解决问题。
图11 VirusTotal的查杀情况