在Excel电子表格中嵌入恶意的宏是在钓鱼攻击中最常见的方法,如果内容足够诱人,毫无戒心的用户会下载文件并开启宏,这样恶意代码会在他们的系统上运行。
为了模拟这种钓鱼攻击,我通常会使用PowerShell Empire来生成宏payload,然后配合King Phisher来发送钓鱼邮件,这2款工具都是开源的。
使用开源软件来生成payload的缺点是,他们往往会被IDS等设备检测到,或者被一些知名的邮件提供商检测到,但是我这里通过一些技巧绕过了邮件提供商的检测。:)
当我把代码粘贴到workbook的时候,这个Excel文件现在就包含恶意的payload了,Gmail立即就识别到了,并且发送给我了警告信息
之后做了一些研究,我觉得payload代码都是encode过的,如果要通过payload识别的恶意文件是很困难的,所以我猜测GMAIL主要通过2个因素来分析:
1.宏触发了“workbook open”
2.宏包含了"powershell"字符串
如果就是这两个保护的话,是非常容易绕过的,为了绕过第一个检测,我将调用Button_Click事件来替换Document_Open(),这需要用户实际点击下按钮,但是如果在内容足够诱人的情况下,这个不是问题。
第二个检测的绕过我通过拆分powershell字符串来绕过检测。
为了最大的兼容性,我在保存文件的时候,选择了2003-2007 workbook (.xls)。
经过这些简单的改变,GMAIL没有在识别出我的文件里包含恶意的宏payload了。