等保测评过程中利用漏扫工具对系统进行漏洞扫描是评估系统风险和发现系统脆弱点的有效方式,而针对发现的系统漏洞,常规的解决方案存在两种:1、安装系统补丁2、系统安全加固配置。本期文章就以“SSL Certificate Signed Using Weak Hashing Algorithm”高危系统漏洞为案例向各位小伙伴总结分享该系统漏洞的修复方案。
系统漏洞修复目标通过自建Windows系统证书(签名算法:sha256RSA)替换系统远程桌面默认的证书(sha1RSA),从而修复“SSL Certificate Signed Using Weak Hashing Algorithm”漏洞。
openssl自建windows系统证书鉴于Centos 7系统默认安装openssl工具软件,因此,登陆Centos 7系统并通过以下命令可自建Windows系统证书。
#创建CA私钥
openssl genrsa -out windows_CA.key 4096
#调用创建的私钥创建CA证书,该证书有效期8000天
openssl req -x509 -new -nodes -key windows_CA.key -sha256 -days 8000 -out windows_CA.crt -subj "/C=CN/ST=AnHui/L=Hefei/O=onme0/OU=NIC/CN=test"
#释义:C=CN指证书发行者的国家,ST=AnHui指省份,L=Hefei指城市,/O=onme0指单位组织名称,OU=NIC指单位组织的部门,CN=test指该证书用于系统的主机名,此块信息根据实际情况可自定义配置;
#调用私钥和证书合成windows系统pfx格式的证书
openssl pkcs12 -export -in windows_CA.crt -inkey windows_CA.key -out windows_CA.pfx
把自建的windows证书导入系统命令提示符中输入命令:“mmc”打开系统控制台,在控制台中添加管理单元、导入证书并赋予权限。
添加证书管理单元打开“文件”,打开“添加/删除管理单元”,如下图所示;
证书管理单元添加完毕后,查看“远程桌面”的默认证书并删除,如下图所示;系统远程桌面服务证书默认采用签名算法是:sha1RSA。
导入自建的证书并记录证书指纹信息个人(右键)–>所有任务–>导入–>本地机计算–>下一步–>浏览–>选择自建的证书–>下一步–>输入Private Key Password–>确定–>下一步–>完成–>导入成功–>证书(双击)–>即可查看到test证书;
电脑记录证书指纹信息:?44 cc b9 6c 41 4b 7e 8f 5a 8c 14 f0 08 c9 f4 23 72 fc 91 05,用于远程桌面调用该证书;
添加test证书访问权限test证书(右键)–>所有任务–>管理私钥–>添加–>输入对象名称来选择–>NETWORK SERVICE–>检查名称–>确定–>分配NETWORK SERVICE读取权限–>确定;
电脑保存系统控制台配置修改系统注册表修改系统注册表使远程桌面服务调用自建导入的证书。
在命令提示符中输电脑入以下命令即可修改系统注册表;
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v "SSLCertificateSHA1Hash" /t REG_BINARY /d 44ccb96c414b7e8f5a8c14f008c9f42372fc9105 /f
释义:添加字段SSLCertificateSHA1Hash,字段类型REG_BINARY,字段值即为证书的指纹信息;
测试验证远程桌面登陆该windows系统,查看调用证书信息,如下图所示;从调用的证书来看,该漏洞已成功修复。
另外,通过nessus漏扫工具重新对系统进行扫描同样可验证该漏洞已成功修复。
总结利用Linux系统中的openssl工具可创建适用于windows系统的证书;
通过自建windows系统证书的方案解决“SSL Certificate Signed Using Weak Hashing Algorith”系统漏洞,然而仍存在“SSL Certificate Cannot Be Trusted”和“SSL Self-Signed Certificate”系统漏洞告警。要解决该系统漏洞告警则需向数字证书颁发机构申请相关证书。
电脑