一、概述

SSL/TLS协议信息泄露漏洞(CVE-2016-2183)漏洞说明:

SSL全称是Secure Sockets Layer,安全套接字层,它是由网景公司(Netscape)设计的主要用于Web的安全传输协议,目的是为网络通信提供机密性、认证性及数据完整性保障。如今,SSL已经成为互联网保密通信的工业标准。SSL最初的几个版本(SSL 1.0、SSL2.0、SSL 3.0)由网景公司设计和维护,从3.1版本开始,SSL协议由因特网工程任务小组(IETF)正式接管,并更名为TLS(Transport Layer Security),发展至今已有TLS 1.0、TLS1.1、TLS1.2,TLS1.3这几个版本。TLS, SSH, IPSec协商及其他产品中使用的DES及Triple DES密码存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击,获取纯文本数据。

风险级别:

该漏洞又称为SWEET32(https://sweet32.info)是对较旧的分组密码算法的攻击,它使用64位的块大小,缓解SWEET32攻击OpenSSL 1.0.1和OpenSSL 1.0.2中基于DES密码套件从“高”密码字符串组移至“中”;但OpenSSL 1.1.0发布时自带这些,默认情况下禁用密码套件。该问题在新的openssl版本中已解决。

远程主机支持使用提供中等强度加密的SSL密码。Nessus将中等强度视为使用密钥长度至少为64位且小于112位的任何加密,或使用3DES加密套件的任何加密。请注意,如果攻击者位于同一物理网络上,那么绕过中等强度加密就容易得多。对于windows,该漏洞影响了很多的服务,包括常见的3389,80,443,25等。

【升级建议】

OpenSSL 1.0.2用户应升级到1.0.2i
OpenSSL 1.0.1用户应升级到1.0.1u

二、升级处理

1、官方地址:https://www.openssl.org/source/;最新的稳定版本是1.1.1系列,且是TLS版本;之前旧版本(包括1.1.0, 1.0.2, 1.0.0 and 0.9.8)不在支持维护;

下载地址:https://www.openssl.org/source/openssl-1.1.1i.tar.gz

2、或者linux上直接运行:
openssl version -a //确认当前版本,备份证书文件和秘钥文件
mv /usr/bin/openssl /usr/bin/openssl.old /备份执行文件
mv /usr/include/openssl /usr/include/openssl.old
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.1.1h.tar.gz
tar zxvf openssl-1.1.1h.tar.gz
cd ./openssl-1.1.1h/
./config --prefix=/opt/openssl --openssldir=/usr/local/ssl //预编译,到指定安装路径,生成Makefile文件,-t参数可测试编译情况,–prefix:指定安装目录;–openssldir:指定openssl配置文件路径;加shared还可指定创建动态链接库
make //编译,如果编译失败,可执行./make clean,或者编译前用./make test测试编译情况而不直接编译
make install //编译成功后安装

注意:编译失败可能需要更新zlib(http://www.zlib.net/)和gcc,注意提示
gcc -v //确定当前gcc版本,按需升级
cat /usr/lib64/pkgconfig/zlib.pc //确定当前zlib版本,按需升级
或尝试yum upgrade zlib zlib-devel gcc* -y //update升级包保留旧版本,upgrade升级后删除旧版本,如果不跟具体包名,update级所有包同时也升级软件和系统内核(升级环境可能会导致生成事故),upgrade 升级后,只升级所有包,不升级软件和系统内核。这不同于ubuntu环境,update 是同步 /etc/apt/sources.list 和 /etc/apt/
sources.list.d 中列出的源的索引,以变upgrade时获取到最新的软件包进行安装,在执行 upgrade 之前要执行 update才能从最新软件包更新。

3、替换原有旧openssl文件:
1)/usr/local/bin:
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
2)配置文件/usr/local/ssl:备份
3)库文件检查:/usr/local/lib64 //根据实际的环境库文件位置配置,有的为usr/local/ssl/lib,注意具体位置。如不放心,整个库文件夹备份。
4)验证:ldconfig -v|grep ssl //确定链接库
5)版本验证:openssl version
如果执出现openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory错误,即缺少相关库依赖,请检查以下库文件,执行:
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ldconfig -v|grep ssl //确定链接库正常

