未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。---->目录遍历
1.Redis未授权访问漏洞
1.漏洞简介
redis是一个数据库,默认端口是6379,redis默认是没有密码验证的,可以免密码登录操作,攻击者可以通过操作redis进一步控制服务器。
Redis未授权访问在4.x/5.0.5以前版本下,可以使用master/slave模式加载远程模块,通过动态链接库的方式执行任意命令。
2.漏洞检测
kali安装redis-cli远程连接工具
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable
make
cp src/redis-cli /usr/bin/
redis-cli -h
使用redis-cli命令直接远程免密登录redis主机
redis-cli -h 目标主机IP
3.漏洞修复
- 禁止使用root权限启动redis服务;
- 对redis访问启动密码认证;
- 添加IP访问限制,并更改默认6379端口;
2.MongoDB未授权访问漏洞
1.漏洞简介
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。
造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 –auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。
2.漏洞检测
可以直接用navigate直接去尝试,连接名随便,
3.漏洞修复
限制绑定IP,启动时加入参数--bind_ip 127.0.0.1或在/etc/mongodb.conf文件中添加以下内容:bind_ip = 127.0.0.1;
在admin.system.users中添加用户,启动认证;
设置防火墙策略,限定 IP 访问服务;
禁用HTTP和REST端口,修改配置文件或在启动的时候选择参数nohttpinterface=false;
3.Memcached未授权访问漏洞
1.漏洞简介
Memcached 端口对外开放并且没有配置认证选项,未授权用户可直接获取数据库中所有信息,造成严重的信息泄露。
2.漏洞检测
无需用户名密码,可以直接连接memcache 服务的11211端口
telnet 10.10.4.89 11211
# 或者
nc -vv 11211
使用了 stats 命令来输出 Memcached 服务信息
3.漏洞修复
- 修改绑定的IP、端口和指定访问者IP;
- 设置防火墙策略;
- 禁止暴露在公网;
- 配置memcached监听本地回环地址
- 127.0.0.1;
4. Zookeeper未授权访问漏洞
1.漏洞简介
ZooKeeper 是一个分布式的开放源码的分布式应用程序协调服务,ZooKeeper 默认开启在 2181 端口在未进行任何访问控制的情况下攻击者可通过执行 envi 命令获得系统大量的敏感信息包括系统名称Java 环境,任意用户在网络可达的情况下进行为未授权访问并读取数据甚至 kill 服务。
2.漏洞检测
stat:列出关于性能和连接的客户端的统计信息。
echo stat | ncat 127.0.0.1 2181
ruok:测试服务器是否运行在非错误状态。
echo ruok | ncat 127.0.0.1 2181
dump:列出未完成的会话和临时节点。
echo dump | ncat 127.0.0.1 2181
3.漏洞修复
- 为ZooKeeper配置相应的访问权限;
- 设置防火墙策略;
- 禁止把Zookeeper直接暴露在公网
5.Jenkins未授权访问漏洞
1.漏洞简介
默认情况下Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进脚本执行界面从而获取服务器权限。
2.漏洞检测
直接通过url输入以下地址,若能访问,证明存在未授权访问漏洞。
http://<target>:8080/manage
http://<target>:8080/script
未授权访问 http://<target>:8080/script,可以执行系统命令
# 命令格式
println 'whoami'.execute().text
3.漏洞修复
- 对后台控制页面做登录验证限制;
- 升级Jenkins至新版本;
- 禁止把Jenkins直接暴露在公网;
6.Jupyter Notebook 未授权访问
1.漏洞简介
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建一个console并执行任意Python代码和命令。
2.漏洞检测
使用vulhub搭建漏洞演示环境
cd /vulhub/jupyter/notebook-rce
docker-compose up -d
运行后,访问http://your-ip:8888,将看到Jupyter Notebook的Web管理界面,并没有要求填写密码。
选择 new -> terminal 即可创建一个控制台:直接执行任意命令:
3.漏洞修复
- 开启身份验证,防止未经授权用户访问;
- 访问控制策略,限制IP访问,绑定固定IP;