As-Exploits v1.5更新
1 更新日志
- 新增支持jspjs/aspxcsharp类型
- 除内存马/内存马管理模块以外,均支持Tomcat10
- 内存马注入模块更新:
- Filter类型:新增PystingerFilter,SorFilter
- 新增WebSocket类型:CmdWs,CmdBase64Ws,JSPJSWs,JSPJSBase64Ws
- 不再支持Servlet内存马
- 内存马管理模块新增Listener、Tomcat-Value、Timer、Websocket 、Upgrade 、ExecutorShell内存马的查杀检测(thx https://github.com/ruyueattention/java-memshell-scanner)
- Jar加载器模块内存加载功能BUG修复
- ShellCode加载-JNA模块更新,提高兼容性跟稳定性
- execPayload模块支持新增额外参数
- 新增Js引擎执行模块,可用Payload见:https://github.com/yzddmr6/Java-Js-Engine-Payloads
- aspxcsharp类型支持回显自定义分隔符
- aspxcsharp新增SharpLoader模块,支持内存加载、远程加载Assembly;支持获取已加载过的Assembly,无需重复上传;支持传递命令行参数,自动获取输入输出。
2 兼容Tomcat 10
不用多解释
3 新增WebSocket内存马
新增4中WebSocket类型内存马:CmdWs,CmdBase64Ws,JSPJSWs,JSPJSBase64Ws 注意Websocket的路径不能填/* 内存马管理模块中可以看到已经注入成功 通过ws协议直接连接 卸载内存马 也可以打入cmd类型,通过Chrome插件手动发送命令
4 新增6种内存马检测
增加Listener、Tomcat-Value、Timer、Websocket 、Upgrade 、ExecutorShell内存马的查杀检测 核心代码来自:https://github.com/ruyueattention/java-memshell-scanner
5 内存加载ShellCode
通过Jar加载器-内存加载,上传ext目录下的loader.jar 可以通过Js引擎执行功能先试一下看类在不在,发现确实可以查找到 ShellCode加载器模块-加载方式JNA,exploit,弹出计算器,也就实现了内存加载ShellCode的功能
6 SharpLoader
具体实现可以看之前写的文章:https://yzddmr6.com/posts/as-exploits-sharploader/ 以Efspotato为例
6.1 内存加载
选择我们要加载的本地文件即可
6.2 URL加载
把exp托管到一个web上,然后填写远程URl地址 需要注意的是,这里有一个坑。 本来想着可以直接去加载github上面各种编译好的payload,但是发现.net 4好像不支持tls1.2 https://stackoverflow.com/questions/47269609/system-net-securityprotocoltype-tls12-definition-not-found 那还是自己搭个http的服务吧
6.3 通过名称加载
在前面通过内存或者URL加载过的程序集,后续都可以通过项目名来反射加载。 可以先通过 获取已加载的Assembly 功能来获取之前所有打进去过的项目名,多个结果以|分割 填入你想要反射的Assembly的名称,加上要执行的参数,exploit! 成功调用 参数内空格分割符:{} 例如需要执行 cmd /c ’net user’ 则填写 cmd /c net{}user即可
7 联动JMG实现内存马扩展
As-Exploits设计理念之一就是要提供良好的扩展性,这里以 执行自定义Payload 功能举例。 虽然插件中内置了一些常见的内存马,但是在实际中我们可能想打入一些别的内存马。这里可以借助pen4uin师傅的JMG项目生成一个蚁剑-Listener内存马 打开JMG,选择内存马类型,中间件类型,设置密码,输出格式选择Base64 生成之后把Payload贴进去,执行 通过内存马管理模块可以看到已经打进去了一个Listener 配置连接的时候别忘了配置敲门的header参数,成功连接