OpenSSH 远程代码执行漏洞(CVE-2024-6387)安全风险
该漏洞是由于OpenSSH服务 (sshd) 中的信号处理程序竞争问题,未经身份验证的攻击者可以利用此漏洞在Linux系统上以root身份执行任意代码。目前该漏洞技术细节已在互联网上公开,该漏洞影响范围较大,建议尽快做好自查及防护。

影响版本: 8.5p1 - 9.7p1

大白话:处于8.5p1 - 9.7p1这个版本的SSH,外部攻击者可以随便草你的主机



查看最新版本文件
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

查看版本
 

  1. ssh -V



更新安装必须的包
 

  1. sudo apt-get  -y update
     
  2. sudo apt-get install build-essential zlib1g-dev libssl-dev



下载最新的包:
 

  1. wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz



解压:
 

  1. tar -xzf openssh-9.8p1.tar.gz
     
  2. cd openssh-9.8p1



编译:
 

  1. ./configure
     
  2. make



安装:
 

  1. sudo make install



重启服务:
 

  1. sudo systemctl restart ssh



查看版本
 

  1. ssh -V



如果版本没显示openssh-9.8p1,就是需要添加环境变量:
 

  1. echo 'export PATH=/usr/local/bin:/usr/local/sbin:$PATH' >> ~/.bashrc



验证生效
 

  1. source ~/.bashrc



查看版本(出现openssh-9.8p1就OK)
 

  1. ssh -V



修改 ssh.service 文件中的 ExecStartPre、ExecStart 和 ExecReload 行,
将 /usr/sbin/sshd 改为 /usr/local/sbin/sshd
 

  1. sudo sed -i 's|ExecStartPre=/usr/sbin/sshd|ExecStartPre=/usr/local/sbin/sshd|; s|ExecStart=/usr/sbin/sshd|ExecStart=/usr/local/sbin/sshd|; s|ExecReload=/usr/sbin/sshd|ExecReload=/usr/local/sbin/sshd|' /lib/systemd/system/ssh.service
     
  2.  

 


确认修改内容:
 

  1. grep -E 'ExecStartPre|ExecStart|ExecReload' /lib/systemd/system/ssh.service



重新加载服务:
 

  1. sudo systemctl daemon-reload
     
  2. sudo systemctl restart sshd



列出正在运行的SSH进程(确认是否是 /usr/local/sbin/sshd)
 

  1. ps -ef | grep sshd



注意:以上操作ssh的配置文件就变成了/usr/local/etc/sshd_config,需要更新配置文件内容

把新配置文件删掉,创建链接到/etc/ssh/sshd_config,并加载服务
 

  1. sudo rm /usr/local/etc/sshd_config
     
  2. sudo ln -s /etc/ssh/sshd_config /usr/local/etc/sshd_config
     
  3. sudo systemctl daemon-reload
     
  4. sudo systemctl restart sshd



清理旧版本(可选)
 

  1. sudo rm /usr/sbin/sshd



 

发表评论