最近瀏覽器快捷方式目標屬性被修改,后面上了“hao.169x.cn”這個導航 ,每次修改后一段時間總又被修改回來。現決心找一找元凶。
經過一番搜索,發現是用小馬激活的后遺症,而且用關鍵字“remove hao.169x.cn”搜索,發現不少歪果朋友也紛紛中招,頓時感覺臉上火辣辣的,中國特色牛皮癬啊。。。
先說解決方案:
--你若懶得折騰,直接把瀏覽器快捷方式改回來,設為只讀。若愛折騰,請繼續看。
1. 任務計划名字里含有類似oem、kms刪掉(不知道怎么操作可以百度一下)。這些計划任務會在每次重啟創建下面的WMI相關東西。
2. 以管理員身份運行cmd,輸入powershell,然后執行以下代碼就可以了。這些WMI的東西會定時改你的瀏覽器快捷方式。
gwmi -Namespace "root/cimv2" -Class __FilterToConsumerBinding -Filter "Filter = ""__eventfilter.name='VBScriptKids_filter'""" | Remove-WmiObject
gwmi -Namespace "root/cimv2" -Class ActiveScriptEventConsumer -Filter "Name = 'VBScriptKids_consumer'" | Remove-WmiObject gwmi -Namespace "root/cimv2" -Class __IntervalTimerInstruction -Filter "TimerID = 'VBScriptKids_timer'" | Remove-WmiObject gwmi -Namespace "root/cimv2" -Class __EventFilter -Filter "Name = 'VBScriptKids_filter'" | Remove-WmiObject
如果你這步不行,大概是和我遭遇的流氓軟件不同,所創建的東西名字不同。你可參照這篇博文找到類似的地方手動刪除。
3. 將下面這段代碼xxx替換為你的用戶名,另存為后綴名為vbs的文件,運行一下就把所有的改的快捷方式改回來了。

On Error Resume Next Const link = "" Const link360 = "" 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\xxx\Desktop,C:\Users\xxx\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch,C:\Users\xxx\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu,C:\Users\xxx\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar,C:\Users\xxx\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
下面是第二步中4條命令的分析:
這其實是WMI的event。WMI的event包含三種東西:Consumer, Filter和Timer,對應的class分別是:__EventConsumer,__EventFilter和__TimerInstruction。 第二條ActiveScriptEventConsumer是__EventConsumer的子類要執行的操作,它有個script屬性,可以執行腳本,上面解決方案的第三步的代碼就是從這兒改來的(以其人之道還治其人之身)。
第三條的__IntervalTimerInstruction是__TimerInstruction的子類,是一個定時器,可以指定長時間執行一次。 第四條的__EventFilter有一個Query屬性,內容是
第一條的__FilterToConsumerBinding顧名思義就是Filter和Consumer的對應關系,相當於數據庫中的多對多關系的中間表。在wmi tool這個工具里配置也很簡單,只需在Filter列表里選中一個filter,在右側的Consumer列表中選擇對應的consumer,然后點右上角的“√”(Register)就好了。
推薦閱讀:
Windows Management Instrumentation (WMI) Offense, Defense, and Forensics(PDF)
其三篇譯文:
WMI 的攻擊,防御與取證分析技術之防御篇
WMI 的攻擊,防御與取證分析技術之取證分析篇(作者尚未完成)
以及:
Show and Remove Permanent WMI Event Registrations
WMI Attacks
--完--
原文地址 http://www.cnblogs.com/szhx/p/5296822.html
By 博客園-心亦