• zookeeper未授权访问渗透测试及修复方法




    zookeeper未授权访问危害

    服务器信息泄露、集群被破坏



    一、 四字命令未授权使用

    1.1 测试

    工具:netcat ,Linux或Windows都可以测

    命令行输入echo envi | nc 10.10.10.10 2181即可查看服务器信息

    命令有:envi stat ruok等



    1.2 修复:

    不想泄露信息可以修改zookeeper/conf/zoo.cfg(zookeeper为安装目录),注释掉 4lw.commands.whitelist 相关的行。四字命令用于查询状态,zookeeper默认不开放这些命令,只有在白名单中才能运行。



    二、 未授权连接及节点操作

    2.1 测试

    Linux下安装zookeeper ,输入

    zookeeper/bin/zkCli.sh -server 10.10.10.10:2181
    

    即可连接,可使用get /node watchset /node 1等命令去操作节点,如果成功,则证明此节点存在未授权访问。




    Windows也可以安装zookeeper来测试

    Windows下使用Java8运行zktools>>工具作者<<

    作者用的百度云,可能有点慢,我给出蓝凑的下载地址,也呼吁大家不要用百度云分享了 : https://wws.lanzous.com/iIlZvjdutij

    如果Java8不是环境变量的话,首先编辑 bin 目录下的 java-start.cmd 文件修改Java为你Java8安装的地址,然后双击启动

    只要zktools连接成功,则证明所有节点存在未授权访问。值得注意的是,如果某个节点有权限控制,那么zktools就无法连接成功,无法访问其他未授权节点了。但是Linux下zkCli.sh仍可访问其他未授权节点。



    ### 2.2 修复:

    2.2.1 ip ACL授权策略

    可以使用下列操作限制访问节点的IP

    setAcl -R /node ip:127.0.0.1:cdrwa,ip:10.10.11.11:cdrwa 
    #-R为递归,cdrwa为权限
    



    2.2.2 auth ACL授权策略

    即用户模式,制定策略后,访问者必须使用addauth digest user:passwd登录才能进行节点操作。

    策略制定方法为,用zkCli.sh连接后,在其中运行addauth digest user:passwd(digest是固定的)来注册用户,可以有多个用户。然后运行setAcl /node auth::cdrwa(auth是固定的),之后可运行getAcl /node查看,能发现之前注册的用户都被配入了节点的权限中。使用quit退出,再连接,可发现只有在使用addauth登录之后才能操作节点。



    2.2.3 digest Acl授权策略

    不难发现策略2中,所有用户对节点的权限都是一致的,只能统一设置,若想使不同用户对节点的权限不同,可以使用digest Acl授权策略,参见 https://blog.csdn.net/u014630623/article/details/103749103



    2.2.4 防火墙策略

    使用以上策略限制节点后,任意用户仍可登录并用ls / 查看节点名字,但是无法获得详细信息和进行操作。若想不让任意用户访问2181端口,可以配置防火墙。

    (๑•̀ㅂ•́)و✧

    往期精彩文章推荐:

    《动态svg图片简单制作》

    《使用博客园的第一件事 - 自定义主题》

  • 相关阅读:
    带有时间间隔的dp
    单调队列优化dp(捡垃圾的机器人)
    实现技巧
    树形dp(灯与街道)
    括号匹配(数组链表模拟)
    二分,求直线上覆盖所有点的最短时间
    可持久化链表(链式前向星)
    二分图匹配模板题
    网络流,设备、插头和转接器建图(简单map的应用)
    第七周助教总结
  • 原文地址:https://www.cnblogs.com/yunmuq/p/14105396.html
Copyright © 2020-2023  润新知