研究人员在Black Hat Asia 2021大会上分享了针对微软IIS和SQL服务器的新攻击面。
Unit 42在Black Hat Asia 2021上分享了关于攻击微软IIS和SQL服务器的新攻击面。在演讲中,研究人员介绍了一种在IIS和SQL服务器上的远程数据库通过SQL注入等场景来执行SQL查询的新技术。攻击者利用该技术和微软Jet数据库引擎的漏洞可以远程攻击IIS和SQL服务器来获取system权限。
攻击面
研究人员发现的新的攻击面是由微软Jet数据库引擎支持的远程数据库访问引起的,包括Jet Red数据库引擎和访问连接引擎ACE。该特征被攻击者误用或滥用就可以在远程攻击者控制的服务器上对完全控制的数据库文件执行SQL查询。一旦远程合法数据库文件被伪造的数据库文件替换,再执行SQL查询就会打破微软Jet/ACE的代码预制条件和假设,引发Jet组件安全漏洞。
典型的攻击场景是SQL注入和ad hoc。在这两个攻击场景中,攻击者可以在IIS和SQL服务器上伪造的数据库上执行任意SQL查询。引发的Jet漏洞会影响IIS和SQL服务器。具体来说,用户在表上执行SQL查询时可以在Jet的表前加上数据库路径来分配一个远程数据库,如图1所示:
图 1. Access 和SQL服务器中的远程数据库访问SQL
在微软Jet和ACE中,调用CreateFile会打开IIS和SQL服务器中的远程数据库文件。远程数据库的输入路径是UNC路径,所以SMB和WebDAV会被用来打开远程数据库,如图2所示:
图 2. IIS和SQL服务器中的隐藏特征
SQL注入和ad hoc是2个潜在的攻击场景。类似地,IIS和SQL服务器只是2个潜在的受害者。Windows中所有支持Jet和ACE的组件都可能受到该漏洞的影响,因为组件允许用户在可控制的数据库上执行任意查询。
IIS和SQL服务器漏洞
远程数据库访问是的攻击者可以用伪造的数据库来替换合法的数据库文件。研究人员分析发现,替换数据库是找出微软Jet和ACE中漏洞的关键。研究人员通过模糊策略在微软Jet和ACE中发现了约100个安全漏洞,如图3所示。大多数漏洞可以用来攻击IIS和SQL服务器。
图 3. 约100个Jet漏洞
研究人员证明了数据库文件的一字节修改可以引发Jet安全漏洞,如图4所示:
图 4. 数据库一字节修改引发安全漏洞
微软补丁
微软对该漏洞分配了CVE编号CVE-2021-28455。2021年5月,微软发布了该漏洞的安全补丁,补丁为用户提供了禁用Jet组件和ACE组件的远程数据库访问选项。补丁不仅仅是修复单个JET漏洞,而且还缓解了整个使用Jet组件的应用的攻击面。
详细修复步骤参见:https://unit42.paloaltonetworks.com/iis-and-sql-server/
结论
IIS和SQL服务器是微软生态系统中的基础组件,广泛应用于各种生产系统和服务中。微软Jet数据库引擎已经有超过20年的历史,大多数的组件被发现存在安全漏洞,并且容易被利用。远程数据库访问特征连接了Jet漏洞和IIS、SQL服务器组件。攻击者可以利用这一特征来攻击IIS和SQL服务器,并通过SQL注入来远程获取system权限。
本文翻译自:https://unit42.paloaltonetworks.com/iis-and-sql-server/