1. 程式人生 > >JAVA反序列化exp及使用方法

JAVA反序列化exp及使用方法

這兩天很火的java反序列化漏洞,看到烏雲大牛已經開始刷分,於是找來實踐一波

exp來源

ysoserial

這個專案針對不同的java產品給出了簡單的漏洞利用指令碼.
其中weblogic和jenkins提供python指令碼,但需自己載入payload.
而對於jboss和websphere則提供了poc的資料包.
更多資訊在:foxglovesecurity.com

foxlovesec

java專案,用於生成payload,配合前面的漏洞利用指令碼使用,便可完成exp.

iswin

http://www.iswin.org/2015/11/13/Apache-CommonsCollections-Deserialized-Vulnerability/


- 隨風師傅分析漏洞原理,並基於foxglovesec提供的payload生成指令碼,給出基於兩種不同方法的改進版exp和poc,exp裡呼叫了隨風師傅的java版反彈shell方法,它的好處是不依賴作業系統環境,相容win和linux,使反彈shell成功率和穩定性更高.

實踐

資源打包

  • Java_payload 隨風師傅給出的改良版exp和foxlove的專案程式碼
  • jbossexp.py 一個利用指令碼,用於發包
  • kiss10500.bin/kiss10501.bin 我測試時生成的兩個payload
  • shodan_data.xml 從shodan拿了一些JBOSS服務的主機IP
  • shodan_data.xml_sorted 整理後的url,用於批量poc

payload生成

  1. 用eclipse開啟Java_payload專案,按如下路徑找到main.java

eclipse

  1. 程式碼很清晰,找到ip和埠的地方,填入自己機器上用於接受反彈shell的**公網**ip和port.然後下面的路徑是生成payload的儲存地址.

maincode

  1. 執行main.java不報錯即可
  2. 到指定路徑檢查payload檔案是否已經生成

確定目標

在shodan_data.xml列表裡找幾個網站,放到sebug的照妖鏡裡測試一下是否存在漏洞.

有漏洞的結果是這個樣子:

xddedu

反彈shell

首先開啟自己在公網接收shell的主機
使用以下命令監聽埠,等待連線
nc -lv 10501

然後開啟另一個命令列,使用python的發包指令碼向目標機發送payload.

命令格式python jbossexp.py [url] [port] [payload]

隨後公網主機會接收到反彈的shell,如下圖.

exp-success

注意

並不是所有sebug驗證出漏洞的地址都能順利反彈shell,經個人測試,成功率在50%-60%左右,請多加嘗試!

可以郵箱聯絡我索取已經驗證成功並拿到shell的地址.

參考

天上繁b,乃前輩所裝,雖歷歷在目,仍不可盡數.向大牛們學習!