对于检测流量的,我们可以在rememberme里添加非base64字符如$,!这些进行绕过。
原理:org.apache.shiro.codec.Base64;
里面的解码有去除垃圾字符的作用(这一步其实比较鸡肋,因为aes加密每次b64结果都不同)
https://github.com/pen4uin/java-memshell-generator-release
这个项目继承jdk生成对应内存马
https://github.com/pen4uin/java-echo-generator-release
这个项目选择代码执行
然后继承内存马的jdk后,idea逆向新建一个修改内存马
https://github.com/woodpecker-framework/ysoserial-for-woodpecker
使用这个项目进行一次封装
然后手动封装一下shiro头
反正这些方式都是为了拿到内存马
对于执行命令经常出现
Cannot run program "/bin/bash": error=1, 不允许的操作
这种报错,很明显这是关联了进程链
哥斯拉webshell执行命令其实是执行对应字节码,理论上来说不该出现这个问题才对,所以进行改造。(这里演示一种大家都可以直接用的思路)
执行在命令模板里进行全路径执行保存配置后输入1.
这样我们就能执行对应命令了,但是接下来还会有白名单的拦截。
大致翻了翻发现python也在白名单里,所以利用他进行逃逸。(原理也就是环境变量)
至此成功绕过,然后上线dnsrun开始一条路快乐之旅。(如果不能直接执行说明在黑名单里,把名字改成ls这类白名单名字去执行就行了)