echo “/usr/local/lib64” >> /etc/ld.so.conf //将新的库文件地址写入记录so库的配置文件,更新动态链接库数据

再次验证:openssl version

三、附录1:关于ssl算法涉及的漏洞

1)获取当前查询OpenSSH应用的算法:
SSH 提供了一些可用的加密算法。可以在 */etc/ssh/ssh_config or ~/.ssh/config * 文件中看到

默认的,SSH 会使用 3des 算法,但des会被某漏洞利用,TLS, SSH, IPSec协商及其他产品中使用的DES及Triple DES密码存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击,获取纯文本数据。如果想从ssh移除某种算法,删掉即可。

[root@bigdata ]# sshd -T |grep ciphers //命令方式:输出如下
ciphers aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc

2)查看linux服务器上支持的ssh对称秘钥:

ssh -Q cipher //输出如下

3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com

3)查看支持身份验证加密的对称秘钥

ssh -Q cipher-auth //输出如下
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com

4)查看支持的消息完整性秘钥

ssh -Q mac //输出如下

hmac-sha1
hmac-sha1-96
hmac-sha2-256
hmac-sha2-512
hmac-md5
hmac-md5-96
umac-64@openssh.com
umac-128@openssh.com
hmac-sha1-etm@openssh.com
hmac-sha1-96-etm@openssh.com
hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
hmac-md5-etm@openssh.com
hmac-md5-96-etm@openssh.com
umac-64-etm@openssh.com
umac-128-etm@openssh.com

  1. 指定秘钥算法进行ssh连接

用法:ssh -oCiphers=aes128-ctr server_IP

示例验证ssh-rsa加密算法的ssh连接:ssh -oHostKeyAlgorithms=-ssh-rsa user@host

如果主机密钥验证失败,并且没有其他受支持的主机密钥类型可用,则该主机上的服务器ssh软件应升级。


6)Powershell集成OPENSSL客户端

(1)下载OPENSSL,地址为https://sourceforge.net/projects/sshwindows/?source=typ_redirect
(2)解压缩后,双击安装,只需安装客户端;

(3)之后配置环境变量:C:\Program Files (x86)\OpenSSH\bin"加入到PATH下;

(4)验证:

(5)TLS证书生成:

openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr


(6)测试:

四、附录2:ssh参数回顾

1)使用 -l 选项参数,指定用非当前用户登录,等同与ssh 指定用户@sshd_IP

2)用 *-p 选项,后面在加上 SSH 端口号,指定sshd端口

3) -v 选项参数,使用调试模式验证建立的 SSH 连接情况

4)指定ssh连接的源地址,适用于客户端有多于两个以上的 IP 地址,难分清楚默认使用哪一个 IP 连接到 SSH 服务器,使用 -b 选项来指定一个IP 地址。这个 IP 将会被使用做建立连接的源地址。

示例:$ ssh -b 192.168.10.12 -l blue 192.168.10.205

5)使用 -F 选项指定要使用的ssh配置文件

默认情况下,ssh 会使用位于 /etc/ssh/ssh_config 的配置文件。这个配置文件作用于系统的所有用户。但你想要为特定的用户指定特殊的设置的话,可以把配置放入 ~/.ssh/config 文件中。如果此文件不存在,可以手工创建一个。

示例:比如创建my_ssh_config文件

Host 192.168.10.*
ForwardX11 yes
PasswordAuthentication yes
ConnectTimeout 10
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
Protocol 2
HashKnownHosts yes

$ ssh -F /~/.ssh/my_ssh_config 192.168.10.205

6)使用-X参数来使用 SSH X11 Forwarding

某些时候,想把服务端的 X11 应用程序显示到客户端计算机上,SSH 提供了 -X 选项。但要启用这功能,我们需要在服务器端,在 /etc/ssh/ssh_config 文件中的行设置成 ForwardX11 yes 或者 X11Forwad yes,以启用 X11 Forwarding,重启 SSH 服务程序。

然后在客户端,输入 ssh -X user@host:

$ ssh -X blue@192.168.10.205

登陆后输入:$ echo $DISPLAY //检查,可以看到向如下类似输出

