ElasticSearch在一些大型企业内部往往部署的比较多,因此在获取某内网权限后,进一步的渗透就非常有意义了,
通过ElasticSearch漏洞获取某站webshell权限
。在上一篇《 ElasticSearch漏洞实战:通过perl进行反弹shell 》中分析了通过perl脚本来获取反弹的shell,反弹的shell具有一定的时效性,本文就非perl方面的渗透进行探讨。1.通过shodanhq搜索引擎搜索关键字“Elasticsearch”
首先在网站shodanhq.com注册一个用户,注册成功后需要通过邮箱进行激活,激活后即可使用。在搜索框中输入关键字“Elasticsearch”进行搜索,如图1所示,结果以top countries显示查询记录,在早期搜索结果中中国排名第一,后面以美国部署的服务器较多。在结果列表中随机选择一个IP地址,在本例中选择的是国外的IP。
图1搜索关键词“ElasticSearch”
2.通过FireFox便携版本进行漏洞测试
在FireFox便携版本输入地址“http://192.121.xxx.xxx:9200/_search?pretty”,然后单击“Load Url”,如图2所示,在Post Data中输入以下代码:
该代码的目的是读取linux操作系统中的/etc/passwd文件的内容,如果存在漏洞则读取passwd文件内容,反之则说明该漏洞不存在,
电脑资料
《通过ElasticSearch漏洞获取某站webshell权限》(https://www.unjs.com)。
图2测试漏洞是否存在
3.查询敏感文件
在Post data中修改exec(\"cat /etc/passwd\")内容为exec(\"locate *.php \")、exec(\"locate *.sql \")、exec(\"locate *.conf \")等以获取敏感文件信息,如图3所示,表明该服务器可能使用php,且cms系统可能为wordpress。
图3寻找系统敏感信息
使用代码以下代码直接获取wp-config.php 文件所在路径“/usr/share/nginx/xxxxxxxxxxxxx/wp-config.php”,如图4所示:
图4获取wp-config.php的路径
4.定位网站和真实路径
通过执行“cat /usr/share/nginx/xxxxxxxxxxxxx/wp-config.php”来读取该文件内容,如图5所示,获取mysql数据库root账号和密码以及网站域名xxxxxxxxxxxxx.com
等信息。通过查看网站所在根目录,还发现有mysql文件备份,通过flashget下载工具将其下载到本地,如图6所示。
图5获取网站域名等信息
图6下载数据库文件