@yzddmr6
更新日志
v 1.4 (2021/7/24)
aspx新增 内存马 模块
aspx新增 内存马管理 模块
jsp新增filter内存马
jsp内存马管理模块增强,支持filter、servlet(thx: tomcat-memshell-killer项目)
新增 执行自定义payload 模块
解决html渲染中文乱码
JSP内存马模块增强
filter内存马
新增filter类型内存马。内存马会把自己放到filter的第一位,在遇到shiro框架的时候就不用填写登录Cookie了。
默认支持Tomcat以及Spring。
内存马管理
内存马管理模块核心payload移植了tomcat-memshell-killer的代码,是不是看起来更直观了?
还可以贴心的判断有没有其他人的内存马
卸载内存马填入Filter name即可
ASPX内存马
内存马注入
aspx内存马的核心代码来源于ysoserial.net的GhostWebShell,三好学生的博客中也有提到: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类能够创建虚拟文件,实现以下效果:虚拟文件不存在于服务器的文件系统,但是能够对其动态编译并提供访问服务。ysoserial.net的GhostWebShell.cs提供了一种可供学习的利用思路。
可以直接定义要注入的shell内容,默认为普通一句话,当然也可以改成冰蝎哥斯拉之类的
连接的时候可以把注入的路径后面加点随机字符串,当作一个文件
也可以把注入的路径当作一个目录,在目录下面填写随机文件名
要注意的是必须要用.aspx结尾,因为映射的是一个文件,所以要用指定的后缀才能解析。
暂时不支持通配符模式
内存马管理
内存马注入的payload大部分是抄的
内存马管理部分的payload主要是自己手搓的。研究一下发现VirtualPathProvider主要用到了类似单向链表的结构,不像Tomcat的内存马有一个Config去定义。获取所有组件需要遍历链表,卸载的时候需要修改当前指针指向来删除节点,梦回数据结构课堂。
卸载指定VPP
再次获取组件发现内存马已经被删除。
剩下的这个System.Web.Hosting.MapPathBasedVirtualPathProvider是IIS默认组件,删除之后网站会崩,请慎重操作。
自定义脚本执行
这个功能主要是为了方便调试
在JSP下需要填写base64格式的编译后的class文件
格式按照https://github.com/AntSwordProject/AntSword-JSP-Template项目去编写即可,这里以baseinfo为例:
aspx
aspx下就直接写jscript代码即可
如果想要调用C#的payload看我博客这篇文章:https://yzddmr6.tk/posts/jscript-load-csharp-assembly/
php
直接写php代码