文章来源:https://medium.com/@Bank_Security/ms-excel-weaponization-techniques-79ac51610bf5
概述
这里我们再一次讨论关于反向shell和规避检测的方法。我的上一篇文章利用C#&C++制作免杀shell中的一些方法已经失效了,许多AV都可以识别。所以今天我再次分享一些制作免杀shell的方法。
简单易懂的旧技术有时会有奇效
Meterpreter
Metasploit SMB delivery模块可以通过SMB服务器分发.dll文件,如果受害计算机执行特定命令就会被控制。这是一个简单高效的方法,很多文章都提到过它。我当时并不知道这是一种绕过AV的绝佳方法。
Exploit
使用相应模块并正确配置:
允许自定义dll文件名,文件夹和路径(为了方便这里我用的是1,2,3)。现在输入exploit,meterpreter_reverse_tcp payload会自动生成。当然你也可以自己配置payload。现在只需受害者执行生成好的命令,我们就可以获得一个shell。
结果:
受害者运行命令:
然后直接在受害者机器上执行命令,打开shell会话。好吧,这些似乎有些复杂,让我们试试如何利用恶意文档实施攻击。
但是,规避检测的最佳方法是什么?
OK,下面我将探究结合Excle文件绕过检测的方法。关于文档攻击,一旦受害者启用宏或确认命令被执行了,攻击者就可以获取shell而且不被Window Defender发现,通常受害者电脑存在未修复的漏洞。
Excle武器化技术
VBS宏脚本中嵌入明文代码
另存为.xlsm格式,再提交检测:
此时能分析识别该文件的AV引擎多了三个,但是检测总量少了一个。Cool,继续
注释部分插入明文代码,并使用宏执行
使用以下宏执行嵌入在“注释”属性中的有效负载:
注意:为了用Workbook_Open()
函数自动执行该宏,该武装化文档应该降级为Office 98-2003兼容性(.xls)
VT检测结果:
Emmmm,似乎这项技术更容易被检测。
通过自定义公式执行明文代码
创建合适的公式:
VT检测结果:
Nice!如果你装有卡巴斯基,你可以放心地睡觉。
在VBS宏脚本中编码PowerShell命令行
naaaa...一旦你放入一个powershell到宏中,文档将默认被识别为恶意软件。利用宏执行powershell通常是备受关注的。甚至只要我创建,Windows Defender会立马删除。
注释部分编码PowerShell命令行,并使用宏执行:
我仍然使用命令行,但是对powershell使用Base64编码,情况会怎么样?
使用和前文明文代码相同的方法,结果也是相同的。这非常有趣,意味着(AV软件)处理Base64编码命令和明文命令的方式一样。因此,如果想更好地利用此方法,应当避免过度编码命令。
通过自定义公式执行Powershell命令行
我在公式中插入经过base64编码地powershell命令行:
VT检测结果:
OK,很明显Powershell被给予过分的关注了。对明文代码,使用相同的方法Powershell多了十余次检测。
实践的最佳结果:
在自定义公式中嵌入明文命令:2/59
结论
如果你是红队成员或者笔试者,你应当考虑使用恶意的公式。因为到目前为止,各大AV厂商似乎对公式并不重视。显然本次测试是基于简单的命令行,并且使用的是一种老旧的技术。这不是一次彻底的测试,但仍具有参考价值。
感谢阅读!