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/
檢視版本
更新安裝必須的套件
- sudo apt-get -y update
- sudo apt-get install build-essential zlib1g-dev libssl-dev
下載最新的套件:
- wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
解壓縮:
- tar -xzf openssh-9.8p1.tar.gz
- cd openssh-9.8p1
編譯:
安裝:
重啟服務:
- sudo systemctl restart ssh
查看版本
如果版本沒顯示openssh-9.8p1,就是需要加入環境變數:
- echo 'export PATH=/usr/local/bin:/usr/local/sbin:$PATH' >> ~/.bashrc
驗證生效
查看版本(出現openssh-9.8p1就OK)
修改 ssh.service 檔案中的 ExecStartPre、ExecStart 和 ExecReload 行,
將 /usr/sbin/sshd 改為 /usr/local/sbin/sshd
- 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
-
確認修改內容:
- grep -E 'ExecStartPre|ExecStart|ExecReload' /lib/systemd/system/ssh.service
重新載入服務:
- sudo systemctl daemon-reload
- sudo systemctl restart sshd
列出正在執行的SSH進程(確認是否為 /usr/local/sbin/sshd)
注意:以上操作ssh的設定檔變成了/usr/local/etc/sshd_config,需要更新設定檔內容
把新設定檔刪掉,建立鏈接到/etc/ssh/sshd_config,並載入服務
- sudo rm /usr/local/etc/sshd_config
- sudo ln -s /etc/ssh/sshd_config /usr/local/etc/sshd_config
- sudo systemctl daemon-reload
- sudo systemctl restart sshd
清理舊版本(可選)