浅析MS Excel武器化
Hulk 渗透测试 10424浏览 · 2019-03-21 00:48

文章来源: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宏脚本中嵌入明文代码

https://www.virustotal.com/#/file/bb1e0bdbf57ca55f0a4de261924803614bc71a20df8cf901d7d31bdce75f0738/detection

另存为.xlsm格式,再提交检测:

https://www.virustotal.com/#/file/aa6c113d71f79e7215df0634f7eace7a95abb183ea038a60f0b6f1c06c3df661/detection

此时能分析识别该文件的AV引擎多了三个,但是检测总量少了一个。Cool,继续

注释部分插入明文代码,并使用宏执行

使用以下宏执行嵌入在“注释”属性中的有效负载:

注意:为了用Workbook_Open()函数自动执行该宏,该武装化文档应该降级为Office 98-2003兼容性(.xls)

VT检测结果:

https://www.virustotal.com/#/file/6894bcd2a7f9912a2dc24974de7ee477b209a6db5fa04879ecc0b7e4d9e75988/detection

Emmmm,似乎这项技术更容易被检测。

通过自定义公式执行明文代码

创建合适的公式:

VT检测结果:

https://www.virustotal.com/#/file/8c9c86b85669689d7c6c6e054849744efac164678184541491c7d50d8df75877/detection

https://www.hybrid-analysis.com/sample/8c9c86b85669689d7c6c6e054849744efac164678184541491c7d50d8df75877

Nice!如果你装有卡巴斯基,你可以放心地睡觉。

在VBS宏脚本中编码PowerShell命令行

naaaa...一旦你放入一个powershell到宏中,文档将默认被识别为恶意软件。利用宏执行powershell通常是备受关注的。甚至只要我创建,Windows Defender会立马删除。

注释部分编码PowerShell命令行,并使用宏执行:

我仍然使用命令行,但是对powershell使用Base64编码,情况会怎么样?

https://www.virustotal.com/#/file/a60005afd0e2bed1fae9606d829d9df73e4b6cb7fa7fcffc169d2629713b85a8/detection

使用和前文明文代码相同的方法,结果也是相同的。这非常有趣,意味着(AV软件)处理Base64编码命令和明文命令的方式一样。因此,如果想更好地利用此方法,应当避免过度编码命令。

通过自定义公式执行Powershell命令行

我在公式中插入经过base64编码地powershell命令行:

VT检测结果:

https://www.virustotal.com/#/file/b881a88a8d712e2071f0e25bebaa2846e71512b82f4ece90e89d1388e459e83e/detection

OK,很明显Powershell被给予过分的关注了。对明文代码,使用相同的方法Powershell多了十余次检测。

实践的最佳结果:
在自定义公式中嵌入明文命令:2/59

结论

如果你是红队成员或者笔试者,你应当考虑使用恶意的公式。因为到目前为止,各大AV厂商似乎对公式并不重视。显然本次测试是基于简单的命令行,并且使用的是一种老旧的技术。这不是一次彻底的测试,但仍具有参考价值。

感谢阅读!

0 条评论
某人
表情
可输入 255