除了 TemplatesImpl,最常见的利用 Gadget 还有 CC 中的 Transformer[] 数组,这是一条链式的反射调用,一般情况也是利用其进行调用Runtime.getRuntime().exec(),那在这种利用方式是否能打入内存马呢?
答案是肯定的,除了可以使用远程类加载、bcel 等方式进行内存马的打入,Goby 还通过使用 ScriptEngineManager 执行类加载 JS 脚本的方式默认支持了内存马的打入,其实还可以通过org.mozilla.javascript.DefiningClassLoader进行类加载等诸多方式进行内存马的打入,但是考虑到实际环境不一定存在指定的依赖,因此相关的技术还需要进一步的打磨。
2.3 扩展选项
此外,本项目还提供了一些扩展选项进行额外的配置。
Inherit:对于 TemplatesImpl 方式触发的反序列化利用方式,恶意类是否需要继承 AbstractTranslet;
Obscure:提供一些反射调用 navtive 方法、unsafe 之类的混淆绕过方式;
Jboss:使用 JBossObjectOutputStream 格式输出;
Dirty-type:提供了三种在流量层面对反序列化 payload 进行混淆的方式;
Dirty-length:混淆的数据长度;