Linux基础——CVE-2016-2183漏洞

一、漏洞描述

漏洞编号:CVE-2016-2183

漏洞描述:该缺陷与DES/3DES密码算法的设计相关。

密码算法:如果没有禁用DES/3DES密码算法的情况,一般有大量的强密码算法如AES在DES/3DES的密码套件之上优先使用。

漏洞发生:可能用户在ssh、apache、Tomcat等应用配置的算法上使用DES/3DES的算密码算法,可人工输出算法列表检查。

 

二、漏洞排查(OpenEuler系统为例)

1、测试方法一:Openssl检查密码套件

openssl ciphers -v | grep -i 'des'

 SSH检查密码算法

# 查询ssh的client端

[root@harbor ~]# ssh -Q key | grep -i des

[root@harbor ~]# ssh -Q key
ssh-ed25519
ssh-ed25519-cert-v01@openssh.com
sk-ssh-ed25519@openssh.com
sk-ssh-ed25519-cert-v01@openssh.com
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
sk-ecdsa-sha2-nistp256@openssh.com
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com
sm2
sm2-cert

# 查询ssh的server端密码算法配置
[root@harbor ~]# sshd -T | grep -w kexalgorithms | grep -i des
[root@harbor ~]# sshd -T | grep -w kexalgorithms
kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256

 

2、测试方法二:nmap工具检查des和3des信息泄露漏洞

# 目前系统yum源都有主机端口扫描nmap工具,通过yum install nmap直接安装;

慎重:
  • 绝不要 把自编译的 OpenSSL 装到 /usr/usr/local,否则系统 rpm/yum 依赖的 libssl.so 会被替换,导致 ssh、wget、python 等全部罢工。
  • 如果已经误装,先 sudo make uninstall(1.1.1 系列支持)或手动删 /usr/local/lib64/libssl.* /usr/local/bin/openssl,再用 yum reinstall openssl-libs 恢复系统版本。

测试工具openssl安装
# 1. 装编译依赖 yum groupinstall "Development Tools" # 2. 下载源码
mkdir /root/openssl && cd /root/openssl wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz tar xf openssl-1.1.1w.tar.gz && cd openssl-1.1.1w
# 3. 打开弱密码或重新安装(推荐)
cd /root/openssl/openssl-1.1.1w
make distclean                              # 把旧的 Makefile 清掉
./Configure linux-x86_64 \
     --prefix=/opt/openssl-111-des \
     --openssldir=/opt/openssl-111-des \
     enable-weak-ssl-ciphers enable-des zlib
make -j$(nproc)
## 测试安装错误回退
sudo make uninstall
# 验证
/opt/openssl-111-des/bin/openssl version -a

/opt/openssl-111-des/bin/openssl ciphers -v 'ALL' | grep -E 'DES-CBC|3DES'
#说明 3DES/DES 已回到openssl ciphers套件列表。

image

 
# 4. 安装依赖 & 下载源码(与系统版本保持一致)
yum install -y gcc make autoconf zlib-devel pam-devel openssl-devel
mkdir /root/openssh && cd
/root/openssh
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.4p1.tar.gz tar xf openssh-8.4p1.tar.gz && cd /root/openssh/openssh-8.4p1
# 5. 编译时显式加回 3des-cbc
./configure --with-ssl-engine --with-pam \
            --with-md5-passwords \
            --with-ciphers=aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc
make -j$(nproc)
sudo make install
# 6. openssh测试服务器:打开已废弃的算法 
echo 'Ciphers +3des-cbc' >>/etc/ssh/sshd_config
systemctl restart sshd
# 7.验证openssh版本8.4p1(源码编译安装)

 [root@harbor ~]# ssh -V
  OpenSSH_8.4p1, OpenSSL 1.1.1f 31 Mar 2020
  [root@harbor ~]# which ssh
  /usr/local/bin/ssh

  # 8.安装回退卸载安装目录

  cd /root/openssh/openssh-8.4p1

    # 自动删除编译安装数据

   sudo make uninstall

image

 



