瑞星劫持浏览器主页分析
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)
一 现象
最近打开IE浏览器,发现地址栏是锁定的默认主页,但是显示的网页内容确是瑞星安全导航。
通过分析,发现瑞星是通过在驱动层注册进程回调,在应用层启动服务监控创建的进程,当发现浏览器启动,且打开的网址是劫持网址,会对浏览器默认主页进行劫持。
二 分析
(1) 进程监控分析
重点分析了一下瑞星服务进程ravmond的进程回调处理函数ExeMonCallBack,其关键部分如下
首先通过驱动层上报的进程启动信息去获取一些关键信息,通过ProcessID获取父进程的全路径,通过Process的全路径去获取当前启动的进程是否是需要劫持的浏览器进程。
如图,我们看到ravmond基本劫持了常用的所有浏览器,且设置了一个开关,在开关开启的时候对type为10,10000,20000000的浏览器不做劫持,对应的浏览器分别为IE,QQ浏览器,juzi浏览器。通过调试发现目前开关并没有打开。
之后通过一个Event事件来防止重入。Event事件的名字格式为{RsDrvmcl_sessionid_browsertype} 例如主动打开IE浏览器,Event的名称为{RsDrvmcl_1_00000010},在执行劫持操作时创建event,在获取到浏览器类型成功后去打开event,如果打开成功,说明当前正在对该浏览器主页做劫持,本次打开不做处理。
如果当前启动的进程是目标浏览器进程,ravmond会对当前进程的命令行以及父进程做是否需要劫持判断,对命令行的判断主要分为三步:
1,当前浏览器打开的URL是否为Rising导航,如果是不做劫持。
2,当前浏览器打开的URL是否为特定的hao123带渠道导航,如果是不做劫持。
3,当前浏览器打开的URL是否在预置的导航网址列表中,如果是开始劫持。
通过dump内存看到,瑞星预置的劫持导航将近100条,里面不仅包含用户常用的主流导航(hao123 baidu 搜狗导航 360导航 2345导航 QQ导航),还包含大量的小导航,以及跳转站例如123.dh136.com,123.hao245.com等等。除了对导航网址进行判断以外,还对常见的桌面快捷方式打开参数等进行了劫持,如下图所示。
主页劫持只针对由explorer kdesk qmlaunch mxstart进程启动的浏览器生效。
在上述条件都满足的情况下,创建一个线程启动假的浏览器
线程函数里面主要做了两部分的工作,一部分是通过浏览器类型去获取对应的假浏览器路径,一部分是创建进程。
通过分析,可以发现各浏览器对应的假浏览器进程如下
360chrome.exe => wsafechb.exe
360se.exe => wsafetqa.exe
qqbrowser.exe => wsafesdb.exe
SogouExplorer.exe => wsafeeid.exe
liebao.exe => wsafeche.exe
Maxthon.exe => wsafesda.exe
UCBrowser.exe => wsafechc.exe
chrome.exe => wsafea.exe
iexplore.exe => wsafeei.exe
…
Vista以后操作系统增加了session隔离机制,一个用户对应一个独立的session,服务程序运行在session0当中,用户程序运行在session1 session2…里面,由于当前是在服务进程中,要从服务中启动一个具有桌面UI交互的应用,需要使用CreateProcessAsUser,并手动设置环境块。
(2) 浏览器劫持分析
浏览器劫持主要是通过使用假浏览器进程创建一个webbrowser替换掉原有的webbrowser来实现的,我以IE浏览器为例来分析。
在满足劫持条件后,瑞星服务程序会启动一个假的浏览器进程,IE对应的是wsafeei.exe。
wsafeei.exe首先先创建一个名字为AXWIN Frame Window的窗口。
然后以新建窗口为父窗口,创建一个webbrowser,并创建线程将新创建的窗口替换到IE中。
线程中循环等待IE界面出现,并获取IE的”Frame Tab” “TabWindowClass” “Shell DocObject View”三个窗口的句柄,如果9秒内IE没有启动,则放弃劫持。
将wsafeei创建的窗口的父窗口设置为TabWindowClass,获取TabWindowClass的位置以及大小,对应设置 wsafeei创建的窗口为对应的位置和大小,将IE的ShellDocObjectVIew窗口隐藏掉,显示wsafeei创建的窗口,对应的webbrowser打开瑞星导航。为了不影响IE的正常使用,其注册了消息过滤函数,处理IE相关的消息。
到此为止,就成功的劫持掉了IE的默认主页。
三 结论
通过在服务进程中监控进程启动,替换浏览器的窗口来劫持主页,可以避免与主页保护软件的正面对抗,达到劫持效果,思路令人佩服。如果用在正规的主页保护技术上那就更好了。
http://www.freebuf.com/articles/web/131156.html
学习日记,兼职软件设计,软件修改,毕业设计。
本文出自 学习日记,转载时请注明出处及相应链接。
本文永久链接: https://www.softwareace.cn/?p=1622