文章目录
简介
未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。
常见的未授权访问漏洞
未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。
MongoDB 未授权访问漏洞
漏洞信息
开启MongoDB
服务时不添加任何参数,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作【增、删、改、查高危动作】而且可以远程访问数据库。
造成未授权访问的根本原因就在于启动 Mongodb
的时候未设置 --auth
,也很少会有人会给数据库添加上账号密码【默认空口令】,使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。
漏洞利用
防御方法
-
为
MongoDB
添加认证:MongoDB
启动时添加--auth
参数、为MongoDB
添加用户。 -
MongoDB
自身带有一个HTTP
服务和并支持REST
接口。在2.6
以后这些接口默认是关闭的。mongoDB
默认会使用默认端口监听web
服务,一般不需要通过web
方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择–nohttpinterface
参数nohttpinterface=false
。 -
限制绑定
IP
:启动时加入参数--bind_ip 127.0.0.1
或在/etc/mongodb.conf
文件中添加内容bind_ip = 127.0.0.1
。
Redis 未授权访问漏洞
漏洞信息
Redis
默认情况下,会绑定在 0.0.0.0:6379
,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip
访问等,这样将会将 Redis
服务暴露到公网上;如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis
以及读取 Redis
的数据。攻击者在未授权访问 Redis
的情况下,利用 Redis
自身的提供的config
命令,可以进行写文件操作,攻击者可以成功将自己的ssh
公钥写入目标服务器的 /root/.ssh
文件夹的authotrized_keys
文件中,进而可以使用对应私钥直接使用ssh
服务登录目标服务器、添加计划任务、写入Webshell
等操作。
漏洞利用
防御方法
-
设置
Redis
访问密码在redis.conf
中找到 “requirepass
” 字段在后面填上强口令,redis
客户端也需要此密码来访问redis
服务。 -
添加
IP
访问限制:配置bind
选项限定可以连接Reids
服务器的IP
并修改默认端口6379
。 -
重启
Redis
服务。 -
清理系统中存在的后门木马。
-
禁止使用
root
权限启动redis
服务。
Jenkins 未授权访问漏洞
漏洞原理
默认情况下, Jenkins
面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞【未设置密码】或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限。
漏洞利用
防御方法
-
升级版本。
-
添加身份认证,设置强密码复杂度及账号锁定。
-
禁止把
Jenkins
直接暴露在公网。
Memcached 未授权访问漏洞
漏洞原理
Memcached
是一套分布式高速缓存系统,它以 Key - Value
的形式将数据存储在内存中,这些数据通常是会被频繁地应用、读取的。正因为内存中数据的读取速度远远大于硬盘的读取速度所以可以用来加速应用的访问, Memcached
的安全设计缺陷客户端连接 Memcached
服务器后无需认证就可读取、修改服务器缓存内容,所以对公网开放的Memcache
服务很容易被攻击者扫描发现,攻击者无需认证通过命令交互可直接读取 Memcached
中的敏感信息。
漏洞利用
防御方法
- 修改绑定的
IP
、端口和指定访问者IP
; - 设置防火墙策略,配置访问控制策略;
- 禁止暴露在公网,禁止外网访问
Memcached 11211
端口。; - 配置
memcached
监听本地回环地址127.0.0.1
。只允许本地访问;
JBOSS 未授权访问漏洞
漏洞原理
JBoss
也是一个管理EJB
【企业java beans
】的容器和服务器,支持EJB 1.1
、EJB 2.0
和EJB3
规范。,默认情况下访问 http://ip:8080/jmx-console
就可以浏览 JBoss
的部署管理的信息,不需要输入用户名和密码可以直接部署上传木马有安全隐患。
漏洞利用
防御方法
- 添加
JMX
控制页面身份认证,控制页面访问,添加访问验证。; - 进行
JMX Console
安全配置; - 关闭
jmx-console
和web-console
。
VNC 未授权访问漏洞
漏洞原理
VNC
是基于 UNXI
和 Linux
的免费开源软件,由 VNC Server
和 VNC Viewer
两部分组成。VNC
默认端口号为 5900
、5901
。VNC
未授权访问漏洞如被利用可能造成恶意用户直接控制受控主机危害相当严重。
漏洞利用
防御方法
- 配置
VNC
客户端登录口令认证并配置符合密码强度要求的密码; - 以最小权限的普通用户身份运行操作系统;
Docker 未授权访问漏洞
漏洞原理
Docker Remote API
是一个取代远程命令行界面的REST API
。存在问题的版本分别为 1.3
和 1.6
。因为权限控制等问题导致可以通过 docker client
或者 http
直接请求就可以访问这个 API
,通过这个接口,我们可以新建 container
,删除已有 container
,甚至是获取宿主机的 shell
。该未授权访问漏洞是因为Docker API
可以执行Docker
命令,该接口是目的是取代Docker
命令界面,通过URL
操作Docker
。
漏洞利用
先用 nmap
扫描查看端口开放情况,2375
为 docker
端口。如果存在漏洞会有以下情况:url
输入 ip:2375/version
就会列出基本信息也可以执行目标服务器容器命令如 container
、image
等。
防御方法
-
简单粗暴的方法,对
2375
端口做网络访问控制,如ACL
控制,或者访问规则。 -
修改
docker swarm
的认证方式,使用TLS
认证:Overview Swarm with TLS
和Configure Docker Swarm for TLS
这两篇文档,说的是配置好TLS
后,Docker CLI
在发送命令到docker daemon
之前,会首先发送它的证书,如果证书是由daemon
信任的CA
所签名的,才可以继续执行。
ZooKeeper 未授权访问漏洞
漏洞原理
zookeeper
是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。Zookeeper
的默认开放端口是2181
。Zookeeper
安装部署之后默认情况下不需要任何身份验证,造成攻击者可以远程利用Zookeeper
,通过执行 envi 命令获得系统大量的敏感信息包括系统名称Java
环境或者在Zookeeper
集群内进行破坏【比如:kill
命令)】,攻击者能够执行所有只允许由管理员运行的命令。
漏洞利用
防御方法
-
修改
ZooKeeper
默认端口,采用其他端口服务。 -
添加访问控制,配置服务来源地址限制策略。
-
增加
ZooKeeper
的认证配置。
Rsync 未授权访问漏洞
漏洞原理
Rsync
是一个远程数据同步工具,可通过 LAN/WAN
快速同步多台主机间的文件,也可以同步本地硬盘中的不同目录。Rsync
默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权,就会触发隐患,Rsync
的默认端口为 837
。
漏洞利用
防御方法
-
账户认证:正确配置认证用户名及密码,只允许指定的用户利用指定的密码使用
rsync
服务。 -
权限控制:使用合理的权限,不需要写入权限的
module
的设置为只读Read only = true
。 -
网络访问控制:控制接入源
ip
,使用安全组策略或白名单限制,只允许必要访问的主机访问:hosts allow = 123.123.123.123
。 -
隐藏
module
信息:修改配置文件list =false
。 -
数据加密传输:
Rsync
默认没有直接支持加密传输,如果需要Rsync
同步重要性很高的数据,可以使用ssh
。