• Apache Zookeeper 未授权访问漏洞【原理扫描】


    漏洞名称 Apache Zookeeper 未授权访问漏洞【原理扫描】
    风险等级 高
    高可利用 否
    CVE编号 -
    端口(服务) 2181(zookeeper)
    风险描述 ZooKeeper是一个高性能的分布式数据一致性解决方案,它将复杂的,容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并提供一系列简单易用的接口给客户使用。ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。
    风险影响 攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。
    解决方案 1、禁止把Zookeeper直接暴露在公网。2、添加访问控制,根据情况选择对应方式(认证用户,用户名密码)。3、绑定指定IP访问。
    协议类型 tcp

    处理方法:
    方法一:防火墙授权访问
    描述:

    zookeeper在默认情况下,是允许任意客户端未经授权访问,存在很大的安全隐患。

    解决方法:

    通过iptables对zookeeper的访问控制权限。

    此问题开发暂未有解决方法,可临时采用iptables 限制2181端口(重启后即失效),除了本身业务访问外,全限制访问,或通过zookeeper自带的acl进行限制。

    iptables临时限制方法
    1.封2181端口:

    iptables -I INPUT -p tcp --dport 2181 -j DROP
    2.指定服务器IP 开启2181访问:

    Centos6.x、Centos7.x:

    iptables -I INPUT -s 10.88.2.208 -p tcp --dport 2181 -j ACCEPT
    iptables -I INPUT -s 10.88.2.209 -p tcp --dport 2181 -j ACCEPT
    3.进行保存

    Centos6.x:

    service iptables save

    Centos7.x:

    iptables-save
    4.重启 防火墙

    Centos 6.x:

    service iptables restart
    Centos 7.x:

    service firewalld restart

    注:Centos 7也可以通过自带的firewalld进行限制,方式如下:

    firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“0.0.0.0/0” port protocol=“tcp” port=“6379” drop”

    firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“192.168.1.1/24” port protocol=“tcp” port=“6379” accept”

    方法二:启用zookeeper自带的授权访问
    1.在 $ZOOKEEPER_HOME/bin/下运行(windows环境运行 %ZOOKEEPER_HOME%\bin\zkCli.cmd,进入zkCli之后的操作与linux下相同)

    ./zkCli.sh -server 127.0.0.1

    2.登录进zookeeper 命令行, 执行 ls /

    [zk: 127.0.0.1(CONNECTED) 24] ls /
    [new, new2, zookeeper, zk_test]
    [zk: 127.0.0.1(CONNECTED) 25]
    3.可以看到有 [new, new2, zookeeper, zk_test]四个节点,对根节点和这四个节点添加acl:

    [zk: 127.0.0.1(CONNECTED) 25] setAcl / ip:127.0.0.1:cdwar,ip:192.168.240.140:cdwar
    cZxid = 0x0ctime = Thu Jan 01 08:00:00 CST 1970
    mZxid = 0x0
    mtime = Thu Jan 01 08:00:00 CST 1970
    pZxid = 0x2d
    cversion = 2
    dataVersion = 0
    aclVersion = 5
    ephemeralOwner = 0x0
    dataLength = 0
    numChildren = 4
    4.有其它服务器需要访问此zookeeper,以 ip:192.168.240.140:cdwar 的格式增加在 setAcl命令最后,以 , 分隔。其它节点增加acl方式也是同样的:

    [zk: 127.0.0.1(CONNECTED) 26] setAcl /new ip:127.0.0.1:cdwar,ip:192.168.240.140:cdwar
    cZxid = 0x26
    ctime = Tue Nov 17 10:44:37 CST 2020mZxid = 0x26
    mtime = Tue Nov 17 10:44:37 CST 2020
    pZxid = 0x26
    cversion = 0
    dataVersion = 0
    aclVersion = 2
    ephemeralOwner = 0x0
    dataLength = 18
    numChildren = 0
    5.增加后,通过getAcl命令查看是否成功:

    [zk: 127.0.0.1(CONNECTED) 27] getAcl /
    'ip,'127.0.0.
    : cdrwa
    'ip,'192.168.240.140
    : cdrwa
    [zk: 127.0.0.1(CONNECTED) 28] getAcl /new
    'ip,'127.0.0.1
    : cdrwa
    'ip,'192.168.240.140
    : cdrwa
    [zk: 127.0.0.1(CONNECTED) 29] getAcl /new2
    'ip,'127.0.0.1
    : cdrwa

  • 相关阅读:
    小程序真机调试提示系统错误
    人工智能迷惑行为大赏(AI智障)
    DC-1靶机练习【超详细】
    腾讯面试——SNG,QQ音乐
    LeetCode——1455.检查单词是否为句中其他单词的前缀
    java计算机毕业设计ssm+jsp成都美食推荐系统
    PMP 11.27 考试倒计时13天!冲刺啦!
    Vue2简单使用及相关基础知识概念(适合小白入门,看完就能上手)
    Nginx+Tomcat 搭建负载均衡、动静分离
    重学设计模式-适配器模式-spring当中的应用
  • 原文地址:https://blog.csdn.net/weixin_43214644/article/details/128038832