电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2328 人浏览分享

Zookeeper 未授权访问漏洞复现学习

[复制链接]
2328 0
目录

mk-2021-06-11-14-18-37.png


前言

ZooKeeper 是一个开源的 开放源码的应用程序协作服务 是 Google的Chub一个开源
的实现 是 Hadoop 和 Hbase 的重要组件。

Zookeeper 未授权访问漏洞复现学习
最近刚忙完一个hvv 又一次记录信息的东西 想写点
的时候 当我们扫描端口的时候,如果扫描到2181端口 很可能是zookeeper服务
那么就可以试一下zookeeper未授权了
这里我用我的kali docker搭建好环境复现一下

环境搭建

安装下载直接安装
  1. ┌──(rootd57156e91f18)-[/tmp]
  2. └─# apt install zookeeper
复制代码

缺省是安装在这个路径
  1. ┌──(rootd57156e91f18)-[/usr/share/zookeeper]
  2. └─# ls
  3. bin  zooinspector
复制代码
  1. 进入bin目录
  2. ┌──(rootd57156e91f18)-[/usr/share/zookeeper/bin]
  3. └─# ls
  4. zkCleanup.sh  zkCli.sh  zkEnv.sh  zkServer.sh
复制代码

启动zookeeper服务
  1. ┌──(rootd57156e91f18)-[/usr/share/zookeeper/bin]
  2. └─# ./zkServer.sh start
  3. ZooKeeper JMX enabled by default
  4. Using config: /etc/zookeeper/conf/zoo.cfg
  5. Starting zookeeper ... STARTED
复制代码

可以看到端口已经正常启动了

mk-2021-06-11-14-15-42.png

  1. ┌──(rootd57156e91f18)-[/usr/share/zookeeper/bin]
  2. └─# netstat -ano
  3. Active Internet connections (servers and established)
  4. Proto Recv-Q Send-Q Local Address           Foreign Address         State       Timer
  5. tcp        0      0 0.0.0.0:42497           0.0.0.0:*               LISTEN      off (0.00/0/0)
  6. tcp        0      0 0.0.0.0:2181            0.0.0.0:*               LISTEN      off (0.00/0/0)
  7. Active UNIX domain sockets (servers and established)
  8. Proto RefCnt Flags       Type       State         I-Node   Path
  9. unix  2      [ ]         STREAM     CONNECTED     41502
  10. unix  2      [ ]         STREAM     CONNECTED     41500
复制代码

看下本机ip
  1. ┌──(rootd57156e91f18)-[/usr/share/zookeeper/bin]
  2. └─# ifconfig
  3. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  4.         inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
  5.         ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
  6.         RX packets 2934  bytes 3962686 (3.7 MiB)
  7.         RX errors 0  dropped 0  overruns 0  frame 0
  8.         TX packets 1926  bytes 106399 (103.9 KiB)
  9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  10. lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
  11.         inet 127.0.0.1  netmask 255.0.0.0
  12.         loop  txqueuelen 1  (Local Loopback)
  13.         RX packets 0  bytes 0 (0.0 B)
  14.         RX errors 0  dropped 0  overruns 0  frame 0
  15.         TX packets 0  bytes 0 (0.0 B)
  16.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
复制代码

差检验

然后
  1. ┌──(rootd57156e91f18)-[/usr/share/zookeeper/bin]
  2. └─# echo envi | nc 172.17.0.2 2181
  3. Environment:
  4. zookeeper.version=3.4.13-6--1, built on Sun, 07 Feb 2021 23:16:46 +0100
  5. host.name=d57156e91f18
  6. java.version=11.0.11
  7. java.vendor=Debian
  8. java.home=/usr/lib/jvm/java-11-openjdk-amd64
  9. java.class.path=/etc/zookeeper/conf:/usr/share/java/jline.jar:/usr/share/java/log4j-1.2.jar:/usr
  10. /share/java/xercesImpl.jar:/usr/share/java/xmlParserAPIs.jar:/usr/share/java/netty.jar:/usr/sha
  11. re/java/slf4j-api.jar:/usr/share/java/slf4j-log4j12.jar:/usr/share/java/zookeeper.jar
  12. java.library.path=/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/
  13. usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
  14. java.io.tmpdir=/tmp
  15. java.compiler=<NA>
  16. os.name=Linux
  17. os.arch=amd64
  18. os.version=4.9.184-linuxkit
  19. user.name=root
  20. user.home=/root
  21. user.dir=/usr/share/zookeeper/bin
复制代码

99.png

修复方案

配置防火墙,只允许指定ip访问
  1. #  -L:列出目前的table的规则
  2. # -n:不进行IP与HOSTNAME的反查,显示信息速度回快很多。
  3. └─# iptables -L -n
  4. Chain INPUT (policy ACCEPT)
  5. target     prot opt source               destination
  6. Chain FORWARD (policy ACCEPT)
  7. target     prot opt source               destination
  8. Chain OUTPUT (policy ACCEPT)
  9. target     prot opt source               destination
  10. # 清除所有制订的规则
  11. └─# iptables -F
  12. # 清除所有用户“自定义”的chain
  13. └─# iptables -X
  14. # 将所有chain的计数与流量统计都归零
  15. └─# iptables -Z
  16. └─# echo envi | nc 172.17.0.2 2181
  17. 成功回显
  18. # 拒绝所有ip访问2181端口
  19. └─# iptables -I INPUT -p tcp --dport 2181 -j DROP
  20. └─# echo envi | nc 172.17.0.2 2181
  21. Ncat: TIMEOUT.
  22. └─# echo envi | nc 127.0.0.1 2181
  23. Ncat: TIMEOUT.
  24. # 允许127.0.0.1本地ip访问2181
  25. └─# iptables -I INPUT -s 127.0.0.1 -p tcp --dport 2181 -j ACCEPT
  26. └─# echo envi | nc 127.0.0.1 2181
  27. 成功回显
复制代码

98.png

ACL策略配置
  1. # 连接zookeeper
  2. ┌──(rootd57156e91f18)-[/usr/share/zookeeper/bin]
  3. └─# ./zkCli.sh -server 127.0.0.1
  4. Connecting to 127.0.0.1
  5. Welcome to ZooKeeper!
  6. JLine support is enabled

  7. WATCHER::

  8. WatchedEvent state:SyncConnected type:None path:null

  9. # 查看当前权限
  10. [zk: 127.0.0.1(CONNECTED) 0] getAcl /
  11. 'world,'anyone
  12. : cdrwa

  13. # 添加可访问IP
  14. [zk: 127.0.0.1(CONNECTED) 1] setAcl / ip:127.0.0.1:cdrwa
  15. cZxid = 0x0
  16. ctime = Thu Jan 01 00:00:00 UTC 1970
  17. mZxid = 0x0
  18. mtime = Thu Jan 01 00:00:00 UTC 1970
  19. pZxid = 0x0
  20. cversion = -1
  21. dataVersion = 0
  22. aclVersion = 1
  23. ephemeralOwner = 0x0
  24. dataLength = 0
  25. numChildren = 1

  26. [zk: 127.0.0.1(CONNECTED) 2] getAcl /
  27. 'ip,'127.0.0.1
  28. : cdrwa
复制代码

[MD][目录]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.