webshell之内置函数免杀

原始webshell

webshell之内置函数免杀_第1张图片

查杀的点在于Runtime.getRuntime().exec非常明显的特征

利用ProcessBuilder替换Runtime.getRuntime().exec(cmd)

Runtime.getRuntime().exec(cmd)其实最终调用的是ProcessBuilder这个函数,因此我们可以直接利用ProcessBuilder来替换Runtime.getRuntime().exec(cmd),从而绕过正则表达式

webshell之内置函数免杀_第2张图片

webshell之内置函数免杀_第3张图片

webshell之内置函数免杀_第4张图片

免杀效果

某狗:

webshell之内置函数免杀_第5张图片

某盾:

webshell之内置函数免杀_第6张图片

某马:

webshell之内置函数免杀_第7张图片

vt:

webshell之内置函数免杀_第8张图片

某度在线查杀:

webshell之内置函数免杀_第9张图片

可以看到这全部都免杀过了,就换了一个函数。

BeansExpression免杀

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

webshell之内置函数免杀_第10张图片

查杀效果:

webshell之内置函数免杀_第11张图片

webshell之内置函数免杀_第12张图片

webshell之内置函数免杀_第13张图片

可以看到某狗已经查杀出来了。只能说效果很一般

总结

在此部门中主要讲解一下内置的一些函数来替换,从而消除一些特征,但这种方式还是非常非常容易被查杀的

你可能感兴趣的:(java,开发语言,网络,安全)