localhost:10:0

随后就可以运行应用了,仅仅只能输入应用程序的命令。比如想运行 xclock 程序,输入:

$ xclock //检查xclock 确实是运行在远端系统的,但它会在你的本地系统里显示了。

五、附录3:对应windows漏洞处理:

1)打开windows的Internet属性,找到高级–安全:取沟TLS1.0和1.1,只保留1.2;1.3也不勾选。

2)打开组策略gpedit.msc,禁用弱密码算法即可,配置如下:

#默认如下,没有IDEA
TLS_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_NULL_SHA256、TLS_RSA_WITH_NULL_SHA、TLS_PSK_WITH_AES_256_GCM_SHA384、TLS_PSK_WITH_AES_128_GCM_SHA256、TLS_PSK_WITH_AES_256_CBC_SHA384、TLS_PSK_WITH_AES_128_CBC_SHA256、TLS_PSK_WITH_NULL_SHA384、TLS_PSK_WITH_NULL_SHA256

对应英文界面:

默认启用后的密码算法如下:

TLS_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA(现场就这一个移除即可)、TLS_RSA_WITH_NULL_SHA256、TLS_RSA_WITH_NULL_SHA、TLS_PSK_WITH_AES_256_GCM_SHA384、TLS_PSK_WITH_AES_128_GCM_SHA256、TLS_PSK_WITH_AES_256_CBC_SHA384、TLS_PSK_WITH_AES_128_CBC_SHA256、TLS_PSK_WITH_NULL_SHA384、TLS_PSK_WITH_NULL_SHA256

但上述列表有个限制,不能超过 1,023 个字符;上述的算法列表是史蒂夫·吉布森(Steve Gibson)在GRC.com上汇总的列表,可推荐使用。列表必须是一个不间断的字符串,每个密码都用逗号分隔。 我们需要复制格式化的文本并将其粘贴到“ SSL Cipher Suites”字段中,然后单击“确定”。 最后,要使更改生效,必须重新启动OS。

注:从密码套件列表中移除标识为弱的密码套件,可参考http://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx;对于 Apache TomCat 服务器,请遵循以下指示信息:参照示例;移除默认的3DES,DES

TLS_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、、TLS_RSA_WITH_NULL_SHA256、TLS_RSA_WITH_NULL_SHA、TLS_PSK_WITH_AES_256_GCM_SHA384、TLS_PSK_WITH_AES_128_GCM_SHA256、TLS_PSK_WITH_AES_256_CBC_SHA384、TLS_PSK_WITH_AES_128_CBC_SHA256、TLS_PSK_WITH_NULL_SHA384、TLS_PSK_WITH_NULL_SHA256

验证:gpupdate /target:computer,在【PowerShell】上执行命令:Get-TlsCipherSuite

3)删除windows默认CA证书

运行—mmc—打开【管理控制台】–文件—添加/删除管理单元:




查看确认后,删除默认证书:


重新导入/配置新的CA证书:(可生产新的CA证书/或Linux生产证书导入到Windows,默认的证书采用TLS1.0的加密方式,Nessus等扫描器会提示“脆弱的加密",报漏洞)


或者导入个人目录,然后再授权

添加 NETWORK SERVICE 用户,并授予读权限:

打开注册表,定位到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ,然后添加如下项:SSLCertificateSHA1Hash,类型REG_BINARY,

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v "SSLCertificateSHA1Hash" /t REG_BINARY /d "指纹" /freg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v "Enabled" /t REG_DWORD /d "1" /freg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" /v "DisabledByDefault" /t REG_DWORD /d "0" /fRunDll32.exe USER32.DLL,UpdatePerUserSystemParameters


打开上述新增CA证书的属性值,查看 详细信息 中选择 指纹 ,记录下指纹的值,写入到如下图所示,数值框内:

4)注册表方式:(请谨慎选择,未验证)

