漏洞介绍
未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露
漏洞原理
未授权访问是系统对用户的限制不全,或者无限制,可以让用户或者限制访问的用户,访问到内部的敏感信息,执行权限之外的功能,通常也和越权一起出现
常见的未授权访问漏洞
一.redis未授权访问漏洞
Redis 默认情况下,会绑定在 ip:6379 ,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(⼀般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的命令,可以进行写文件操作,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys ⽂件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器。
产生条件
1.redis绑定在 ip:6379 ,且没有进行添加防火墙规则避免其他非信任来源 ip 访问等相关安全策略,直接暴露在公网;
2. 没有设置密码认证(一般为空),可以免密码远程登录redis服务
例子
在Kali上执行以下命令搭建起MongoDB的漏洞环境
拉取镜像:docker pull mongo
启动容器:docker run -d -p 27017:27017 --name mongodb mongo
查看容器:docker ps -a
使用Nmap的插件脚本进行扫描,发现存在未授权访问漏洞
#扫描命令
nmap -p 27017 --script mongodb-info 172.16.1.79
也可尝试使用MSF中的模块进行漏洞测试,不需要认证即可直接连接
msfconsole
use auxiliary/scanner/mongodb/mongodb_login
show options
set rhosts 172.16.1.79
set threads 15
exploit
存在未授权访问漏洞使用Navicat进行连接即可
二.MongoDB未授权访问漏洞
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查等高危动作)而且可以远程访问数据库
产生条件
造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 --auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器
三.Memcached未授权访问漏洞
Memcached 是⼀套常用的 key-value 分布式高速缓存系统,由于 Memcached 的安全设计缺陷没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者无需认证通过命令交互可直接读取 Memcached中的敏感信息
四.Zookeeper未授权访问漏洞
Zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。
Zookeeper的默认开放端口是 2181 。Zookeeper安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper,通过服务器收集敏感信息或者在Zookeeper集群内进行破坏(比如:kill命令)。攻击者能够执行所有只允许由管理员运行的命令
例子
port="2181" && "Zookeeper" && country="US"
使用该语句在fofa进行搜索
在Kali中使用以下命令进行未授权访问漏洞测试
echo envi | nc ip 端口
使用Zookeeper可视化管理工具进行连接
五.Jenkins未授权访问漏洞
默认情况下 Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限
例子
使用以下fofa语法进行资产搜索
port="8080" && app="JENKINS" && title=="Dashboard [Jenkins]"
部分网站有密码
在打开的URL中...点击 Manage Jenkins --> Scritp Console 在执行以下命令
println "whoami" .execute().text
六.Jupyter NoteBook未授权访问漏洞
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行40多种编程语言。如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建一个console并执行任意Python代码和命令,默认端口:8888
例子
通过以下fofa语法进行产品搜索
"Jupyter Notebook" && port="8888" && "terminals"
如果存在未授权访问漏洞则直接访问 http://IP:8888 会直接跳到web管理界面,不需要输入密码
从 New -> Terminal 新建⼀个终端,通过新建的终端可执行任意命令
七.Kibana未授权访问漏洞
Kibana是⼀个开源的分析与可视化平台,设计出来用于和Elasticsearch⼀起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是以各种不同的图表、表格、地图等直观地展示数据,从而达到高级的数据分析与可视化的目的
Kibana如果允许外网访问且没有做安全登录认证,就会被外部任意访问,查看所有数据,造成数据泄露。在默认配置下,Kibana就可以访问Elasticsearch中的所有数据
例子
使⽤以下Fofa语句搜索Kibana产品
"kibana" && port="5601"
直接访问Kibana的页面且无需账号密码可以登陆进入界面
八.Docker Remote API未授权访问漏洞
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的LINUX机器上,也可以实现虚拟化
Docker swarm 是一个将docker集群变成单一虚拟的docker host工具,使用标准的Docker API,能够方便docker集群的管理和扩展,由docker官方提供
Docker Remote API如配置不当可导致未授权访问,被攻击者恶意利用。攻击者无需认证即可访问 到Docker数据,可能导致敏感信息泄露,黑客也可以删除 Docker上的数据,直接访问宿主机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器
例子
使用以下Fofa语句对Docker产品进行搜索
port="2375" && "docker"
直接使用浏览器访问以下路径
http://ip:2375/version #查看版本信息
http://ip:2375/info #查看容器信息
使用-H参数连接目标主机的docker,使用ps命令查询目标系统运行的镜像
docker -H tcp://47.121.212.195:2375 ps
docker -H tcp://47.121.212.195:2375 version
docker -H tcp://47.121.212.195:2375 exec -it 1f4 /bin/bash
1184

被折叠的 条评论
为什么被折叠?



