关于CVE-2020-1464的事情
Microsoft的Authenticode数字签名软件包中的一个漏洞。Authenticode是一种代码签名技术,旨在识别软件发行者,同时还禁止篡改软件包。Authenticode技术的运行方式与数字证书非常相似-“软件发布者在驱动程序或驱动程序包上签名,并用数字证书进行标记,该数字证书可以验证发布者的身份,并且还为代码提供验证数字证书的能力,主要是通过防止安装经过更改或未正确签名的软件包来进行的。
此漏洞与Microsoft允许在不使Authenticode签名无效的情况下将内容附加到Windows MSI包的末尾有关。攻击者利用这种行为来添加自己的恶意代码,例如可以直接执行的JAR文件。由于许多操作系统和安全产品都依靠签名来决定是否信任文件,因此,攻击者插入的恶意代码将是可信任的,因为它是已签名程序包的一部分。
- 微软获知问题但734天才发布补丁
- 已知该漏洞在野外被利用
- 利用漏洞可以安装任意恶意代码
- 影响Microsoft Windows所有主要版本
受影响的系统版本
基本覆盖全部版本
- Windows 7
- Windows 8.1
- Windows 10
- Windows Server 2008
- Windows Server 2012
- Windows Server 2016
- Windows Server 2019
可以在此处获得完整系统列表
(https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1464)
漏洞利用
漏洞原理为Windows在验证.MSI文件的数字签名时未对MSI文件的附加数据进校验
大致利用过程如下:
通过创建恶意文件jar,这里需要独立说为什么建议JAR文件,由于jar文件运行中通过单个请求即可完成整个应用程序部署,且JAR文件格式基于ZIP来存储不同组件和资源,并通过目录记录,方便文件归档时将添加新文件在末尾,此外在Windows系统上运行JAR文件时会默认文件关联,便自动运行java -jar,相对绑定程序就一起运行了.在windows更方便操作触发.运行简单命令即可完成此类操作.此类操作可以轻而易举伪造各种知名软件.当然这里我只演示JAR,其实发挥空间很大看各位大佬们的发挥如图所示
1.准备一个正常签名MSI,此操作系统自寻
2.准备自己的恶意代码
3.通过常见命令将文件合并在一起
轻松伪造任意知名软件签名,针对现在补丁刚出,还是建议各位打好补丁.经过测试特别是目前部分防护软件是还没更新此类防护策略.
待运行后即可启动后门
最近各位师傅们发布的各种JAR工具这么多,利用此漏洞做应该能做很多事情.^_^