[瞎琢磨]php免杀研究1
想到啥说啥
感觉手上的马子太少了,至今还在是用一句话木马,这遇到杀软什么的包死的,想到之前打ctf的时候,做过些极限rce的题目,可以搬来用用,那就基于ctfshow的那几道极限rce的题目研究一下
以数字替换字母构造函数的混淆法
限制条件1
禁止 了以下字符:
- 字母: b-z (小写b到z)、 A-Z (大写A到Z)
- 特殊符号: _ 、 @ 、 # 、 % 、 ^ 、 & 、 * 、 : 、 {} 、 - 、 + 、 <> 、 “ 、 | 、` 、 ; 、 [ 、 ]
操作空间
目测字母只有a可用,然后数字能用
嗯,想了下发现$和?也能用,那么操作空间来了
可以用通配符加数字来比对文件执行:/???/????64 ——/bin/base64
或者用$来执行命令,以$(command)的形式,比如:$(id)
或者$0是当前shell、$$是当前shell的进程id
当然有点局限了,但是php代码中,反撇号`可以直接执行命令,如果被禁用,可以用$(command)来代替
嗯暂时想到这么多,太久没思考了,让trae帮我动动脑子,点化我一下
数字替换构造函数的混淆马
这个限制条件下,反正我是不知道怎么写webshell,嗯那么想着基于这个思想写个免杀马
1 |
|
过火绒(不是哥们,这就过了?)
然后就是以这个免杀的思路来写个带有面板的shell文件
嗯静态现在不报毒了,那就研究下流量加密
现在基本是功能完善了,但是流量太一目了然了
思路
弄了个简单的加解密算法,核心逻辑就是XOR异或->添加随机混淆->Base64编码,解密就是逆过来
异或
随便设置个密钥,然后让密钥与要发送的数据的每个字节进行XOR运算,密钥循环使用(当数据长度超过密钥长度时)
随机混淆
在加密数据前后添加8字节随机前缀
base64编码
将混淆后的二进制数据转换为Base64字符串,便于HTTP传输,避免特殊字符问题
结果
执行一个whoami命令
然后接收到的结果
页面显示:
嗯现在火绒是已经不会报毒了,先让trae帮我找找不足吧
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 lan1ocのblog!



![[记录]尝试shiro有key无链利用,但失败](/img/c1/3.webp)

