本發(fā)明涉及漏洞檢測,特別涉及一種用于java?rmi反序列化漏洞檢測的系統(tǒng)、方法、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、java?rmi服務(wù)是遠程方法調(diào)用(remote?method?invocation)。它是一種機制,能夠讓在某個java虛擬機上的對象調(diào)用另一個java虛擬機的對象的方法。在java?web中,很多地方都會用到rmi來相互調(diào)用,rmi傳輸過程必然會使用序列化和反序列化,如果rmi服務(wù)端端口對外開發(fā),并且服務(wù)端使用了像apache?commons?collections這種庫,那么會導(dǎo)致遠程命令執(zhí)行。
2、針對漏洞檢測不具備對自動化完成java?rmi反序列化漏洞檢測,難以深入解析憑證文件,不能擴大檢測成果,難以橫向挖掘網(wǎng)絡(luò)互通的主機的漏洞。
3、這里提出一種用于java?rmi反序列化漏洞檢測的系統(tǒng)、方法、電子設(shè)備及存儲介質(zhì)。
技術(shù)實現(xiàn)思路
1、本公開的實施例旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一,提供一種用于java?rmi反序列化漏洞檢測的系統(tǒng)、方法、電子設(shè)備及存儲介質(zhì)。
2、本公開的第一方面,提供一種用于java?rmi反序列化漏洞檢測的系統(tǒng),包括:
3、掃描模塊,用于接收目標(biāo)ip地址列表,探測所述目標(biāo)ip地址列表中每個ip地址的網(wǎng)絡(luò)可達性,并記錄開放的端口號,識別開放端口下運行的服務(wù),進行服務(wù)歸類;
4、反序列化模塊,用于運行java反序列化腳本,獲取rmi服務(wù)端的系統(tǒng)權(quán)限;
5、解析模塊,用于解析所述rmi服務(wù)端的憑證文件并解密主機的密文密碼;
6、檢測報告模塊,用于生成java?rmi反序列化漏洞檢測報告。
7、本公開的第二方面,提供一種用于java?rmi反序列化漏洞檢測的方法,包括:
8、向掃描模塊輸入目標(biāo)ip地址列表,探測所述目標(biāo)ip地址列表中每個ip地址的網(wǎng)絡(luò)可達性;
9、若存在網(wǎng)絡(luò)可達的ip地址,探測該ip地址的所有端口,記錄開放的端口號;
10、通過識別開放的端口下運行的服務(wù),進行服務(wù)歸類;
11、若服務(wù)歸類為java?rmi服務(wù),通過java反序列化腳本獲取rmi服務(wù)端的系統(tǒng)權(quán)限;
12、利用所述rmi服務(wù)端的系統(tǒng)權(quán)限獲取所述rmi服務(wù)端的憑證文件,并解析所述憑證文件得到rdp通訊連接的主機的密文密碼;
13、使用mimikatz工具解密所述密文密碼,得到主機的明文密碼;
14、根據(jù)所述明文密碼生成java?rmi反序列化漏洞檢測報告。
15、結(jié)合第二方面,所述若服務(wù)歸類為java?rmi服務(wù),通過java反序列化腳本獲取rmi服務(wù)端的系統(tǒng)權(quán)限包括:
16、獲取java的runtime類;
17、通過反射機制從所述runtime類中獲取getruntime方法;
18、反射調(diào)用所述getruntime方法,獲得runtime對象;
19、反射調(diào)用runtime對象的exec方法并執(zhí)行系統(tǒng)命令systeminfo得到rmi服務(wù)端的系統(tǒng)權(quán)限。
20、結(jié)合第二方面,所述利用所述rmi服務(wù)端的系統(tǒng)權(quán)限獲取所述rmi服務(wù)端的憑證文件,并解析所述憑證文件得到rdp通訊連接的主機的密文密碼包括:
21、通過
22、dir/a%userprofile%\appdata\local\microsoft\credentials\*命令查看所述rmi服務(wù)端保存的憑證文件;
23、解析所述憑證文件得到rdp通訊連接的主機的密文密碼。
24、結(jié)合第二方面,所述使用mimikatz工具解密所述密文密碼,得到主機的明文密碼包括:
25、利用mimikatz工具獲取所述密文密碼的guidmasterkey憑證id;
26、查詢所述guidmasterkey憑證id映射的masterkey憑證,解密所述masterkey憑證,得到主機的明文密碼。
27、本公開的第三方面,提供一種電子設(shè)備,包括:
28、一個或多個處理器;
29、存儲單元,用于存儲一個或多個程序,當(dāng)所述一個或多個程序被所述一個或多個處理器執(zhí)行時,能使得所述一個或多個處理器實現(xiàn)上述中任一項用于java?rmi反序列化漏洞檢測的方法。
30、本公開的第四方面,提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時能實現(xiàn)上述中任一項用于java?rmi反序列化漏洞檢測的方法。
31、本發(fā)明提供了一種用于java?rmi反序列化漏洞檢測的系統(tǒng)、方法、電子設(shè)備及存儲介質(zhì),通過集成網(wǎng)絡(luò)掃描、端口探測、服務(wù)識別、java反序列化腳本執(zhí)行及憑證文件解析等功能,自動化地檢測java?rmi服務(wù)中的反序列化漏洞,獲取并利用目標(biāo)系統(tǒng)的權(quán)限,進一步分析系統(tǒng)中保存的憑證文件,以擴展檢測范圍,最終生成詳細的漏洞檢測報告。通過這種方式,實現(xiàn)了對java?rmi反序列化漏洞的全面檢測與分析,提高了檢測效率和準(zhǔn)確性,有效提升了系統(tǒng)安全性。
1.一種用于java?rmi反序列化漏洞檢測的系統(tǒng),其特征在于,包括:
2.一種用于java?rmi反序列化漏洞檢測的方法,其特征在于,包括:
3.根據(jù)權(quán)利要求2述的一種用于java?rmi反序列化漏洞檢測的方法,其特征在于,所述若服務(wù)歸類為java?rmi服務(wù),通過java反序列化腳本獲取rmi服務(wù)端的系統(tǒng)權(quán)限包括:
4.根據(jù)權(quán)利要求2述的一種用于java?rmi反序列化漏洞檢測的方法,其特征在于,所述利用所述rmi服務(wù)端的系統(tǒng)權(quán)限獲取所述rmi服務(wù)端的憑證文件,并解析所述憑證文件得到rdp通訊連接的主機的密文密碼包括:
5.根據(jù)權(quán)利要求2述的一種用于java?rmi反序列化漏洞檢測的方法,其特征在于,所述使用mimikatz工具解密所述密文密碼,得到主機的明文密碼包括:
6.一種電子設(shè)備,其特征在于,包括:
7.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時能實現(xiàn)根據(jù)權(quán)利要求2至5中任一項所述用于java?rm?i反序列化漏洞檢測的方法。