在MS Office文档属性中隐藏Payload:绕过限制的技术实现

本文详细介绍了如何使用PowerShell脚本在MS Office文档的Comments属性中嵌入任意长度的Payload,并提供了Word、Excel、PowerPoint的宏代码示例,以及Base64编码解码方法,适用于红队操作和渗透测试场景。

在MS Office文档属性中隐藏Payload

你是否想过为什么要在MS Office文档的属性中插入长注释?如果你有此需求,那么这个PowerShell脚本可能会对你有用。它允许你在Comments属性中插入任意长度的注释,而Microsoft应用程序(如Word、Excel、PowerPoint)本身对注释长度有限制,此脚本可帮你绕过该限制。下方动画展示了脚本的运行效果。

脚本还包含一个“Sanitize”选项,可清除“Author”和“Last Modified By”文档属性的值,以防你不想分享这些信息。或者,你可以使用额外的命令行参数设置特定值,如演示所示。

要使用宏读取Comments值,对于MS Word,使用以下代码:

1
2
3
4
5
6
Dim prop As DocumentProperty
 For Each prop In ActiveDocument.BuiltInDocumentProperties
    If prop.Name = "Comments" Then
        MsgBox prop.Value
    End If
 Next

对于MS Excel,只需将ActiveDocument改为ActiveWorkbook:

1
2
3
4
5
6
Dim prop As DocumentProperty
 For Each prop In ActiveWorkbook.BuiltinDocumentProperties
    If prop.Name = "Comments" Then
        MsgBox prop.Value
    End If
 Next 

对于PowerPoint?你猜对了:

1
2
3
4
5
6
Dim prop As DocumentProperty
 For Each prop In ActivePresentation.BuiltInDocumentProperties
    If prop.Name = "Comments" Then
        MsgBox prop.Value
    End If
 Next

或许你希望将注释作为Base64编码字符串输入,并在宏中解码。这个VBScript代码可以实现:

1
' Base64解码示例代码(需根据实际实现补充)

希望这篇文章对你有帮助,并觉得脚本有用。下次见……

*Carrie曾是BHIS的测试员,后转入另一家优秀公司。但我们非常高兴能分享她许多精彩、信息丰富的客座文章!

你可以从Carrie的课程中学到更多! 查看这里: 攻击模拟工具:Atomic Red Team、CALDERA等 PowerShell for InfoSec 提供实时/虚拟和点播形式!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计