在本文中,我将深入研究一个更复杂的锁定系统的多阶段无文件攻击场景。 但后来我遇到了一种极其简单的无代码攻击——不需要 Word 或 Excel 宏! 这更有效地证明了我在这一系列文章中最初的假设:打破任何组织的外围根本不是一项艰巨的任务。
我将描述的第一个攻击利用了 Microsoft Word 漏洞,该漏洞基于 过时的 动态数据交换协议 (DDE)。 她已经是 固定的。 第二个漏洞利用了 Microsoft COM 和对象传输功能中更常见的漏洞。
即使您确实安装了此补丁,MS Office 中还存在其他安全漏洞,允许黑客执行与我们对 Word 所做的非常相似的操作。 在下一个场景中我们将学习 使用 Excel 作为网络钓鱼攻击的诱饵,无需编写任何代码。
为了理解这种情况,让我们记住 Microsoft 组件对象模型,或者简称为 COM(组件对象模型).
COM 自 1990 世纪 XNUMX 年代以来就已出现,被定义为基于 RPC 远程过程调用的“语言中立、面向对象的组件模型”。 要大致了解 COM 术语,请阅读 这个帖子 在 StackOverflow 上。
基本上,您可以将 COM 应用程序视为 Excel 或 Word 可执行文件,或其他运行的二进制文件。
事实证明,COM应用程序也可以运行 脚本 — JavaScript 或 VBScript。 从技术上讲,它被称为 小脚本。 您可能已经在 Windows 中看到过文件的 .sct 扩展名 - 这是 scriptlet 的官方扩展名。 本质上,它们是封装在 XML 包装器中的脚本代码:
<?XML version="1.0"?>
<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");
]]>
</script>
</scriptlet>
黑客和渗透测试人员发现 Windows 中有单独的实用程序和应用程序接受 COM 对象,因此也接受 scriptlet。
我可以将 scriptlet 传递给用 VBS 编写的 Windows 实用程序(称为 pubprn)。 它位于C:Windowssystem32Printing_Admin_Scripts的深处。 顺便说一下,还有其他 Windows 实用程序接受对象作为参数。 我们先看这个例子。