【问题标题】:IIS and ASP.NET impersonationIIS 和 ASP.NET 模拟
【发布时间】:2018-10-25 09:28:13
【问题描述】:

如果用户访问启用.net Web 应用程序,用户会面临什么风险?

ASP.NET 模拟是什么模拟级别?

这是impersonation-levels的文档。

我可以创建一个网站,然后引诱一个系统管理员打开它并以他的名义做一些坏事(比如将我添加到本地系统管理员中。我可以部署 Web 应用程序,但我不是行政)?这种模仿的界限是什么?在文档中没有找到任何准确的描述。

【问题讨论】:

    标签: asp.net .net iis


    【解决方案1】:

    首先您需要了解什么是 ASP.NET Impersonation。除了给定的 msdn 定义外,在外行语言中,ASP.Net 模拟是能够使用客户端 asp.net 应用程序在机器上获取 Active Directory 登录用户的用户信息。

    正如您所提到的,impersonation-levels 有不同的类型。但在此之前,您需要了解 ASP.Net 是托管环境。它存在于 IIS 应用程序池的范围内。因此,任何应用程序的能力都仅限于托管环境中的 Web 应用程序可以在服务器上执行的操作。

    要直接回答您的疑虑,请考虑以下几点:

    • 如果您可以托管具有 ASP.impersonation 的 IIS 应用程序,您应该是该计算机的管理员(非管理员用户甚至无法打开 IIS)

    • 任何 IIS 应用程序都无法执行管理任务,例如创建、删除用户、更改用户权限,而无需调用任何本机应用程序来操作活动目录(需要配置并且需要做很多工作,非管理员不能想想)。这几乎是不可能的,即使使用某些第 3 方非托管代码以某种方式可能也是不可能的,那么非管理员用户也无法在服务器上安装这些工具/sdk,而无需直接访问服务器。

    • ASP.Net 模拟主要针对 Active Directory 用户,Active Directory 存在于 VPN 或办公场所的安全管理环境中。您需要成为活动目录用户才能访问模拟。即使您以某种方式做到了这一点(没有管理员服务器访问权限是不可能的),那么审核/系统日志/网络日志也会发现谁是内部罪魁祸首,所以这在组织内部意味着什么(除了被解雇)我留给你.

    您仍然认为asp.net 冒充不安全,您可以提出问题。 :)

    cmets 更新


    您上面获得的模拟级别链接适用于完全信任运行的桌面/Windows 应用程序。 ASP.net 应用程序模拟只是一种通过一些定义的属性获取 Active Directory 用户身份的方法,它主要用于身份验证和授权。我再次重申,ASP.net 是应用程序池中的托管应用程序,它只能执行授权给您托管应用程序的帐户的操作,并且如果不调用,则无法执行创建或修改 Active Directory 用户访问等本地/管理操作该机器上已经安装了其他一些已受信任的 SDK。

    所以总结一下,在您授予目录访问 Web 应用程序的位置上创建文件或删除文件等操作是可能的(如果在部署用于托管的用户未登录时存在权限,则也可以在网络上)但删除服务器上的所有内容如果没有已安装的受信任非托管软件的帮助,则无法通过登录 ASP.net webapp 的管理员模拟来执行 AD 用户创建/修改等管理任务。

    【讨论】:

    • Tnx 非常感谢您的回答,这里有一些后续问题 :) - asp.net 模拟仅限于服务器是否正确? asp模拟级别是否类似于SecurityImpersonation(服务器可以在本地系统上模拟客户端的安全上下文。)?不能以当前用户的名义访问网络文件共享,对吧? - 不能调用本机代码(即 C# 中的 unsafe 关键字)?最好的问候
    • 更新的答案,我还必须思考并尝试自己确保这是不可能的。呵呵:)
    【解决方案2】:

    昨天我和我的系统管理员聊了聊。如果用户通过 kerberos 身份验证,则 Web 应用程序可能会代表用户访问其他服务器上的资源(委托)。 Kerberos 约束委派白名单一起使用。

    如果我的应用程序需要使用登录用户的凭据读取文件共享上的文件,则安全管理员必须添加一个条目,让我的应用程序(应用程序池的身份)以登录用户的名称访问此文件服务器在用户中。我无法创建一个恶意应用程序来读取我老板的所有电子邮件,因为他正在访问我的 web 应用程序。

    https://blogs.technet.microsoft.com/pie/2017/06/30/credential-theft-made-easy-with-kerberos-delegation/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-09
      • 2011-02-28
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多