# 目前只能看到3des-cbc弱算法,无warning告警
nmap -sV --script ssl-enum-ciphers -p 22 192.168.190.110
# 验证没有warning告警,github官网pr版本中修复了此问题
https://github.com/nmap/nmap/blob/master/scripts/ssh2-enum-algos.nse
curl -L -o /usr/share/nmap/scripts/ssh2-enum-algos.nse \
  https://raw.githubusercontent.com/nmap/nmap/master/scripts/ssh2-enum-algos.nse

# 更新脚本数据库

[root@sysmt ~]# nmap --script-updatedb
Starting Nmap 7.98 ( https://nmap.org ) at 2025-11-26 12:25 +0800
NSE: Updating rule database.
NSE: Script Database updated successfully.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.35 seconds


# 更新scripts失败,由于nmap版本过低

[root@sysmt ~]# rpm -vhU https://nmap.org/dist/nmap-7.98-1.x86_64.rpm --force
Retrieving https://nmap.org/dist/nmap-7.98-1.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:nmap-1:7.98-1 ################################# [ 50%]
Cleaning up / removing...
2:nmap-2:7.70-5.el8 ################################# [100%]
[root@sysmt ~]# rpm -vhU https://nmap.org/dist/ncat-7.98-1.x86_64.rpm --force
Retrieving https://nmap.org/dist/ncat-7.98-1.x86_64.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:ncat-1:7.98-1 ################################# [100%]
[root@sysmt ~]# rpm -qa | egrep "ncat|nmap"
nmap-7.98-1.x86_64
ncat-7.98-1.x86_64

# 验证
nmap --version        # 升级到7.98
nmap --script-updatedb

3、测试方法三:ssh-audit.py脚本

# 测试版本3.10(Python 3.6.8可执行脚本)
https://github.com/jtesta/ssh-audit/releases/download/v3.1.0/ssh-audit-3.1.0.tar.gz
# 最新版本3.30
(Python 3.6.8可执行脚本)
https://github.com/jtesta/ssh-audit/releases/download/v3.3.0/ssh-audit-3.3.0.tar.gz
# 切换到脚本目录/root/ssh_audit/ssh-audit-3.3.0
mkdir /root/ssh_audit
# 解压下载工具报
ssh-audit-3.1.0.tar.gz
tar xf /root/ssh_audit/ssh-audit-3.3.0
cd /root/ssh_audit/ssh-audit-3.3.0
# 执行脚本检查远程openssh 22端口
python3 ssh-audit.py 192.168.190.110:22
## 红色部分表示存在安全隐患
## 测试机有告警【warn】表示从远程主机192.168.190.110检测到22端口存在弱密钥算法

image

  ##远程主机192.168.190.110配置/etc/ssh/sshd_config中添加3des弱密钥算法

image

 

 

 

结论:

目前openssl 的ciphers加密套件不涉及DES/3DES弱密码算法;

openssh服务端和客户端不涉及DES/3DES弱密码算法;

其他nginx、tomcat、httpd等应用检查conf配置排除涉及DES/3DES的弱密码算法来规避漏洞;

参考

# 红帽官网漏洞说明
https://access.redhat.com/articles/2548661
https://access.redhat.com/errata/RHSA-2017:3113
# openssl算法检查方法
https://www.cnblogs.com/LiuYanYGZ/p/6004990.html
# ssh禁用DES/3DES配置(避免三方安全漏扫)
https://www.cnblogs.com/supermwb/p/15879942.html
# nmap漏扫DES/3DES漏洞及tomcat的3DES禁用
https://blog.csdn.net/weixin_39724395/article/details/122246326
# OpenEuler的openssl加密接口
https://docs.openeuler.org/zh/docs/25.03/server/security/shangmi/algorithm-library.html
# 红帽生成加密秘钥和生成证书
https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/7/html/security_guide/sec-using_openssl#sec-Creating_and_Managing_Encryption_Keys
# nmap工具
https://nmap.org/download.html#linux-rpm
# 基于python3的openssh漏洞检测工具
https://github.com/jtesta/ssh-audit/releases

 

posted on 2025-04-18 15:48  gkhost  阅读(1085)  评论(0)    收藏  举报

导航