Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
当ElasticSearch的节点启动后,它会利用多播(multicast)(或者单播,如果用户更改了配置)寻找集群中的其它节点,并与之建立连接。这个过程如下图所示:
近来, 有一名黑客渗透进了大量暴露在互联网中并且没有任何密码保护的Elasticsearch服务器,并尝试删除其中存储的数据。在这名网络犯罪分子实施攻击的过程中,同时还留下了一家美国网络安全公司--夜狮安全nightlionsecurity.com的网址,试图嫁祸于夜狮安全公司。
在此次攻击活动中,攻击者很可能是在一系列自动化脚本的帮助下完成的攻击,这些脚本能够扫描互联网中暴露在外网且未受任何密码保护的ElasticSearch系统。自动化脚本扫描到这些未受保护的系统之后,便会尝试连接至其后端数据库,并尝试删除其中存储的数据,最后创建一个名为网址“nightlionsecurity.com”的新的空白索引。
ElasticSearch 是一款Java编写的企业级搜索服务,启动此服务默认会开放HTTP-9200端口,可被非法操作数据。
使用fofa搜索开放了9200端口的IP,获得1579023条数据。
任意访问一个IP,发现存在Elasticsearch未授权访问漏洞:
elasticsearch在安装了river之后可以同步多种数据库数据(包括关系型的mysql、mongodb等)。http://localhost:9200/_cat/indices里面的indices包含了_river一般就是安装了river了。
http://localhost:9200/_rvier/_search就可以查看敏感信息了
http://localhost:9200/_plugin/head/ web管理界面
http://localhost:9200/_cat/indices
http://localhost:9200/_river/_search 查看数据库敏感信息
http://localhost:9200/_nodes 查看节点数据
还可以搭建ElasticHD,,在浏览器中远程连接就可以看到ES节点服务器可视化数据的全貌了
Linux搭建ElasticHD:
1,下载
wget https://github.com/360EntSecGroup-Skylar/ElasticHD/releases/download/1.4/elasticHD_linux_amd64.zip
2, 解压
unzip elasticHD_linux_amd64.zip
3,给权限
chmod 777 ElasticHD
4,执行
exec ./ElasticHD -p 127.0.0.1:9800
5,在浏览器中访问127.0.0.1:9800,看到泄漏了21条消息,点击Query还可以查看详细消息。