原始webshell

查杀的点在于Runtime.getRuntime().exec非常明显的特征
利用ProcessBuilder替换Runtime.getRuntime().exec(cmd)
Runtime.getRuntime().exec(cmd)其实最终调用的是ProcessBuilder这个函数,因此我们可以直接利用ProcessBuilder来替换Runtime.getRuntime().exec(cmd),从而绕过正则表达式



免杀效果
某狗:

某盾:

某马:

vt:

某度在线查杀:

可以看到这全部都免杀过了,就换了一个函数。
BeansExpression免杀
这种方式是利用Expression将Runtime.getRuntime().exec这个特征分开,相当于一个对调函数。免杀效果一般,因为很多查杀都是直接匹配Runtime.getRuntime()

查杀效果:



可以看到某狗已经查杀出来了。只能说效果很一般
总结
在此部门中主要讲解一下内置的一些函数来替换,从而消除一些特征,但这种方式还是非常非常容易被查杀的