评论中讨论了是否可以将其视为漏洞。但是作者迷上了我的一则评论:
例如,可以以DLL的形式实现该功能吗,当它的API对其进行调用时,该DLL将检查调用程序的数字签名吗?
事实是,在此之前,我研究了几种以相同方式依赖数字签名验证的程序。而且这张支票很容易解决。
文件的数字签名仅与可执行文件本身匹配,但是正在运行的程序不仅仅是可执行文件。有几种方法可以在不更改可执行文件的情况下影响程序的运行:您可以替换已加载的库,也可以将代码直接注入内存。
我看了一下作者的个人资料:“作品:Doctor Web”。但是,如果您要查看该公司的产品是否使用作者所说的支票怎么办?我决定查找,但破坏者发现了一个漏洞,该漏洞使您可以向Windows用户Dr.Web Security Space提升特权。
情报服务
我不了解Doctor Web产品,因此我选择了可以在网站上下载的第一个产品-Windows的Dr.Web Security Space 12。在默认设置下,该产品每半小时检查一次更新。并且在更新机制中发现了一个漏洞。
下面,我提供了一个操作视频,其中介绍了视频中发生的时间。也将描述该漏洞的确切含义。
操作视频
该演示在Windows 10 x64上以没有管理员权限的用户身份运行。
0:00-0:12通过Windows控制台显示当前用户不是管理员
0:12-0:24显示Dr.Web安全空间的安装版本
0:24-0:29 drweb_eop_upd_dll.dll文件位于桌面上的文件夹中(源代码和文件都附在票证上)
0:29-0:34我表明在C:\ ProgramData \ Doctor Web \ Updater \ etc
文件夹中有3个文件0:34-0:47我将drweb_eop_upd_dll.dll库复制到了桌面和一个副本,我称为version.dll,另一个-cryptui.dll
0:47-0:56我将文件C:\ Program Files \ Common Files \ Doctor Web \ Updater \ drwupsrv.exe复制到DLL旁边的桌面文件夹中...
0:56-1:00运行复制的文件
桌面上文件夹中的drwupsrv.exe可执行文件将加载附近的version.dll。该库创建文件C:\ ProgramData \ Doctor Web \ Updater \ etc \ drwupsrv.xml.new。用户有权在C:\ ProgramData文件夹中创建文件,并具有深入的权限,因此这是合法操作。如果尝试手动创建此类文件,则Dr.Web的安全机制很可能会阻止此类操作。但是在操作中,该文件是代表drwupsrv.exe创建的,它可能绕过内部检查并创建了文件。实际上,这是本文开头讨论的非常签名验证的绕过。
1:00-1:22 am演示了创建的文件及其内容。在一般意义上,该文件具有与文件C:\ ProgramData \ Doctor Web \ Updater \ etc \ drwupsrv.xml相同的内容,但是所有路径都指向桌面上的文件夹(C:\ Users \ User \ Desktop \ dwtest)
1:22-2 :00没有任何反应(在此阶段,我正在等待软件更新过程,默认情况下每半小时发生一次,并且可以在日志中找到预期的时间)
2:00-2:14显然,使用已创建的配置文件,更新程序会看到C:\ Users \ User \ Desktop \ dwtest文件夹中没有Dr.Web软件文件,它开始将软件文件复制到那里。
复制的文件包括dwservice.exe文件,该文件在更新时以NT AUTHORITY \ SYSTEM用户身份启动。此文件将加载cryptui.dll库,该库位于C:\ Users \ User \ Desktop \ dwtest文件夹中。库代码只是启动交互式控制台,该控制台在屏幕上可见。使用whoami命令来确保获得系统权限。
结果
该漏洞报告已发送到Doctor Web,并且看来开发人员已修复了所有问题。
时间轴:
2020年5月15日-与技术支持联系,要求提供安全联系。
2020年5月20日-我收到答复,可以在此上诉中提交报告
。05/20/2020-我发送报告
06/14/2020-我收到答复,指出该漏洞已针对版本12进行了修复。等待移植版本
11。07/07/2020-开发人员确认已发布修补程序。
本文为英文。