不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106

一、前言
       在过去的几个月中,我一直在研究Office恶意代码。令我困扰的是:宏病毒可以给用户电脑带来极大的伤害,Office为什么要给普通用户提供宏功能?虽然优秀的信息安全产品能够在很大程度上阻止病毒的入侵,但这绝对阻止不了高级入侵者运行恶意代码。
       今天我给大家介绍一种攻击者用于隐藏宏代码的方法,亲证可用,然后再介绍取证人员如何进行逆向分析。
      需要说明的是,今天探讨的话题仅限于Windows平台,不涉及Mac、移动设备。
二、隐藏宏代码
       我们知道,宏代码是通过VBA进行开发的。攻击者通常会将带有宏病毒的Office文档发给目标,目标启用宏之后,恶意代码执行,所有恶意行为不会被目标用户察觉。通常情况下,使用Office开发工具打开VBA编辑工具就可以查看源码。现以简单的显示MsgBox功能的word文档为例,在正常情况下,我们可以看到宏代码,并查看是否有可疑的行为:
图片[1]-不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106-安全小百科       但是,如果我们对该文档稍做处理,宏代码便对普通用户不可见。当通过Office开发工具查看宏代码时,会弹出一个“工程不可用”窗体。重要的是,宏代码已经运行了。
图片[2]-不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106-安全小百科图片[3]-不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106-安全小百科       如果把MsgBox功能替换为其它恶意代码,不向用户展示任何反馈信息,那恶意行为对用户是无感知的,用户不会发现任何可疑的东西。更严重的是,普通用户根本不知道什么是宏,什么是VBA,Office还有开发工具!换句话说,攻击成功实施后,攻击者可以在用户的电脑上做他们任何想做的事。
三、原理
      DerbyCon 2018大会上, Stan Hegt 和 Pieter Ceelen首次演示了隐藏宏代码的技巧,其原理是doc文件格式中有PROJECT流数据块,它包含了宏代码相关的信息,如果把该信息删除或覆盖,则office就找不到宏代码在哪里,也就在GUI层隐藏了宏代码。
图片[4]-不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106-安全小百科
       笔者对该技巧进行验证,我所用的是Office 2016,发现该技巧已经不起作用,很明显Office 2016对这个漏洞进行了改进,当module信息修改后,Office会对文档的PROJECT信息完整性进行校验。虽然该技巧已失效,但依然无法阻挡高级攻击者。
       在PROJECT流数据块中,有两个属性:ProjectProtectionState and ProjectVisibilityState,我们可以在微软官方文档中找到相关信息。ProjectProtectionState 是可读性,ProjectVisibilityState是可见性。笔者在将此两个属性值置0之后,VBA代码就隐藏了,就是在上文中提到的代码隐藏效果,出现“工程不可用”的提示框。
图片[5]-不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106-安全小百科、如何逆向分析
       对于取证分析人员来说,破解被隐藏的宏代码并非难事。想必你已经知道并使用过olevba,不管是否采用了上述隐藏技术,宏代码会无所遁形。
图片[6]-不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106-安全小百科
 
五、写在最后
       作为攻击者(红队),如果你认为olevba会导致原形毕露而放弃,那就太肤浅了。我只想说现实网络世界中,不知道的技术往往超乎你的想象。我们可以在P-code层把代码隐藏起来,具体我会在后续文章中介绍。
      作为防守者(蓝队),我们光会使用工具是不行的,必须下功夫写更多有效扼制攻击的代码或工具。微软Office doc文档是一种非常复杂的二进制格式文件,越复杂的东西漏洞就越多,也就是宏威胁很多。采用上述方法修改doc文档之后,CMG和GC变成0,用户不可查阅宏代码,这本身就是一种异常行为,但绝大多数杀毒软件不标记该文档为可疑。笔者将修改后的文档提交VirusTotal,结果为1/60,绝大多数AV/EDR会忽视该问题的存在。但防守者应当重点关注此类行为,我也建议AV/EDR将此类文档标记为高风险。
      作为用户,我的建议是不要相信任何宏代码,如果你看到Office文档让你启用宏,切勿打开。
图片[7]-不要“启用宏”— 宏代码隐藏技巧公之于众 – 作者:jamesjing106-安全小百科      希望更多的人能够意识到信息安全问题。每日三省吾身,我发现有很多有用的工具都是国外人写的,很多年以前写的,自觉差距很大。中国信息安全基础设施以及技术还很薄弱,无法抵挡高级的网络渗透攻击,需要更多的贤士保护公民的网络安全。谨以共勉。
  
 
 
 
 
 
 
 
 
 

来源:freebuf.com 2020-07-01 23:45:45 by: jamesjing106

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论