用户
搜索
  • TA的每日心情
    慵懒
    14 小时前
  • 签到天数: 183 天

    连续签到: 3 天

    [LV.7]常住居民III

    版主

    Rank: 7Rank: 7Rank: 7

    26

    主题

    107

    帖子

    3881

    魔法币
    收听
    2
    粉丝
    3
    注册时间
    2015-11-20

    i春秋签约作者春秋文阁

    发表于 2018-3-5 09:48:47 4123630
    本帖最后由 icq5f7a075d 于 2018-3-6 09:53 编辑


    本系列文章将由浅入深对宏病毒进行全面的剖析。本系列文章共有三个部分,第一部分是入门篇,介绍的是基础理论知识;第二部分是提高篇,对宏病毒进行实例分析,介绍了宏病毒分析的技巧以及一些防治手段;第三部分是深入篇,我们会研究更底层的东西,解析Offcie文档、分析宏数据在文件中的存储方式并研究宏病毒处理的方式。

    1. 绪论
    宏病毒是一种常见的计算机病毒,寄存在文档或模板中,但是并不会直接感染可执行程序。其诞生于上世纪90年代,自其诞生之日,各种各样的宏病毒不断在网络上涌现。早期的宏病毒是病毒先驱者们展现高超技术的舞台,只感染文档文件,随着时间的推移,宏病毒的危害也越来越大,宏病毒不再只是感染文档文件,而成为了分发恶意程序的常规途经。宏病毒的执行简易隐蔽快速,一旦用户打开含有宏病毒的文档,其中的宏病毒就会被执行。

    对于攻击者而言,宏病毒是一把利器,尤其是结合了社会工程学的宏病毒。如乌克兰电网事件(BlackEnergy),工作人员只是打开了一篇看似很正常的文档,然后便造成了无法挽回的损失。不只是BlackEnergy,近来肆虐的各种各样的勒索软件,都离不开Office宏的帮助。借助传统的宏病毒,一旦用户打开含有宏病毒的文档,其中的宏病毒就会被执行,释放并激活恶意软件。

    2. 基础知识
    2.1宏与宏病毒
    宏(英文Macro),广义上的定义是:宏就是把一系列的指令组织成一独立的命令,类似C语言中#define宏定义,避免同一动作的一再重复;狭义上,宏特指office系列办公软件中的宏,Microsoft Office中对宏的定义为“宏就是能够组织在一起的,可以作为一个独立命令来执行的一系列Word 命令,它能使日常工作变得容易。”本文中提到的宏,采用了狭义的定义,即office办公软件中的宏。

    使用office文档文件(demo1.doc)时,有时候我们会遇到如下图所示的“安全警告”,这说明该文档文件中含有宏,并且office软件设置了“宏禁用”功能。
    图片1.png

    这个时候,单击“启用内容”按钮,宏就会执行。
    使用快捷键Alt+F11可以打开vb编辑器,查看宏代码:
    图片2.png
    本例中的宏很简单,其作用就是弹出一个对话框。
    执行恶意功能的宏就是宏病毒。

    宏病毒是使用宏语言编写的恶意程序,存在于字处理文档、电子数据表格、数据库、演示文档等数据文件中,可以在office系列办公软件中运行,利用宏的功能将自己复制到其他数据文件中。宏病毒感染的是数据文件。宏病毒与传统的病毒有很大的不同,它不感染可执行文件,而是潜伏在Microsoft Office文档中,一旦用户打开含有宏的文档,其中的宏就会被执行。宏是使用VBA编写的,编写过程简单,任何人只需掌握一些基本的宏编写技能就可以编写出破坏力巨大的宏病毒。

    宏病毒的强大是建立在强大的VBA组件的基础上的。同时,宏病毒与系统平台无关,任何计算机如果能够运行Microsoft Office办公软件,都有可能感染宏病毒。随着Microsoft Office系列办公软件成为电子文档的工业标准,Word,Excel和PowerPoint等已成为个人计算机和互联网上广泛使用的文档格式,宏病毒成为传播最广泛,危害最大的一类病毒。

    根据文档载体的不同,宏病毒可以细分为很多种,Word、Excel、Access、PowerPoint等都有想应的宏病毒。

    2.2 VB基础
    宏是使用VB语言编写的,所以在进一步研究宏病毒前,我们必须掌握VB的基础知识。本文介绍的VB知识,只是VB的皮毛,以便于在接下来宏病毒分析过程中,我们可以迅速理清宏代码。

    打开demo3.doc,我们以其为例进行讲解。其代码如下:
    [Visual Basic] 纯文本查看 复制代码
    Sub autoopen()
    b
    End Sub
    Function b()
    MsgBox ActiveDocument.BuiltInDocumentProperties(5)
    End Function

    (1)sub与function
    上述宏代码中,含有一个Sub和一个Function。sub和function都类似于C中的函数。sub在VB中被称为过程,function被称为函数;sub没有返回值,function有返回值;一段宏一定是从sub开始执行的。在demo3中定义了一个过程 autoopen(),“End Sub”表示这个过程的结束。

    (2)VB基本函数
    demo3 中“MsgBox ActiveDocument.BuiltInDocumentProperties(5)”调用了VB基本函数“MsgBox”,参数是"ActiveDocument.BuiltInDocumentProperties(5)"。这里实际上是“MsgBox (参数)”,但是VBA的容错率较高,不写括号,宏代码依然能够执行。即使我们将“MsgBox”写成“MSgbOx”,宏代码依然能够执行。一些宏病毒就是使用大小写混淆,增加病毒分析难度。

    除了MsgBox,VB中还有很多基本函数,各位可以百度“VB函数大全”。

    (3)对象
    VB中存在很多对象,如Application对象,Document对象,Adobd.stream对象等。对象实际上是代码和数据的组合,我们在使用对象时,要么使用对象的属性(就是数据),要么使用对象的方法(就是代码)。通过 “对象.属性/方法”的方式使用对象的属性/方法。ActiveDocument.BuiltInDocumentProperties(5)中就是使用了ActiveDocument对象的BuiltInDocumentProperties()方法,参数是5。

    游客,如果您要查看本帖隐藏内容请回复

    本帖被以下淘专辑推荐:

    发表于 2018-3-5 14:16:03

    这是本系列的入门篇,所以比较简单,欢迎关注接下来的文章。
    使用道具 举报 回复
    喜欢
    宏病毒研究1——基础理论篇
    使用道具 举报 回复
    不错  喜欢这个专辑
    使用道具 举报 回复
    宏病毒研究1——基础理论篇
    使用道具 举报 回复
    回家感觉很干净家家户户
    使用道具 举报 回复
    少时诵诗书所所所所所所
    使用道具 举报 回复
    学习一下,感谢分享经验
    使用道具 举报 回复
    哇,通俗易懂的文章,好赞!
    使用道具 举报 回复
    这也能上精选?
    使用道具 举报 回复
    发表于 2018-3-5 13:40:50
    1
    低调求发展,潜心学安全 个人博客www.shallowdream.cn
    使用道具 举报 回复
    发表于 2018-3-5 14:02:41
    ding ding ding
    使用道具 举报 回复
    谢谢分享,来看看
    使用道具 举报 回复
    发表于 2018-3-5 19:10:34
    kankankankan
    使用道具 举报 回复
    感谢楼主分享
    使用道具 举报 回复
    发表于 2018-3-6 12:19:41
    12345513646
    使用道具 举报 回复
    发表于 2018-3-6 14:07:50
    看帖要留名
    使用道具 举报 回复
    发表于 2018-3-6 14:11:08
    谢谢分享,来看看
    使用道具 举报 回复
    学习宏病毒
    使用道具 举报 回复
    感谢楼主分享
    使用道具 举报 回复
    123下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册