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

有没有办法,使用防火墙,组策略设置,或其他控制,以防止某人login到域成员能够远程执行域控制器上的代码(否则他们没有networking访问),给定的他们可能会窃取某人的域pipe理员凭据? 或者是常规AD成员身份所需的networking访问,与PsExec或PowerShell的远程执行所需的networking访问密不可分?

概述一个例子:

  • Windows服务器“member1”是一个简单AD域的域成员
  • Windows服务器“dc1”和“dc2”是这个简单域的域控制器
  • member1和DC之间有一个硬件防火墙,member1和DC之间只允许域成员所需的TCP和UDP端口 。
  • 用户“Jack”是“member1”上的用户,除了上一个项目符号中描述的访问之外,没有对DC的networking访问权限。
  • 杰克是狡猾的,可以通过社会工程攻击或其他方法获得域名pipe理员“吉尔”的凭据。
  • Jack获取这些凭证,login到member1,并可以使用PsExec或PowerShell远程执行dc1或dc2上的代码,甚至可以将自己的实用程序与.NET一起使用,因为域成员身份所需的networking访问包括执行远程调用所需的networking访问如这些。

我想通过确保member1只能在域上执行常规ADfunction(authentication,更新组策略,时间同步等)来阻止这种攻击,并防止其他操作,例如远程执行DC上的进程。

这不可能。 如果您join域,则允许域在您的计算机上签署用户,并将GPO应用于该域。 GPO可能导致从networking安装软件并修改任意registry项。

在飞地使用RODC可以保护域名免受你的飞地的侵扰,但它不会保护飞域免受你的域名的侵害。 但是,您也可以使用其他方法来提高安全性,并让所有托pipe的计算机仅与RODC通信,并且只允许其他DC访问可写入的DC。

如果您有敏感的计算机要保护您的域的妥协,请考虑为这些主机创build一个单独的域(在一个单独的林中)并分别pipe理它们; 当需要安全飞地时,这是非常普遍的。 你也可以考虑不join他们的域名,特别是如果有很less的。

看看你的意见,我真的不知道你的威胁模型是什么。

你做什么将取决于你的威胁模型。 但是,域成员和任意用户通常不在域控制器上执行代码。 如果是您所关心的漏洞攻击,则打补丁是一个很好的策略,无论哪种情况,使用RODC都可以帮助限制影响,因为RODC无法更改域中的任何内容。

如果您担心用户远程运行命令或login到域控制器(这不会让他们有权在域中部署软件,而没有他们也使用某种特权升级漏洞或类似操作),您可以防止他们从小组政策登入区议会。

这些设置在适用于数据中心的GPO中,在Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment …如果这就是您要做的。

用户(和其他安全主体)绑定到域或机器,但不是两者。 你不能根据他们在AD中连接的计算机来做一些事情,例如拒绝域pipe理员权限。 但是,您可以做的是限制networking访问不是RODC的DC,并且这应该可能足够(取决于您的威胁模型),以防止来自随机用户工作站的pipe理操作。 如果你想阻止用户使用RODC作为支点(是你想做什么?),我想你可以拒绝所有的login权限,但这会使pipe理相当困难 – 相反,我build议只允许RODC和其他DC之间的防​​火墙上的DS复制端口。

您必须打开的端口是RODC部署文档中标识的端口; 请参阅https://technet.microsoft.com/library/dd728028%28v=ws.10%29.aspx上的 “所需通信端口”一节。 但是,唉,必须允许RPC,这就是psexec的工作原理。 这只会让你禁止像RDP这样的东西login。

为了将其整理出来并防止盗用证书使用psexec,您可以始终禁止域pipe理员通过上述可写域控制器上的GPO批量作业login。 这会稍微降低可pipe理性,但这是您可以做出的决定。 在https://technet.microsoft.com/en-us/library/dn487454.aspx上有关于此pipe理员帐户安全性的其他提示以及其他提示的非常好的文档。 使用委托访问(其中pipe理帐户通过委托而不是域pipe理员授予特定pipe理权限)可能也是您的一个select。

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

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

但是,假设某人具有pipe理员权限,他们可以从大多数计算机上为您的域做任何事情 – DC主要用于身份validation…

而且,正如托德所说,如果你不能相信吉尔,你最好在这里删除权利…

你可以禁用Powershell,你可以停止psexec,现在我看到的问题是即使你做这样的事情也会让你的pipe理变得复杂,如果他们得到“域pipe理员”的凭据,不会阻止用户做任何事情。 您可以停止RDPfunction,因此只能通过networking上的某些PC访问,但仍然不是很好的certificate,只是更难获得访问权限。

简而言之,一个域pipe理员可以做任何他想做的事情(因此域pipe理员!)。 没有办法阻止某人盗取了域pipe理员证书。 他可以推翻您所采取的任何安全措施。