Windowsserver2012R2服务器出现RC4套件漏洞缺陷的处理⽅案
漏洞成因
RC4这套加密⽅法是在20世纪末期被研究出来并在2000年左右被⼤量的⽹站所使⽤,但是在02年出现了漏洞且持续了13年才被⼀个外国⼤佬所发现。
成因总结来说:就是加密⽅式太⽼了,长时间更换⽹站加密⽅式导致了攻击者可以进⾏中间⼈攻击,能够有效地进⾏⼤量⽤户的嗅探监听和会话劫持。
漏洞影响
攻击者可以在特定环境下只通过嗅探监听就可以还原采⽤RC4保护的加密信息中的纯⽂本,导致账户、密码、信⽤卡信息等重要敏感信息暴露,并且可以通过中间⼈对⽤户进⾏会话劫持同时可以获取到⽹站服务器证书信息。
漏洞发现
总结下来,⽹上的⽅法
1. 在线检测
2. nmap
3. openssl
4. testssl.sh
5. curl
1、在线检测
直接在对应的在线检测⽹站中输⼊您要检测的URL,此类的⽹站⽐如www.ssllabs/ssltest/analyze.html
2、nmap
nmap -sV -p 443 --script=ssl-enum-ciphers HOST(⽬标IP或域名)
3、openssl
openssl s_client -connect HOST(⽬标IP或域名) -cipher RC4 [-servername HOST(⽬标IP或域名)]
执⾏后如果可以获取到服务器的证书即说明RC4套件存在,漏洞存在。
使⽤此⽅法需要注意,本地客户端的openssl⼯具版本不能太⾼,因为⾼版本不包含RC4这种有漏洞的密码套件,测试需要⼀个低版本的openssl⼯具。(执⾏openssl ciphers 查看是否有RC4套件,如果有再进⾏以上命令的测试)
如果⽬标地址⽆法通过IP访问(只能通过域名才能正常访问),那么上⾯的命令就需要加上后⾯括号⾥的servername参数,将域名加上(这⼀点是个坑,我也是通过wireshake 抓包⽐较出来的。)
4、testssl.sh
使⽤testssl.sh⼯具进⾏测试(其实底层还是调⽤的openssl)
./testssl.sh -4 HOST(⽬标IP或域名)
5、curl
使⽤curl⼯具指定RC4去请求⽬标,如果正常返回页⾯即表⽰漏洞存在
curl URL --ciphers RC4 [--tlsv1;tlsv1.1;tls1.2;sslv2;sslv3]
漏洞修复
对于Windows server 2012 R2服务器,需要修改注册表键值,进⾏禁⽤
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
嫌⿇烦的话,直接创建⼀个txt⽂件,⽐如,保存后修改后缀为reg,双击执⾏即可修改好注册表。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
server2012r2安装密钥激活
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
对于Windows 2012 R2之前的Windows版本,需要安装个补丁,具体操作可以参考:
对于windows server 2012 R2搭建的ADFS服务器,必须更改⽣产环境中的所有ADFS服务器。如果要使其⽣效,需要重新启动服务器。可以参考⼀下⽂章: