拥有对 IIS Web 服务器磁盘的完全访问权限,您可以访问数据库服务器吗?

信息安全 sql服务器 视窗 iis
2021-08-16 00:59:13

这是一个理论设置:

  • 您有一个运行带有 IIS 的 Windows Server 的 Web 服务器
  • 你有一个网站在这里运行,它连接到一个数据库
  • 该网站可以在服务器启动时自动启动
  • 使用受信任的 Windows 身份验证完成数据库连接
  • 恶意方从您的 Web 服务器获取硬盘驱动器

恶意方是否有可能访问数据库?

据我所知,受信任的身份验证使用网站运行的用户。因此,该用户必须有某种自动登录。这是可以开发的区域吗?由于域控制器,是否有一些复杂性?

请不要发布诸如“是的,当然可以”或“不,它是 100% 安全的”之类的答案。我想解释这在多大程度上是安全的以及为什么。

2个回答

当 Windows 机器是 Active Directory 域的一部分时,Kerberos用于管理身份验证。使用 Kerberos,域控制器就是游戏主机:每个人都信任它,而且没有其他人信任它。这意味着当网站连接到数据库时,包含网站的机器(我们称之为“WWW”)与域控制器(“DC”)对话并使用存储在 WWW 内脏中的秘密值,让DC相信它正是那台机器,精神和身体的健全和健全:只有万维网中最特权的进程才能访问秘密值。

一旦 DC 被说服,它就会尊重 WWW 的请求,即:“给我一张票,我可以向数据库展示,证明我是用户 'SomeDomain\SomeAccount' 试图以该名称连接到数据库”。该票证是数据库服务器 (DB) 将通过与 DC 交谈来验证的加密计算的结果(“这张票证现在有效吗?”)。票证嵌入了超时并且是短暂的。

这对我们的问题意味着什么?这意味着获得 WWW 硬盘的完整副本的攻击者会了解 WWW 用于向 DC 进行身份验证的秘密值。这并没有给他任何足以直接连接到数据库的秘密。实际上,数据库只信任 DC。因此,为了真正连接到 DB,攻击者必须伪装成 WWW,即在同一网络上启动一台机器,它会利用它对 WWW 硬盘内容的了解来说服 DC 它是合法的 WWW,并获得一个让 DB 满意的连接票。此外,为了实现这一点,必须关闭真正的 WWW 机器或至少断开与网络的连接,因为如果 DC 同时看到两台机器,它们都声称是 WWW,并且知道 WWW 特定的秘密。 ,那么 DC 很可能会生气并停止与双方交谈。

简介:在您的场景中,只有在攻击者运行假机器代替真正的 Web 服务器的主动攻击的情况下,盗窃 Web 服务器完整磁盘的副本才允许恶意连接到数据库。这相当于对 Web 服务器进行管理员级别的控制(攻击者是否切换硬件实际上是无关紧要的)。要成功连接到数据库,域控制器仍必须参与。

是的,有一种方法:您只需将硬盘内容放入您控制的机器并启动它。您现在有一个可以访问数据库的进程在那里运行。

现在你操纵那个进程的内存,让它做你想做的事。您可以使用不相关管理员帐户的离线密码重置来强制访问 Windows,或者只使用直接内存访问硬件(利用 NTFS 错误的 USB 记忆棒、PCI-E 卡……)。然后,您可以切入该过程的活跃大脑并使其执行任意查询。