如何處理官方未解決的OpenSSH 命令注入漏洞(CVE-2020-15778)
將本地檔案復制到遠程機器,本來后面跟的是檔案名,但是由于未正確過濾其中的特殊字符導致命令注入,scp允許在scp.c遠程功能中注入命令,攻擊者可利用該漏洞使用反引號執行任意命令,
原始碼分析

通過對scp這段原始碼的分析,不難發現,scp對檔案名沒有進行過濾,這會導致可以使用檔案名稱進行命令列的注入,而且目前只禁用ssh也無法限制scp,攻擊者可以在檔案名中放入反引號“ **”,它會導致服務器崩潰或重新啟動,這將導致DOS攻擊對于此漏洞,如果密碼長期更換且不被泄露,造成危害的可能性不大,但對于系統安全常常要求是很高的,安全軟體也會掃描出本漏洞,下面說一下解決方案,
禁用Scp
關于如何禁用scp,網路中的建議普遍是將openssh-clients直接remove,首先不談對業務有沒有影響,膽識洗掉后服務器的ssh操作指令將會全部失效,這一點就會影響服務器的可操作性,這里我們可以查找scp的位置,對其權限進行封禁,scp將不再有可執行權限,即使利用此漏洞,由于程式無法執行,其危害也被消除了,
whereis scp #查找scp所在目錄
cd /usr/bin
chmod -x scp #移除執行權限
避免漏洞掃描
在上面我們去除了scp的權限,但漏洞掃描軟體依然會診斷出安全問題,實際上scp已經無法作用,漏洞也隨之被修復,掃描軟體不會掃描檔案的執行權限,只會去對比網路中已公開的漏洞,所以還是會掃描出錯誤,這里,我們可以采用偽裝SSH版本號的方式騙過掃描軟體,注意!版本號的名稱要符合格式,自定義格式的版本號生效后可能會導致sshd服務出錯,
sed -i 's/OpenSSH_8.8/OpenSSH_x.x/g' /usr/sbin/sshd
sed -i 's/OpenSSH_8.8/OpenSSH_x.x/g' /usr/sbin/ssh
sshd -v
ssh -v
對比前后,SSH的版本號被隱藏,
修改后,漏洞掃描軟體將掃描不到問題,本漏洞成功被修復,被禁用的scp也可以使用rsync進行替代,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/345634.html
標籤:其他
