jenkins 手动执行_Jenkins Git client插件命令执行漏洞(CVE201910392)
0x00 漏洞描述
Jenkins發布了官方安全公告:https://jenkins.io/security/advisory/2019-09-12/,Git客戶端插件中的系統命令執行漏洞。
Git客戶端插件接受用戶指定的值作為調用的參數,git ls-remote以驗證指定URL處是否存在Git存儲庫。
這是以允許具有Job/Configure權限的攻擊者在Jenkins主服務器上執行任意系統命令作為Jenkins進程正在運行的OS用戶的方式實現命令執行。
0x01 影響組件
Git client Plugin <= 2.8.4
0x02 原因分析
以官方描述https://jenkins.io/security/advisory/2019-09-12/,漏洞存在關鍵點在于git ls-remote,參考Git 客戶端?官方文檔,從給的參數中可以注意到--upload-pack=。看起來像是可以執行某些命令,而漏洞作者也是看到了這個參數的形式而采用了這個參數執行。
在遠程主機上指定git-upload-pack的完整路徑。這允許列出通過SSH訪問的存儲庫中的引用,以及SSH守護程序不使用用戶配置的PATH的位置。
以此可見,這個錯誤stderr: error: unknown switch v'?除了打印Git的用法還有一條--upload-pack ?可以直接執行命令。
我們可以使用以下Payload來運行命令:
--upload-pack="`id`"代碼:
0x03 環境搭建
漏洞復現版本:Jenkins 2.176.3
拉取docker 鏡像
docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-alpinedocker拉取鏡像完成后打開?localhost:8080, 解鎖密碼在部署過程中可以看到。
安裝推薦插件?等待完成初始化配置后,創建一個非管理員用戶。
并給予創建job權限。
由于官方已經升級了最高版本,所以需要手動上傳插件存在漏洞版本得插件。
git客戶端:http://updates.jenkins-ci.org/download/plugins/git-client/2.8.2/git-client.hpi
git插件:http://updates.jenkins-ci.org/download/plugins/git/3.12.0/git.hpi
導入完成后,重啟Jenkins服務。
登陸創建的test用戶并創建一個新的流水線任務。
0x04 漏洞利用
執行剛才分析得來的os命令。
--upload-pack="`ifconfig`"反彈shell自然也是不在話下。
0x05 漏洞修復
升級Git client插件至2.8.4以上版本
0x06 其他說明
早在2014年,安識科技團隊成員在安全脈搏發布過《知其一不知其二之Jenkins Hacking》https://www.secpulse.com/archives/2166.html,詳細闡述了Jenkins的各種hacking技巧。
隨著時間推移Jenkins后續也爆出了反序列化等漏洞,詳情參見安全脈搏生態插件社區:https://x.secpulse.com/#/plugins
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的jenkins 手动执行_Jenkins Git client插件命令执行漏洞(CVE201910392)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: brew php imagemagick
- 下一篇: oracle怎么以时间排序,oracle