目录
1、漏洞原理
2、环境搭建
3、未授权访问
4、利用未授权访问写入webshell
防御手段
今天继续学习各种未授权访问的知识和相关的实操实验,一共有好多篇,内容主要是参考先知社区的一位大佬的关于未授权访问的好文章,还有其他大佬总结好的文章:
我在这只是学习大佬总结好的相关的知识和实操实验,那么废话不多说,开整。
第三篇是关于Jenkins的未授权访问
1、漏洞原理
默认情况下 Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限。
2、环境搭建
首先就是下载Jenkins:
wget http://mirrors.jenkins.io/debian/jenkins_1.621_all.deb # 下载
下载地址:Jenkins mirrors
注:命令行下载是真的很慢,建议下载后直接上传到虚拟机中
dpkg -i jenkins_1.621_all.deb # 安装
sudo apt-get -f --fix-missing install # 如果有报依赖项的错误时执行
可以看到报错了,我们首选安装依赖包:
安装完依赖包后,就可以安装成功了
开启Jenkins服务
service jenkinis start
浏览器访问http://192.168.18.129:8080/
如下图所示说明环境搭建成功
3、未授权访问
假设这就是一个互联网上的网站,我们访问ip/manage就可以实现未授权访问后台页面
可以看到确实直接未授权进入到了jenkins的后台管理页面
4、利用未授权访问写入webshell
点击“脚本命令执行”
执行系统命令
println "whoami".execute().text
网站路径:/var/www/html (需要具备一定的权限) 利用“脚本命令行”写webshell,点击运行没有报错,写入成功
new File ("/var/www/html/shell.php").write('<?php phpinfo(); ?>');
可以看到确实出现了权限不够的问题,这因为在本地我可以直接授权,但是真实案例就需要想办法进行权限提升了,这里因为只是学习我就直接授权了
执行成功后,访问shell.php
可以看到成功的访问到了上传的php文件
防御手段
- -升级版本。
- -添加认证,设置强密码复杂度及账号锁定。
- -禁止把Jenkins直接暴露在公网。
到此,Jenkins未授权访问漏洞就学习完成了,后面更多知识再分享给大家(*^▽^*)