ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

拆解Msmap生成器架构:Python模板字符串如何动态拼装Java内存马代码

拆解Msmap生成器架构:Python模板字符串如何动态拼装Java内存马代码 拆解Msmap生成器架构Python模板字符串如何动态拼装Java内存马代码【免费下载链接】msmapMsmap is a Memory WebShell Generator.项目地址: https://gitcode.com/gh_mirrors/ms/msmapMsmap 是一款开源的Java 内存 WebShell 生成器Memory WebShell Generator用 Python 实现选项菜单 → 动态拼装 → 生成代码的全流程一条命令就能为 Tomcat、Spring 等容器定制无文件内存马。这篇文章带你拆解它的生成器架构看懂Python 模板字符串是如何把 Java 内存马代码动态拼出来的 快速上手5 分钟体验 Msmap 生成器获取项目只需一行命令git clone https://gitcode.com/gh_mirrors/ms/msmap cd msmap python3 generator.py运行后会出现一个交互式菜单按「语言 → 容器 → 模型 → 解密算法 → 载荷类型 → 密码」6 层逐级选择即可左侧是 Msmap 的终端菜单右侧是生成的 TomcatValve 内存马与 WebShell 客户端成功通信的效果。整体架构5 个角色各司其职Msmap 的目录结构就是它的架构地图模块文件职责入口generator.py菜单交互、动态导入、模板拼装、编译输出菜单定义config/dependency.py嵌套字典MENU描述所有可选组合环境开关config/environment.py控制是否自动编译、生成 JSP 脚本等容器模板gist/java/container/Tomcat / Spring / Resin / WebLogic / JDK 各容器的主模板组件片段gist/java/decoder/ 与 gist/java/stub/解密算法与载荷行为的可插拔代码块其中 config/dependency.py 里的ARCH字典把菜单层级映射为选项名是菜单与代码之间的翻译官ARCH {1: language, 2: container, 3: model, 4: decoder, 5: stub, 6: password}核心机制Python 模板字符串动态拼装这是 Msmap 最精妙的部分。以 Tomcat Valve 模型模板 gist/java/container/tomcat/valve.py 为例它本质上是一个带占位符的 Python 字符串code public class TomcatValve implements InvocationHandler {{ private static String password {password}; {common} {context} {decoder} {stub} ... 两个关键技巧双花括号转义Java 代码本身大量使用{}而 Python 的str.format()把{{转义为字面量{于是{{和}}原样保留只有{password}、{common}这类单花括号才会被替换。占位符即组件{common}填入通用反射工具代码来自 gist/java/common/util.py{context}填入容器上下文{decoder}填入解密逻辑{stub}填入载荷逻辑。拼装发生在 generator.py先通过importlib.import_module按用户选择动态导入对应模块再一次性format完成组装src model.code.format( commoncommon.code, contextcontext.code, decoderdecoder.code, stubstub.code, passwordpassword )解码器与载荷的双形态设计每个解码器如 gist/java/decoder/aes128.py和每个载荷如 gist/java/stub/antsword.py都提供两种形态code独立方法体供普通模板Valve、Listener 等嵌入类中proc扁平代码片段供 JDK javax 模型内联使用。正是这种同逻辑、双形态的设计让 5 种解码算法 × 5 种载荷 × 多容器可以自由排列组合而无需为每种组合单独维护模板 ⚡特殊路径javax 模型的无文件Fileless注入选择 JDK → JavaX 模型时Msmap 走的是完全不同的路径不生成普通类而是把 Base64 化的HttpServlet类体注入 config/dependency.py 中的AGENTFILELESS模板利用Unsafe JVM attach 机制在运行中重新定义类——全程不落盘真正的无文件内存马。从菜单到产物一次生成的完整流程整个流水线由 generator.py 串联拼装源码→ 输出target/TomcatValve.java编译auto_buildTrue时→ 调用 JDK 生成.classBase64 编码并复制到剪贴板同时可生成 shell.jsp / shell.jspx 脚本用于触发加载客户端连接验证生成过程一气呵成下图分别展示了 Behinder冰蝎与 Godzilla 两种客户端与同一枚 Tomcat Valve 内存马通信成功的效果总结这套架构值得借鉴的 3 点配置即架构一个嵌套字典MENU就完整描述了所有功能组合新增容器只需加字典 加模板模板字符串 双花括号转义用一行format()完成跨语言代码生成简单却强大组件双形态code/proc同一逻辑适配不同宿主环境是模块化设计的巧妙实践。看懂了 Msmap你就掌握了一套Python 模板引擎驱动代码生成的完整范式 【免费下载链接】msmapMsmap is a Memory WebShell Generator.项目地址: https://gitcode.com/gh_mirrors/ms/msmap创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表