当前位置:   article > 正文

CVE-2016-2183

cve-2016-2183

CVE-2016-2183-SSL/TLS协议信息泄露漏洞

漏洞描述
TLS, SSH, IPSec 协商及其他产品中使用的DES及Triple DES密码存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击,获取纯文本数据。

该漏洞又称为 SWEET32,是对较旧的分组密码算法的攻击,使用 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.1.0 前版本,也有高版本存在此漏洞
需查看 web 中间件 conf 配置判断
或使用 nmap 协商密码进行搜集
  • 1
  • 2
  • 3
  • 4

复现

此漏洞复现困难 耗费时间资源较多

SWEET32 攻击需要 30-38 个小时不断发送服务器请求,收集约 785 GB 流量,发现碰撞攻击,这将允许恢复 Cookie 文件内容,包含验证和用户会话详情。
对 OpenVPN 的攻击需要 18 小时收集 750G 的数据,复原 16 位的认证令牌。
  • 1
  • 2

详细复现过程可查阅相关资料

升级到不存在此漏洞版本

官方地址:https://www.openssl.org/source/

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 和 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才能从最新软件包更新。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
替换旧 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

禁用 DES 算法修复

避免使用 DES 算法
配置 conf 的设置 ssl_ciphers HIGH:!aNULL:!MD5:!3DES; 重启中间件服务
  • 1
  • 2

Windows 远程桌面漏洞修复

使用 Windows FIPS 代替 SSL 加密
1)启用 FIPS
操作步骤:管理工具 -> 本地安全策略 -> 安全设置 -> 本地策略 -> 安全选项 -> 找到”系统加密:将 FIPS 兼容算法用于加密、哈希和签名”选项 -> 右键”属性” -> 在”本地安全设置”下,选择”已启用(E)”,点击”应用”、”确定”

2)禁用 SSL 密码套件
操作步骤:’Win + R’,键入”gpedit.msc”,打开”本地组策略编辑器” -> 计算机配置 -> 网络 -> SSL 配置设置 -> 在”SSL密码套件顺序”选项上,右键”编辑” -> 在”SSL 密码套件顺序”选在”已禁用(D)” ,点击”应用”、”确定”

3)删除默认CA认证书
操作步骤:’Win + R’,键入”mmc”,打开”管理控制台” -> ”文件” -> ”添加/删除管理单元(M)” -> 在”可用的管理单元”下选择”证书” -> 单击”添加” -> 在”证书管理单元”中选择”计算机用户(C)”,点击”下一步” -> 在”选择计算机”中选择”本地计算机(运行此控制台的计算机)(L)”,单击”完成” -> 回到”添加/删除管理单元”,单击”确定” -> 回到”控制台” -> ”证书(本地计算机)” -> ”远程桌面” -> ”证书”->在默认证书上右键”删除”
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

修复后存在问题

服务端将不使用 DES/3DES 加密方式,IE6、IE7、Windows XP 操作系统将无法访问站点,需业务方自行判断是否进行修复。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/721286
推荐阅读
相关标签
  

闽ICP备14008679号