@yzddmr6
更新日志
v 1.4 (2021/7/24)
aspx新增 內(nèi)存馬 模塊
aspx新增 內(nèi)存馬管理 模塊
jsp新增filter內(nèi)存馬
jsp內(nèi)存馬管理模塊增強(qiáng),支持filter、servlet(thx: tomcat-memshell-killer項(xiàng)目)
新增 執(zhí)行自定義payload 模塊
解決html渲染中文亂碼
JSP內(nèi)存馬模塊增強(qiáng)
filter內(nèi)存馬
新增filter類型內(nèi)存馬。內(nèi)存馬會(huì)把自己放到filter的第一位,在遇到shiro框架的時(shí)候就不用填寫登錄Cookie了。
默認(rèn)支持Tomcat以及Spring。


內(nèi)存馬管理
內(nèi)存馬管理模塊核心payload移植了tomcat-memshell-killer的代碼,是不是看起來更直觀了?

還可以貼心的判斷有沒有其他人的內(nèi)存馬

卸載內(nèi)存馬填入Filter name即可

ASPX內(nèi)存馬
內(nèi)存馬注入
aspx內(nèi)存馬的核心代碼來源于ysoserial.net的GhostWebShell,三好學(xué)生的博客中也有提到:https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-%E5%88%A9%E7%94%A8%E8%99%9A%E6%8B%9F%E6%96%87%E4%BB%B6%E9%9A%90%E8%97%8FASP.NET-Webshell
主要原理是利用了asp.net下虛擬文件的特性
通過ASP.NET的VirtualPathProvider類能夠創(chuàng)建虛擬文件,實(shí)現(xiàn)以下效果:虛擬文件不存在于服務(wù)器的文件系統(tǒng),但是能夠?qū)ζ鋭?dòng)態(tài)編譯并提供訪問服務(wù)。ysoserial.net的GhostWebShell.cs提供了一種可供學(xué)習(xí)的利用思路。
可以直接定義要注入的shell內(nèi)容,默認(rèn)為普通一句話,當(dāng)然也可以改成冰蝎哥斯拉之類的


連接的時(shí)候可以把注入的路徑后面加點(diǎn)隨機(jī)字符串,當(dāng)作一個(gè)文件

也可以把注入的路徑當(dāng)作一個(gè)目錄,在目錄下面填寫隨機(jī)文件名
要注意的是必須要用.aspx結(jié)尾,因?yàn)橛成涞氖且粋€(gè)文件,所以要用指定的后綴才能解析。
暫時(shí)不支持通配符模式

內(nèi)存馬管理
內(nèi)存馬注入的payload大部分是抄的
內(nèi)存馬管理部分的payload主要是自己手搓的。研究一下發(fā)現(xiàn)VirtualPathProvider主要用到了類似單向鏈表的結(jié)構(gòu),不像Tomcat的內(nèi)存馬有一個(gè)Config去定義。獲取所有組件需要遍歷鏈表,卸載的時(shí)候需要修改當(dāng)前指針指向來刪除節(jié)點(diǎn),夢(mèng)回?cái)?shù)據(jù)結(jié)構(gòu)課堂。

卸載指定VPP

再次獲取組件發(fā)現(xiàn)內(nèi)存馬已經(jīng)被刪除。
剩下的這個(gè)System.Web.Hosting.MapPathBasedVirtualPathProvider是IIS默認(rèn)組件,刪除之后網(wǎng)站會(huì)崩,請(qǐng)慎重操作。

自定義腳本執(zhí)行
這個(gè)功能主要是為了方便調(diào)試
在JSP下需要填寫base64格式的編譯后的class文件
格式按照https://github.com/AntSwordProject/AntSword-JSP-Template項(xiàng)目去編寫即可,這里以baseinfo為例:

aspx
aspx下就直接寫jscript代碼即可
如果想要調(diào)用C#的payload看我博客這篇文章:https://yzddmr6.tk/posts/jscript-load-csharp-assembly/

php
直接寫php代碼
