rebeyond / Behinder

“冰蝎”动态二进制加密网站管理客户端
5.79k stars 964 forks source link

冰蝎4加解密算法通过一致性校验后,JSP木马连接报错(PHP木马成功) #300

Open xiaoluanzzz opened 7 months ago

xiaoluanzzz commented 7 months ago

一致性校验通过

图片

生成PHP木马连接没有任何问题:

图片

JSP木马连接失败,报错javassist.CannotCompileException: [source error];is missing

图片

而且这个过程中没有任何报文发出,说明客户端走加密函数的时候直接报错了

图片

附上加解密算法: 分段异或.zip

qn9301 commented 7 months ago

您好,我已收到您的来信,我会尽快给您回复。

Dr-S1x17 commented 6 months ago

命令行运行一下,就知道哪里报错了,你这都知道是客户端报错,看运行日志不就可以了

qn9301 commented 6 months ago

您好,我已收到您的来信,我会尽快给您回复。

xiaoluanzzz commented 6 months ago

vassist.CannotCompileException: [source error] ; is missing at javassist.CtNewMethod.make(CtNewMethod.java:84) at javassist.CtNewMethod.make(CtNewMethod.java:50) at net.rebeyond.behinder.core.Params.getTransProtocoledClass(Params.java:310) at net.rebeyond.behinder.core.Params.getParamedClass(Params.java:351) at net.rebeyond.behinder.utils.Utils.getData(Utils.java:567) at net.rebeyond.behinder.utils.Utils.getData(Utils.java:639) at net.rebeyond.behinder.core.ShellService.echo(ShellService.java:1271) at net.rebeyond.behinder.core.ShellService.doConnect(ShellService.java:284) at net.rebeyond.behinder.ui.controller.MainWindowController.doConnect(MainWindowController.java:308) at net.rebeyond.behinder.ui.controller.MainWindowController.lambda$initControls$4(MainWindowController.java:139) at java.lang.Thread.run(Thread.java:748) Caused by: compile error: ; is missing at javassist.compiler.Parser.parseDeclarators(Parser.java:643) at javassist.compiler.Parser.parseDeclarationOrExpression(Parser.java:592) at javassist.compiler.Parser.parseFor(Parser.java:380) at javassist.compiler.Parser.parseStatement(Parser.java:279) at javassist.compiler.Parser.parseBlock(Parser.java:307) at javassist.compiler.Parser.parseMethod2(Parser.java:172) at javassist.compiler.Javac.compileMethod(Javac.java:156) at javassist.compiler.Javac.compile(Javac.java:102) at javassist.CtNewMethod.make(CtNewMethod.java:79) ... 10 more

xiaoluanzzz commented 6 months ago

这能看出个啥呀,冰蝎4也不开源呀 @Dr-S1x17

Dr-S1x17 commented 6 months ago

都有报错信息了,哥。 javassist不支持 for (a : b) 写法 @xiaoluanzzz

xiaoluanzzz commented 6 months ago

都有报错信息了,哥。 javassist不支持 for (a : b) 写法 @xiaoluanzzz

谢谢哥,javassist的问题解决了,但服务端又报错了,研究了几天实在找不到问题所在,再请教一下您

xiaoluanzzz commented 6 months ago

testvvv.txt 这是报错

Dr-S1x17 commented 6 months ago

testvvv.txt 这是报错

服务端报错你就直接idea 调试jsp就行了,错误断在哪,跟一下传入的数据和函数,百度就能解决了,话说你给我发报错,不给我发原始的jsp shell,我也不知道哪里有问题啊

xiaoluanzzz commented 6 months ago

原始JSP: testorigin.txt

xiaoluanzzz commented 6 months ago

解决了上个BUG的算法: 分段异或2.config.zip

xiaoluanzzz commented 6 months ago

testvvv.txt 这是报错

服务端报错你就直接idea 调试jsp就行了,错误断在哪,跟一下传入的数据和函数,百度就能解决了,话说你给我发报错,不给我发原始的jsp shell,我也不知道哪里有问题啊

嗯,我只尝试过导出它的class用java调试过,还没试过直接调试jsp,我尝试一下,还是没怎么接触过java,没经验,呜呜

xiaoluanzzz commented 6 months ago

testvvv.txt 这是报错

服务端报错你就直接idea 调试jsp就行了,错误断在哪,跟一下传入的数据和函数,百度就能解决了,话说你给我发报错,不给我发原始的jsp shell,我也不知道哪里有问题啊

其实也调试过了,但是classloader里面的执行过程idea追踪不到,在实例化字节码的时候就报错了: image然后也尝试过把解密后的字节码导出成.class文件自己反编译,用反编译的代码运行,结果是正常的:

image

(乱码是加密后的结果,是正常的)

image

下面是反编译前的字节码: test.class.zip 反编译源代码可以发现几处Encrypt的调用都是正确的,实参确实都是Byte数组,好像不存在它报错中的问题

xiaoluanzzz commented 6 months ago
image
Dr-S1x17 commented 6 months ago
image

盲猜字节码数组有问题,跟一下解密的结果,对比原始的字节码看一下就知道了。原始的如何获取呢?加密选个空的,服务端jsp debug一下获取完整的字节码数组,肯定是不一样的,我这边没详细跟,但我大胆猜一下应该是字节和字符转义出现的问题

xiaoluanzzz commented 6 months ago
image

盲猜字节码数组有问题,跟一下解密的结果,对比原始的字节码看一下就知道了。原始的如何获取呢?加密选个空的,服务端jsp debug一下获取完整的字节码数组,肯定是不一样的,我这边没详细跟,但我大胆猜一下应该是字节和字符转义出现的问题

我对比了一下原始字节码和我导出的字节码的反编译结果,发现两个只有Encypt函数存在差异,其他地方都是一样的:

image image

这是两个字节码文件反编译后的源代码: oringClass.txt myClass.txt