Ietf X.509证书MD5签名冲突漏洞(CVE-2004-2761)[原理扫描]--漏洞修复

一.漏洞信息介绍

CVE编号:CVE-2004-2761
漏洞描述:临时解决方法:* 不要使用MD2、MD4、MD5签名数字证书,使用SHA-1、SHA-256、SHA-384、SHA-512等算法。目前厂商已经提供补丁或者升级程序,建议使用此软件的用户随时关注厂商的主页以获取最新版本: http://www.ietf.org/
加固建议:X.509是由国际电信联盟(ITU-T)制定的数字证书标准。 ;MD5哈希算法中可能存在冲突,导致用这种算法所签名的X.509数字证书并不安全。攻击者可以生成内容不同但数字签名与源证书相同的额外数字证书,如果WEB浏览器信任了伪造的证书的话,攻击者就可以扮演称为可信任的站点,包括用HTTPS协议加密的电子商务站点。;

二.修复前的文件准备

将makecert.exe和pvk2pfx.exe 下载到自己电脑的某个目录下(一般安装vs 就会自带这两个工具,位置可参考链接链接: 驱动程序签名工具
本人免费分享给大家这两个文件,免积分下载makecert.exe和pvk2pfx.exe
这两个文件放在你方便使用的地方即可,我放在
C:\Users\Administrator\Desktop\修复弱哈希算法签名的SSL证书(CVE-2004-2761)漏洞
这个目录下,您可以随便放,不影响后面步骤执行;

三.修复步骤

1.证书生成

win+r 快捷键调出 运行 ,输入cmd,回车
在这里插入图片描述
在cmd窗口中,切换到放makecert.exe和pvk2pfx.exe文件的目录,
这两个文件放在我们本地即可,不用上传到目标服务器上。
执行目录切换命令:
cd C:\Users\Administrator\Desktop\修复弱哈希算法签名的SSL证书(CVE-2004-2761)漏洞
在这里插入图片描述
如果您的文件不在c盘在其他盘,可先执行
盘符:
切换到对应磁盘后再执行cd命令
例,切换到e盘,则执行e: 记得是e 然后是冒号,e:
在这里插入图片描述

在放makecert.exe文件的目录执行以下命令进行秘钥文件生成

makecert -r -pe -n "CN=泰岳" -b 04/14/2024 -e 01/01/2055 -sky exchange -sv UltraPowerPublicKey.pvk UltraPowerPublicKey.cer -a sha256 -len 2048
参数说明
-r  创建自签署证书。
-pe 将所生成的私钥标记为可导出。 这样可将私钥包括在证书中。
-n name 指定主题的证书名称。 此名称必须符合 X.500 标准。 最简单的方法是在双引号中指定此名称,并加上前缀 CN=;例如,-n "CN=myName"。
-b mm/dd/yyyy 指定有效期的开始时间。 当前日期的默认值。
-e mm/dd/yyyy 指定有效期的结束时间。 默认为 12/31/2039 11:59:59 GMT。
-sky keytype  指定主题密钥类型,必须是下列之一:signature(其中指出密钥用于数字签名),exchange(其中指出密钥用于密钥加密和密钥交换),或一个整数,表示提供程序类型。 默认情况下,可传入1 表示交换密钥,或2 表示签名密钥。
-sv pvkFile   指定主题的 .pvk 私钥文件。 如果该文件不存在,系统将创建一个。
-a 算法   指定签名算法。 algorithm 必须是 md5、sha1(默认值)、sha256、sha384 或 sha512。
-len 数字 指定生成的密钥长度(以位为单位)。

输入私钥密码,为满足复杂度要求设置为8位以上数字、字母、特殊字符组合。
这有一个密码生成工具,供大家学习使用链接: 随机密码生成;
ps:密码最好不要有 # 字符,在powershell中会被识别为注释。
在这里插入图片描述在这里插入图片描述
我在上面输入的密码是 xN#WVYkXH
在这里插入图片描述
执行完命令后,返回结果Succeeded 就说明已成功创建
执行完命令后会得到两个文件
在这里插入图片描述
再使用pvk2pfx命令创建pfx文件:
输入以下命令,其中 x
N#WVYkXH 为刚输入的秘钥,您再使用时请根据实际信息进行替换掉。
输入命令后回车。界面无提示表示成功。

pvk2pfx -pvk UltraPowerPublicKey.pvk -spc UltraPowerPublicKey.cer -pfx UltraPowerPublicKey.pfx -pi  x*N#WVYkXH -f

以上命令从UltraPowerPublicKey.pvk 和 UltraPowerPublicKey.cer 生成 .pfx 文件 UltraPowerPublicKey.pfx。 命令为 .pvk 文件提供密码 x*N#WVYkXH,该文件成为 .pfx 文件 UltraPowerPublicKey.pfx 的密码。 如果有名为 UltraPowerPublicKey.pfx 的现有文件, 则 -f 开关将 Pvk2Pfx 工具配置为将现有文件替换为新文件。使用方法可参考官网链接: Pvk2Pfx
在这里插入图片描述

得到一个新文件
在这里插入图片描述
ps: cer只有公钥,pfx包含公钥和私钥。一会儿咱们要导入到服务器的就是这个最后生成的pfx 文件,大家别整错了。

2.传证书到服务器

登陆到要修复漏洞的win服务器上,并上传刚刚生成的3个文件;
上传的目录随意,方便查找即可。
在这里插入图片描述

3.导入证书

win+r 快捷键调出 运行 ,输入mmc,回车 打开控制台
在这里插入图片描述在这里插入图片描述
如下图。打开控制台的"文件",然后点击"添加/删除管理单元",然后弹出"添加/删除管理单元"界面。
在这里插入图片描述

找到“证书”按钮,进行添加
在这里插入图片描述
“证书管理单元"界面选择"计算机账户”,然后"下一步"
在这里插入图片描述
选择本地计算机,并继续。
在这里插入图片描述
点击确定
在这里插入图片描述
点击‘确定’后,如下图,咱们离成功又近了一步,加油,接着按照下面的步骤操作。
在这里插入图片描述

按照下图的顺序,点开导入
在这里插入图片描述
继续下一步
在这里插入图片描述
按照下图的顺序,正确导入上传的pfx文件;
再次请您确认导入正确的文件,别整错了
在这里插入图片描述

在这里插入图片描述
输入在创建pfx文件时的密码,我的是 x*N#WVYkXH
您的密码如果和我的不一致,请您替换为实际您设置的。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

已成功导入
在这里插入图片描述

4.给证书授权

在这一步如果您没有“管理私钥”这个按钮,请确认您导入的证书是否为pfx 文件,因为我们前面一共生成了3个文件,这是最后生成的,大家不要整错了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
win+r 快捷键调出 运行 ,输入regedit,回车 “注册表编辑器”
在这里插入图片描述在这里插入图片描述
打开路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
创建SSLCertificateSHA1Hash ,然后选择二进制值。
再次右键点击创建好的SSLCertificateSHA1Hash,选择修改二进制值数据,把上面UltraPowerPublicKey.pfx证书里的指纹值输入进去就可以了。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5efecc82a276e40f2682147ba89766311915b16a在这里插入图片描述
如果您要是嫌麻烦,可参考以下使用代码添加的方式:
切记要使用 管理员身份运行,要不然会报错,无权添加
在这里插入图片描述
执行以下命令添加即可,如果是你自己的话,请替换掉我的指纹信息(5efecc82a276e40f2682147ba89766311915b16a),使用您自己的。

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v "SSLCertificateSHA1Hash" /t REG_BINARY /d 5efecc82a276e40f2682147ba89766311915b16a /f 

在这里插入图片描述
亲测 SSLCertificateSHA1Hash 这个二进制值不会因为 你远程连接而消失,也不会因为重启而消失;如果消失了可能您设置的指纹信息不对,请仔细核查。

验证
再次远程时使用的是新证书。

回退:
只需删除 SSLCertificateSHA1Hash 这个二进制数组即可。

参考链接:
弱哈希算法签名的SSL证书(CVE-2004-2761)漏洞修复
windows的远程桌面服务RDS存在弱加密证书的漏洞处理
Makecert.exe(证书创建工具)
Pvk2Pfx开关和参数

  • 13
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值