主要讲解反射在webshell中的利用,以及反射绕过杀软的利用与原理
原始反射马
免杀效果:
特征太明显里面还有java.lang.Runtime,getRuntime,exec这些敏感内容,由于与反射相关的参数都是字符串,由此我们能操作的空间就很大了。
利用base64加解密敏感内容
免杀效果:
通过测试发现并非查杀的是与反射相关的所有函数,而是匹配是否存在getMethod函数,因此我们只需将getMethod改为getDeclaredMethod即可
getDeclaredMethod替换getMethod
可以看到正常运行
免杀效果:
可以看到某盾依旧查杀,经过测试某盾查杀的是当存在反射函数又存在Process类的getInputStream方法时会被查杀,这种情况下,笔者并未找到太好的办法,要么就这些不回显,要么就利用之前文章写的免杀技巧。
免杀效果:
sun.net.www.MimeLauncher免杀
在sun.net.www.MimeLauncher中存在一个run方法,而该run方法存在命令执行漏洞
本来打算将MimeLauncher放到前面内置函数免杀那篇文章上讲,由于MimeLauncher无法直接使用,需要借助反射进行调用,因此就笔者就将MimeLauncher放在反射免杀后讲,及本章
类似MimeLauncher的类还有许多,适合大家去挖掘挖掘,利用时大概率会用到反射,就当练习练习反射相关的知识也是不错的选择
免杀效果:
总结:
利用反射,不但可以将一些敏感的函数特征进行拆分,而且还能调用正常情况下不被允许调用的类。可以说只要杀软不直接上反射函数其实我们可以操作的空间就非常大了。