Jenkins未授权访问-命令执行漏洞复现及修复方案

Jenkins未授权访问-命令执行漏洞复现及修复方案

徐志洋 玄武盾网络技术实验室 2025-06-05 07:49

作者:徐志洋

声明:
技术仅用于学术交流,请遵守《网络安全法》,严禁将此文中工具和技术用于非法攻击测试。

图片

一、背景

Jenkins 是一款功能强大的应用工具,支持跨平台实现项目的持续集成与持续交付。作为开源代码工具,其能够胜任各类构建任务或持续集成工作。通过集成 Jenkins,可将其应用于多种测试及部署场景。从本质上来说,Jenkins 是一种支撑持续集成的软件解决方案。

形成漏洞的原因:jenkins 未设置帐号口令,或者使用了弱帐号口令

二、搭建环境

测试环境:

靶机:Ubuntu16.04 IP: 192.168.3.210

攻击机
:kali IP: 192.168.3.211

2.1 Jenkins的安装

wget http://mirrors.jenkins.io/debian/jenkins_1.621_all.deb #下载源码

dpkg -i jenkins_1.621_all.deb # 安装

sudo apt-get
 -f –fix-missing install # 如若出现报依赖项的错误时执行(解决上图报错的问题)

重新安装Jenkins

2.2 Jenkins 访问

由于没有设置口令。可以直接访问,导致存在未授权访问漏洞。

三、漏洞复现

3.1 命令执行

点击>系统管理>脚本命令执行

查看ip信息

查看账号信息

命令
成功被
执行

3.2 反弹shell

1、在攻击机上监听 8888端口

nc -lvp 8888

2、在Jenkins主机上通过
执行
命令漏洞进行反弹shell

3、成功获取shell

四、漏洞修复

1、仔细研判业务需求后Jenkins
禁止
直接暴露在互联网

2、
添加访问控制认证,设置强密码复杂度如口令设置为
8位以上,包含大小写字母,特殊符号等及账号登录失败锁定。