脸丢得有点大哈,又一个做安全的被挖到安全漏洞。。。
A.介绍
Avast 安全浏览器(ASB),如果对这个名字陌生的话,理解为欧洲版360安全浏览器就行。因为无论企业背景还是该浏览器的特征,都与360有极大的相似之处。
这一款号称安全的浏览器,内置了安全和隐私防护功能,由欧洲著名的反病毒厂商Avast开发,在其官网免费提供下载。。
B.漏洞简介
简单来说,这个漏洞出在ASB拥有特权权限的更新进程上,这个进程会对一个文件实施权限操作,结果导致更改其权限为“完全控制”,也就是说,所有用户都可以访问它。
因而,这种操作可以通过硬链接的方式重定向到任意的文件。通过(硬链接指向恶意文件)的操作,有特权的更新进程,在对相应文件实施上述操作时,目标文件就会被替换成硬链接指向的文件,最终导致重新定义它的权限。(看不懂没关系,下面有详细描述)
C.硬链接
为了更好地明了技术细节,先来了解了解“硬链接”。
硬链接 “HardLinks”
根据微软的文档,Windows系统的硬链接是一种针对文件的特殊快捷方式,只不过这种快捷方式的实现和一般的快捷方式不一样,是NTFS文件系统特有的属性之一。
Windows自带了创建硬连接的命令:mklink.exe,利用这个命令,可以给指定的文件创建硬连接:
下面的命令将在link.txt和source.txt之间建立硬连接关系
C:\Users\admin>mklink /h link.txt target.txt
这个例子:link.txt本是一个不存在的文件,但是当执行完mklink命令以后,link.txt文件就被创建了。其实,link.txt是一个虚假的文件,它是在文件系统层面上对target.txt文件的一个映射,而link.txt的内容是不占硬盘空间的。
注意:
当硬连接建立以后,硬连接双方任何一个对象被修改,都会造成对应的连接对象被修改。例如上面的例子:如果修改了link.txt,那么target.txt文件也会同步被修改,反之亦然。
D.漏洞利用
首先,用Sysinternals套件中的AccessEnum工具来对ASB的目录做一次检查,目标是找到授权过度的文件,如下图所示:
图1:检查到Update.inif文件授权过度
正如图1所示,有一个过度授权的文件Update.ini,位于C:\ProgramData\AVAST SOFTWARE\Browser\Update。同时,也能注意到,任意用户(everyone)对这个文件可能都拥有完全控制权。
基于上述的目录,祭上Sysinternals套件中的ProcMon,可以让我们观察到某个特权进程对Update.ini所有的操作。
图2:探查到AvastBrowserUpdate.exe 对Update.ini文件的干预
如图2所示,可以观察到AvastBrowserUpdate.exe 进程对Update.ini文件做了某些操作。
下一步,替换Update.ini,用一个指向“C:\Program Files\Avast Software\Browser\Update\1.5.245.0\psmachine.dll”的硬链接顶上,随后启动更新进程。很快, psmachine.dll 的权限就会被重置成 任意用户“完全控制”(图3)
图3:Update.ini文件之前和之后的权限。
最后,为了完成权限提升的整个步骤,上述的DLL要换成那种弹NT AUTHORITY\SYSTEM权限 shell的DLL文件
图4:弹出被赋予特权用户权限的shell
原作:Tempest Security
原文:https://sidechannel.tempestsi.com/vulnerability-in-avast-secure-browser-enables-escalation-of-privileges-on-windows-eb770d196c45
HackerHub发布 | 转载请注明出处
我在看,你呢?