浅析VBS蠕虫病毒及专杀工具的制作

时间:2022-10-23 15:12:02 公文范文 来源:网友投稿

摘要:分析了VBS蠕虫病毒的起源、实现技术及其原理。针对VBS蠕虫病毒的特性,讨论了利用已知病毒特征码制作VBS病毒专杀程序的设想及实现方法,可以对已知病毒做出较大准确率的查杀。

关键词:VBS 蠕虫病毒 特征码 专杀

1 VBS蠕虫病毒的起源与发展及其危害

1.1 VBS的运行基础 VBS的运行离不开微软提供的脚本程序:WSH(Windows Scripting Host),中文译名为“Windows 脚本宿主”,它是内嵌于Windows 操作系统中的脚本语言工作环境。当编写了一个脚本文件,如后缀为.vbs或.js 文件,然后在Windows 平台下双击并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是 Windows Scripting Host,程序执行文件名为Wscript.exe。

WSH 的优点在于它使可以充分利用脚本来实现计算机工作的自动化,也正是它的这一特点,使的系统又有了新的安全隐患。许多计算机病毒制造者正在热衷于用脚本语言来编制病毒,并利用 WSH 的支持功能,让这些隐藏着病毒的脚本在网络中广为传播。

1.2 VBS蠕虫病毒的危害性 VBS蠕虫病毒的编制使用的是VB Scripting脚本语言,这种脚本语言相当容易上手,所以它的入门很低,编制相对来说比较容易,又因为有了强大的Scripting Host 脚本支持,造成了VBS蠕虫病毒在Windows中相当流行。

由于VBS蠕虫病毒的这种特点,使它的破坏性大,感染力强。VBS蠕虫病毒语言功能强大,直接调用Windows组件,可迅速获得对系统文件及注册表的控制权,这就使得病毒一旦发作,即可造成极大的破坏。如耗费系统资源、制造系统垃圾、滥发电子邮件、阻塞网络等。同时,又因为脚本是直接解释执行的,使得它的感染变的非常简单,电子邮件、局域网共享、文件感染等都是它感染的“好帮手”。而且VBS蠕虫病毒的生命力十分顽强,使得它的彻底清除有相当大的难度。

2 典型蠕虫病毒专杀工具的制作

2.1 冲击波(Worm.Blaster)蠕虫病毒档案

发作时间:随机

病毒类型:蠕虫病毒

传播途径:网络/PRC漏洞

依赖系统:Microsoft Windows NT 4.0 / Microsoft Windows 2000/Microsoft Windows XP /Microsoft Windows Server 2003

大名鼎鼎的冲击波病毒在2003年大范围暴发,在短短一周之内,“冲击波”这个利用微软RPC漏洞进行传播的蠕虫病毒至少攻击了全球80%的Windows用户,使他们的计算机无法工作并反复重启,大量企业用户也未能幸免。该病毒还引发了DOS攻击,使多个国家的互联网也受到相当影响。

该病毒运行时会不停地利用IP扫描技术寻找网络上系统为Win2K或XP的计算机,找到后就利用DCOM RPC缓冲区漏洞攻击该系统,一旦攻击成功,病毒体将会被传送到对方计算机中进行感染,使系统操作异常、不停重启、甚至导致系统崩溃。系统资源被大量占用,有时会弹出RPC服务终止的对话框,并且系统反复重启, 不能收发邮件、不能正常复制文件、无法正常浏览网页,复制粘贴等操作受到严重影响,DNS和IIS服务遭到非法拒绝等。

2.2 利用冲击波病毒特征码编写“冲击波专杀程序”

任何一种杀毒软件都需要经常更新病毒库,其实这些病毒库里面收集的就是从病毒中提取的特征码。然后通过特征码的比较来判断文件是否为病毒。特征码的提取可以使用UltraEdit来实现(详细步骤略):

文件偏移地址:0x0c90

提取特征码长度:0x20(32)

特征码内容:

0A 73 53 41 2E 65 78 30 5C 5C 31 39 32 2E 31 36

38 2E 30 B0 64 21 73 05 3C 83 98 1B 76 5B 36 8B

有了以上素材就可以做一个简单的病毒专杀程序了,下面就是用提取到的冲击波病毒特征码编写的冲击波专杀程序部分代码:

bool scanvir(const char *file,long offset,int length,void*vir);

main()

{

int i;

unsigned char vir[]=

{0x0A,0x73,0x53,0x41,0x2E,0x65,0x78,0x30,0x5C,0x5C,0x31,0x39,0x32,0x2E,0x31,0x36,0x38,0x2E,0x30,0xB0,0x64,0x21,0x73,0x05,0x3C,0x83,0x98,0x1B,0x76,0x5B,0x36,0x8B};

i=scanvir("c:\\CA.exe",0x0c90,0x20,vir); //调用查毒函数

if(i==1) printf("警告!发现病毒。\n");

if(i==0) printf("没有发现病毒。\n");

}

bool scanvir(const char *file,long offset, int length, void *vir)

{

FILE *fp = NULL;

int a=0;

char rvir[255]={0};

bool b=false;

fp=fopen(file,"rb"); //以2进制打开指定文件

if(NULL==fp)

{goto novir;}

fseek(fp,offset,SEEK_SET); //把文件指针指向偏移地址

fread(rvir,length,1,fp); //读取length长度的代码

a=memcmp(vir,rvir,length);//与提取的代码比较,返回值放到a中

if(a==0)

{

b=true;

}

novir:if(fp){ fclose(fp); fp=NULL; }

return b;

}

实现环境:Windows XP SP3+Visual C++ 6.0英文版

运行后生成的可执行程序sa.exe大小为164KB,运行界面如图1所示:

该程序代码中用的是冲击波蠕虫病毒的特征码,如果换作其他病毒的特征码,编译运行后马上就可以制作出该病毒的转杀工具,简单快捷。

2.3 专杀工具的局限性

2.3.1 功能太过简单,后知后觉,有了特征码后才能制作程序杀毒。

2.3.2 既然是“专杀工具”,因为只能同时调用单一特征码,所以只能查杀该病毒原体,对其变种不一定有效。

3 结语

由于病毒和黑客技术的结合,VBS蠕虫病毒的防范难度越来越大,已经不再是由单独的杀毒厂商所能够解决。查杀病毒人人有责,新时期互联网高速发展下更需要包括每一位用户在内的多方面共同参与进来,一起构筑全方位的安全防范体系。

参考文献:

[1]张运凯,王长广,王方伟,等.“震荡波”蠕虫分析与防范[J].计算机工程,2005,31(18):75-77.

[2]葛秀慧.计算机网络安全管理[M].北京:清华大学出版社,2006:213-219.

[3]罗卫敏.基于良性蠕虫对抗P2P蠕虫策略研究[J].计算机应用研究,2009:24-28.

[4]陈健伟.计算机病毒与反病毒技术的研究[J].电脑与电信,2006:31-33.

[5]卢立蕾.Windows环境木马进程隐藏技术研究[J].信息网络安全,2009:40-42.

[6]黄志洪,李俊宇,梁盛伦,等.现代计算机信息安全技术[M].北京:冶金工业出版社,2004.

推荐访问:浅析 专杀工具 蠕虫病毒 制作 VBS