如何防止域成员服务器执行远程代码?

如何防止域成员服务器执行远程代码?

是否有办法使用防火墙、组策略设置或其他控制来阻止登录域成员的人远程执行域控制器上的代码(否则他们无法访问网络),因为他们可能窃取了某人的域管理员凭据?或者常规 AD 成员身份所需的网络访问是否永远不可分割地与远程执行所需的网络访问相同,例如执行程序或 PowerShell?

举个例子:

  • Windows 服务器“member1”是简单 AD 域的域成员
  • Windows 服务器“dc1”和“dc2”是这个简单域的域控制器
  • member1 和 DC 之间有硬件防火墙,只有那些TCP 和 UDP 端口在 member1 和 DC 之间允许进行域成员资格所需的操作。
  • 用户“Jack”是“member1”上的用户,除了上一个项目中描述的访问权限外,没有对 DC 的网络访问权限。
  • Jack 很狡猾,可以通过社会工程攻击或其他方法获取域管理员“Jill”的凭据。
  • Jack 获得这些凭证,登录到 member1,并可以在 dc1 或 dc2 上远程执行代码,使用的方法可能是执行程序或者 PowerShell 甚至只是使用 .NET 推出自己的实用程序,因为域成员资格所需的网络访问包括执行这些远程调用所需的网络访问。

我希望通过确保 member1 只能在域上执行常规 AD 功能(身份验证、更新组策略、时间同步等)来阻止这种攻击,并防止其他操作(例如在 DC 上远程执行进程)。

答案1

这是不可能的。如果您加入域,则域允许在您的计算机上登录用户并对其应用 GPO。GPO 可能导致从网络安装软件并修改任意注册表项。

在 enclave 中使用 RODC 可以保护域免受 enclave 的侵害,但无法保护 enclave 免受域的侵害。不过,您可以反过来使用 RODC 来提高安全性,让所有托管计算机仅与 RODC 通信,并仅允许其他 DC 访问可写 DC。

如果您有敏感计算机,希望保护它们免受域攻击,请考虑为这些主机创建一个单独的域(在单独的林中)并单独管理它们;当需要安全区域时,这非常常见。您也可以考虑根本不将它们加入域,尤其是在数量很少的情况下。

看了你的评论,我真的不确定你的威胁模型是什么。

您具体要做什么在很大程度上取决于您的威胁模型。但是,通常域成员和任意用户不会在域控制器上执行代码。如果您担心的是漏洞,那么修补是一个好策略,无论哪种情况,使用 RODC 都可以帮助限制影响,因为 RODC 无法更改域中的任何内容。

如果您担心用户远程运行命令或登录域控制器(这不会赋予他们任何权利执行诸如在域上部署软件之类的操作,除非他们使用某种特权提升漏洞或类似方法),您可以通过组策略阻止他们登录 DC。

Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment如果您想这样做,则此设置位于适用于 DC 的 GPO 中,在...下。

用户(和其他安全主体)绑定到域或计算机,但不能同时绑定到两者。您实际上无法根据用户在 AD 中连接的计算机来拒绝域管理员权限。但是,您可以做的是限制对非 RODC 的 DC 的网络访问,这可能足以(取决于您的威胁模型)阻止来自随机用户工作站的管理操作。如果您想阻止用户使用 RODC 作为枢轴点(这是您想要做的吗?),我想您可以拒绝他们的所有登录权限,但这会使管理变得相当困难 - 相反,我建议只允许 RODC 和其他 DC 之间的防火墙上的 DS 复制端口。

必须打开的端口是 RODC 部署文档中标识的端口;请参阅“必需的通信端口”部分https://technet.microsoft.com/library/dd728028%28v=ws.10%29.aspx。但是,唉,必须允许 RPC,这就是 psexec 的工作方式。这只会让你禁止通过 RDP 之类的东西登录。

为了完善并防止使用被盗凭据的 psexec,您可以始终通过上述可写域控制器上的 GPO 禁止域管理员进行批处理作业登录。这会稍微降低可管理性,但这是您可以做出的决定。有一篇关于此问题和其他域管理员帐户安全提示的非常好的文档,网址为https://technet.microsoft.com/en-us/library/dn487454.aspx。使用委派访问,即通过委派而不是全面的域管理授予管理帐户特定的管理权限,也可能是一个选择。

答案2

您需要从域控制器访问什么?由于成员 1 和域控制器之间有防火墙,因此您可以阻止对 dc1 和 dc2 的所有访问,然后在防火墙外部放置成员 1 可以访问的只读域控制器或 Web 前端之类的东西。

答案3

您可以从另一个方向解决这个问题,只需使用 SRP 或 AppLocker 阻止所有可执行文件(exe、bat、ps1 等)在您的 DC 上运行,除非您事先批准。这样,即使他们确实获得了访问权限,也会受到严重阻碍。

但假设某人确实拥有管理员权限,他们可以从大多数计算机对您的域执行任何他们想做的事情 - DC 主要用于身份验证......

而且,正如托德所说,如果你不信任吉尔,你最好剥夺她的权利……

答案4

简而言之,域管理员可以做任何他想做的事情(因此称为域管理员!)。没有办法阻止窃取域管理员凭据的人。他可以覆盖您设置的任何安全措施。

相关内容