Advantech WebAccess访问控制权限配置不严导致的本地提权漏洞披露
导语:2018年11月1日,趋势科技的Zero Day Initiative向研华科技报告了关于Advantech WebAccess8.3.3版本中的配置漏洞(ZDI-19-257)。截至2019年3月7日,研华尚未解决此漏洞,因此在本文中,Zero Day Initiative根据披露政策向公众披露了此漏洞。
2018年11月1日,趋势科技的Zero Day Initiative向研华科技(Advantech)报告了关于Advantech WebAccess8.3.3版本中的配置漏洞(ZDI-19-257)。截至2019年3月7日,研华尚未解决此漏洞,因此在本文中,Zero Day Initiative根据披露政策向公众披露了此漏洞。
WebAccess漏洞的背景知识
中国台湾的研华WebAccess软件是研华物联网应用平台解决方案的核心,为用户提供一个基于HTML5技术用户界面,实现跨平台、跨浏览器的数据访问体验。使用WebAccess后,用户可以建立一个信息管理平台,同步提高垂直市场管理发展的效率。研华WebAccess提供了一个基于HTML5的智能仪表板作为下一代WebAccess的人机界面。其中,小部件功能可以让系统集成商通过分析图表和图形用仪表板编辑器来创建自定义信息页面。在创建仪表板界面之后,最终用户可以通过仪表板查看器来查看数据与以及可以在电脑,Mac,平板电脑和智能手机通过任何浏览器无缝观看体验。
此漏洞允许本地攻击者升级易受攻击的Advantech WebAccess Node的安装权限,不过前提是攻击者必须首先获得在目标系统上执行低权限代码的能力,才能利用此漏洞。
具体的漏洞存在于产品安装过程中设置和修改的访问控制中,产品安装弱化了现有的对当前系统文件的访问控制限制,然后对新文件设置弱访问控制限制,攻击者可以利用此漏洞将权限升级到管理员级别。
这种漏洞并不是第一次出现在Advantech WebAccess安装中,以下是曾经发现的漏洞:
· ZDI-19-257 8.3.3
· ZDI-18-1319 8.3.1
· ZDI-18-500 8.3
· ZDI-17-713 8.2
· ZDI-16-155 8.0
对于ZDI-19-257之前的每一个漏洞中,Advantech都会报告说该漏洞会在下一版本中得到解决。但事实证明, Advantech并没有真正解决这些漏洞,具体信息请看2017年的一篇博客文章。
访问控制的安全属性
ZDI-19-257漏洞是我在DefCon 24大会上所做的关于人机接口攻击的演讲中所提出的,客观地说,它属于SCADA系统的漏洞范畴,具体到Advantech就是访问控制问题。
在SCADA系统中,供应商可能会对涉及访问控制的配置漏洞进行最大程度地防护。所以访问控制应该在服务器上运行,并且只有受信任的系统管理员才应该登录系统。这对于减少系统的攻击面是非常重要的,但是对于供应商来说,你是无法控制客户站点的配置情况,并且登录用户不是进入服务器计算机的唯一对象(服务器所做的就是打开端口并处理请求)。
通常情况下,许多SCADA服务器即会作为供应商又会作为客户站点,完成双重任务。因此,对于企业来说,他们必须在系统上运行代码,才能使访问控制漏洞显现出来。特别是对于服务器产品,DACL控件基本上是起深度防御的。但是深度防御非常重要。一个系统(或范围外的网络)通常不会因为只利用一个漏洞而受到危害,每个漏洞都会用于扩展目标上的不同攻击属性,比如持久性等。一旦代码在系统上的某个级别运行,就可以利用弱访问控制来通过系统重新启动来持久存在,或者将控制从低权限帐户提升到管理员或系统帐户。
对于实现Web服务器的产品尤其如此,因为Web服务器需要在调用者的要求下运行脚本。针对web服务器精心设计攻击是最常见的,这样代码就可以在服务器机器上运行,这就是为什么所有web服务器都试图在调用者的要求下限制代码的权限。
这就要求, SCADA软件应该在安全的网段上运行,尽可能远离互联网。但并非所有客户都会按要求在安全网段运行。此外,“安全网段”对不同的客户来说意味着不同的内容,例如,依赖于签名和黑名单的安全设置。
为什么我们自己安装的文件夹的权限配置会被视为漏洞呢?
这也就ZDI-19-257的问题所在,由于计算机系统中文件夹的所有权基本上由所有者字段和文件夹的DACL中的访问权限定义。如果你的安装程序发出的DACL表示每个人都可以完全控制你安装的文件夹,那么,一旦攻击者在计算机上运行了恶意代码,则你的文件夹就会被篡改。
ZDI-19-257的漏洞利用过程
首先,安装Advantech WebAccess 8.3.3系统会削弱对 \Windows\SysWow64
文件夹内64位可执行文件的访问控制限制,该文件夹是在64位系统上运行的32位应用程序的System32文件夹。所有这些文件的访问控制都已更改,以便IUSR帐户可以完全控制它们(包括替换整个文件的能力)。客观地讲,该帐户虽然没有FILE_WRITE或FILE_DELETE,但它确实具有WRITE_DAC访问权限,因此任何作为IUSR运行的代码都可以更改DACL,使其具有写入权限,然后覆盖文件。
在Advantech WebAccess的8.2版本中,安装程序允许所有人完全访问这些文件。正是因为如此, 8.3.3版本中才对此进行了改进。另外在8.3.5版本中,Advantech安装程序禁止处理SysWow64中文件的ACL。
现在就让我们讨论IUSR帐户吧,因为该帐户将在余下的分析中发挥重要作用。不熟悉IIS安装的人可能不太了解它。以下是Microsoft对早期版本IIS的介绍:
IUSR帐户通常称为Web匿名用户或Internet Guest帐户,如果IUSR帐户对请求的访问具有适当的NTFS权限,则IIS服务器上启用匿名身份验证时将使用这个帐户。
简而言之,这就是IIS用于模拟匿名调用者的帐户。 IUSR帐户应具有最小的权限。因此,Advantech安装使用该帐户是绝对不合适的,因为要避免修改系统文件夹内的可执行文件的帐户,或者修改任何位置的任何可执行文件。
IIS webroot中有数千个可执行文件,可以完全控制IUSR帐户,一些二进制文件还可以完全控制World帐户。
更糟糕的是,所有Advantech WebAccess二进制文件(全部以Administrator运行)都包含在\WebAccess\
节点中。并且所有这些二进制文件都安装在IUSR帐户具有完全控制权的情况下,一些二进制文件还可以完全控制World帐户。
总结
WebAccess系统强大的远程监控功能与其安全的节点是分不开的,比如工程节点(Project node),WebAccess开发平台的所有系统设置及前期开发均在此完成,当它作为Web服务器,提供用户端和监控节点间的初始化连接,当它作为资料库服务器,通过ODBC记录所有即时资料。
令人遗憾的结论是,截止发稿时,这些漏洞根本没有得到修复。我还得出一个结论,软件供应商对某些基本安全概念存在一些误解,比如访问控制的安全。你可以在Twitter上找到 @FritzSands,并跟随我了解最新的漏洞利用技术,并下载对应的安全补丁。
发表评论