漏洞复现 - Jenkins Script Console 未授权远程命令执行
本文最后更新于 2025年7月14日 下午
🎯 漏洞简介
Jenkins 是一款流行的开源 CI/CD 自动化部署工具,默认开启了 Script Console(脚本控制台),用于管理员执行 Groovy 脚本对 Jenkins 实例进行动态管理。
核心风险:
- Script Console 拥有与 Jenkins Master 相同的系统权限。
- 若攻击者可访问该接口且具备权限(或存在身份验证绕过),即可执行任意系统命令。
- 可直接执行命令、下载文件或反弹 shell,危害极大。
🗂️ 漏洞环境
访问 Jenkins Script Console 页面:
1 |
|
如果未做权限限制或存在已知绕过(如弱口令/未授权/令牌泄露),可直接执行 Groovy 脚本。
🚩 漏洞复现
✅ 1️⃣ 执行系统命令
在脚本控制台输入:
1 |
|
执行后即可获得 Jenkins 宿主机的当前用户。
✅ 2️⃣ 反弹 Shell
如果需要获取交互式 shell,可在脚本控制台执行以下 Groovy 反弹 shell:
1 |
|
监听端执行:
1 |
|
执行后即可获取目标宿主机的交互式 shell。
🔍 风险点与危害
Jenkins Script Console 权限与 Jenkins Master 一致,等同于宿主机 root(或运行用户)权限。
一旦泄露凭证或未授权暴露,后果等同于服务器沦陷。
可被用于:
- 横向移动(读取密钥)
- 内网代理
- 持久化后门
🛡️ 修复与防护
✅ 官方建议:
- 禁止未授权用户访问 Script Console,仅保留给可信管理员。
- 使用强口令和多因素认证(MFA)。
- 将 Jenkins Master 部署在受限内网环境,不暴露公网。
- 最小化插件安装,及时更新至最新版本。
- 使用代理防火墙限制
/script
路径访问。
⚠️ 参考
🚨 总结:Jenkins Script Console 是典型的高危运维接口,若暴露且权限未控,等同于宿主机后门!务必内网访问、严格授权、定期审计!