利用PowerShell在MS Office文档属性中隐藏Payload的技巧

本文介绍如何使用PowerShell脚本绕过Microsoft限制,在MS Office文档的Comments属性中嵌入任意长度的Payload,并提供了在Word、Excel和PowerPoint中读取这些注释的VBA宏代码示例。

在MS Office文档属性中隐藏Payload

你是否想过为什么要在MS Office文档的属性中插入长注释?如果你有这种需求,那么你可能会喜欢这个PowerShell脚本,它可以帮助你将任意长度的注释放入该字段。Microsoft在使用应用程序(如Word、Excel、PowerPoint)时限制了可以插入的注释长度,但这个脚本可以帮你绕过这一限制。下面的动画展示了该脚本的运行情况。

该脚本还包含一个“清理”选项,可以清除“作者”和“最后修改者”文档属性的值,以防你不想分享这些信息。或者,你可以使用额外的命令行参数来设置特定值,如演示中所示。

要使用宏读取注释值,对于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代码可以做到。

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


*Carrie曾是BHIS的测试员,直到她转到另一家伟大的公司。但我们非常高兴能有她许多精彩、信息丰富的客座文章!

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