1>打开文本文件,粘贴一下内容,保存为*.reg文件,导入注册表重启(导入前请先备份注册表)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL]
"EventLogging"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\AES 128/128]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\AES 256/256]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 128/128]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:ffffffff[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[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\CipherSuites][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\SHA]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:0000ffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000

如果上述验证无效,尝试以下内容:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL]
"EventLogging"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\AES 128/128]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\AES 256/256]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 128/128]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128]
"Enabled"=dword:00000000[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[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\CipherSuites][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5]
"Enabled"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\SHA]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\PKCS]
"Enabled"=dword:ffffffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:0000ffff[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:ffffffff
"DisabledByDefault"=dword:00000000

4)手动修改注册表 (Regedt32.exe)

1>:找到计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders

备份完成后修改:

1>禁止的协议可以在Protocol项里面(即SCHANNEL\Protocols 子项下)新建项-名字跟需要禁止的协议的名字相同:


在目标协议的项下面新建Client和Server两个项,同时新建DisableByDefault和Enable两个DWORD(32 位)

“Enabled”=dword:00000000

“DisabledByDefault”=dword:00000001(禁用协议)

  • 禁用 TLS 1.0
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]“Enabled”=dword:00000000
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]“DisabledByDefault”=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]“Enabled”=dword:00000000
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]“DisabledByDefault”=dword:00000001
    \
  • 禁用TLS1.1
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]“Enabled”=dword:00000000
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]“DisabledByDefault”=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]“Enabled”=dword:00000000
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]“DisabledByDefault”=dword:00000001
    \
  • 禁用 TLS 1.2
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] “Enabled”=dword:00000000
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] “DisabledByDefault”=dword:00000001
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] “Enabled”=dword:00000000
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] “DisabledByDefault”=dword:00000001

注:“Protocols”项下的注册表项中的“DisabledByDefault”值不优先于在包含 Schannel 凭据数据的 SCHANNEL_CRED 结构中定义的“grbitEnabledProtocols”值。

禁用TLS1.0和1.1,禁用 SSL 2.0,管理员cmd如下执行:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" /v "Enabled" /t REG_DWORD /d "0" /freg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client" /v "DisabledByDefault" /t REG_DWORD /d "1" /freg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v "Enabled" /t REG_DWORD /d "0" /freg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" /v "DisabledByDefault" /t REG_DWORD /d "1" /freg add "
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client" /v "Enabled" /t REG_DWORD /d "0" /freg add "
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client" /v "DisabledByDefault" /t REG_DWORD /d "1" /fRunDll32.exe USER32.DLL,UpdatePerUserSystemParameters

Poershell脚本执行:

#禁用 TLS 1.1
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-NullNew-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null
Write-Host 'TLS 1.1 has been disabled.'#禁用 TLS 1.2
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-NullNew-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-NullNew-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null
Write-Host 'TLS 1.2 has been disabled.'



**SCHANNEL\Ciphers 子项:**用于控制对称算法(如 DES 和 RC4)的使用。找到SCHANNEL\Ciphers\,新建子项:Triple DES 168和DES 56/56

启用或禁用其他密码套件:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002中删除特定密码来禁用这些密码:

TLS_AES_256_GCM_SHA384
TLS_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA  #删掉这一条
TLS_RSA_WITH_NULL_SHA256
TLS_RSA_WITH_NULL_SHA
TLS_PSK_WITH_AES_256_GCM_SHA384
TLS_PSK_WITH_AES_128_GCM_SHA256
TLS_PSK_WITH_AES_256_CBC_SHA384
TLS_PSK_WITH_AES_128_CBC_SHA256
TLS_PSK_WITH_NULL_SHA384
TLS_PSK_WITH_NULL_SHA256

同理,要启用密码套件,请将其字符串值添加到 Functions 多字符串值键。 例如,如果要启用TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521,则将它添加到字符串中。更多参看官方文档。

5)借助IISCrypto软件加固



应用之后会在注册表创建相关协议

之后重启检测即可。或执行

#重启explorer
taskkill /im explorer.exe /f
start "" "C:\WINDOWS\explorer.exe"
或
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters

SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】处理相关推荐

  1. SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复

    SSL/TLS协议信息泄露漏洞(CVE-2016-2183) 详细描述 TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性. TLS, SSH, IPSec协商及其他产品中使用的 ...

  2. 【漏洞修复】SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

    漏洞修复-SSL/TLS协议信息泄露漏洞(CVE-2016-2183)[原理扫描] @Time : 2022/10/20 09:30 @Author : 852782749@qq.com 开始编辑- ...

  3. 服务器——SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复办法

    前言:近期某台Windows Server服务器的远程连接端口(3389)被扫出了SSL/TLS协议信息泄露漏洞(CVE-2016-2183),尝试了网上很多复制来复制去的"解决方法&quo ...

  4. SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】远程桌面 3389 Windows 2016

    前言 为了提高远程桌面的安全级别,保证数据不被***窃取,在Windows2003的最新补丁包SP1中添加了一个安全认证方式的远程桌面功能.通过这个功能我们可以使用SSL加密信息来传输控制远程服务器的 ...

  5. 3389端口报SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】漏洞

    Windows安全扫描报出3389端口漏洞,这个端口是远程桌面端口,因此也不能关闭,采用增强SSL的方式解决,解决方法如下. 一.win+R运行,输入gpedit.msc进入本地计算机策略 二.本地计 ...

  6. windows 修复SSL/TLS协议信息泄露漏洞

    打开服务器,运行gpedit.msc,打开"本地组策略编辑器",定位到计算机配置-管理模板-网络-SSL配置设置 打开"SSL密码套件顺序",更改为已启用,并在 ...

  7. SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】 服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)【原理扫描】

    netstat -apn | grep 41148 ps -ef | grep 2376 netstat -apn | grep 41148 二.Linux 1.查询8080端口是否被占用,并可以查看 ...

  8. SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808) SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)

    服务器被绿盟软件扫描出存在SSL/TLS漏洞, SSL/TLS协议是一个被广泛使用的加密协议,Bar Mitzvah攻击实际上是利用了"不变性漏洞",这是RC4算法中的一个缺陷,它 ...

  9. SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)【原理扫描】

    RC4加密算法关闭 一.漏洞信息 二.验证方法 三.关闭apache对RC4的支持 一.漏洞信息 2015年3月26日,国外数据安全公司Imperva的研究员Itsik Mantin在BLACK HA ...

最新文章

  1. Gralde 网络代理
  2. ThreadLocal用法详解和原理
  3. 光模块是怎么分类的?光模块的应用及作用有哪些?
  4. AngularJS入门之数据绑定
  5. pythonexcel计算横列总和-在python中,如何在字典中找到值的总和?每个键都有多个值...
  6. c#读取生成excel表格文件xls、xlsx格式文件
  7. C#操作xml SelectNodes,SelectSingleNode总是返回NULL
  8. 【动力学】基于matlab GUI汽车动力学分析系统【含Matlab源码 1050期】
  9. python 通达信公式函数_通达信,文华财经,非常实用的主图均线变色指标
  10. 在gamit中对rinex3的转换
  11. Python数学建模 熵权法/熵值法
  12. 和弦笔记:和弦组成音/和弦命名规律/sus和add的区别
  13. 解惑篇|Docker和 K8s 到底啥关系?想学K8s,必须得先学 Docker 吗?
  14. 【数据分析】:搭建数据分析业务工作流程
  15. leetcode(575)分糖果
  16. 【json】JsonFX
  17. (已更新)王者荣耀改名神器助手微信小程序源码下载
  18. 聚合数据Android SDK 空气质量查询演示示例
  19. [转帖] cnblog新闻区 “40岁以上的员工,请自觉离开”
  20. 小天带你轻松解决Mybatis延迟加载原理源码问题

热门文章

  1. 短信登录、短信注册,(仅供参考)
  2. 大数据的另一门生意经:如何玩转NBA?
  3. matlab simulink有什么用,MATLAB Simulink从入门到放弃
  4. HTML+CSS炫酷效果(小伙伴赶紧收藏起来吧)
  5. java/php/net/python儿童福利院信息管理网站设计
  6. Android sdk 21~23 WebView加载报错
  7. 模糊测试技术简单整理(一)
  8. 批量剪辑视频工具源码开发搭建分享
  9. 32位linux安装64位工具链,在64位系统(GNU工具链)上组装32位二进制文件
  10. 08-现代SoC,SecOps和SIEM:它们如何协同工作