每SANS 的建议以及其他减轻哈希转储和其他攻击的措施,我正在考虑使用组策略定义“调试程序”用户权限分配。如果未启用,默认策略是允许本地系统和管理员拥有此权限,我想从管理员中删除此权限(我们没有运行集群服务,据我所知,这是您需要管理员拥有它的唯一原因)。
我想知道我是否应该启用此设置并仅添加本地系统,或者仅启用该设置。即,本地系统是否出于任何原因需要此权限?
答案1
严格来说,不是的,理论上您应该只向非系统管理员注册调试事件(除非如您所说,您需要其他系统帐户直接访问其他计算机的内存)。
然而我确实对这篇论文的想法有异议(尽管它有偏见,但我经常对 SANS 在许多主题上的建议提出异议)。
我可以向所有可能阅读本文但还不熟悉这次攻击的人总结一下这篇论文,内容大致如下。“您可以从内存或网络中获取 GUID 和/或访问令牌并使用它们的哈希值,而无需知道原始密码”。他们继续说,从受限帐户执行此操作的常见方法包括使使用 SMB/NetBIOS 凭据的服务崩溃,然后立即尝试注册 CREATE_PROCESS_DEBUG_EVENT,然后瞧 - 立即访问相应用户的 SMB 共享。
对于使用哈希的人来说,这可能是一个非常明显的攻击,而且肯定不是什么新鲜事。
我的问题是 - 为什么?为什么攻击者在(大概)破坏了系统关键服务后,还要费尽心思在内存中查找哈希值。如果现在没有触发 IPS - NOC 肯定会触发。
还有数百种更简单的方法,ARP 中毒、虚假 BPDU 操纵、OSPF 区域重路由,甚至使用源路由信息,这些都是拦截 MS-CHAP 或 SMB 信息的绝妙方法。此外,特权升级漏洞在 NT 上比比皆是,扣押来自特定应用程序的访问令牌是轻松得可笑。
最终,从我的角度来看,你最好使用类似凯尔伯罗斯或 RADIUS,假设这种基础设施不可用 - NTLMv2 具有更复杂的质询/响应算法,如果没有特权知识就无法被中间人攻击。