前 言
偶然发现一个1.83kb大小的php“大马”,功能非常全面,免费下载使用,正值刚做完ISO27001信息安全管理体系认证,趁热打铁对这个功能全面的木马做一次代码审计
…….非常尴尬的是这个webshell自称超强免杀,直接被系统自带的Defender查杀了
源 码

[password]
混淆+Gzinflate+多重Base64
去除字符串混淆简单整理代码后,val(gzinflate(base64_decode(语句露出水面

通过echo方法解压gzinflate并解密Base64(顺便把$css也解了吧)
看到真正源码后发现一个神秘代码,真没创意……..又是Base64

解开后是一个图片的地址,
可以理解为这个1.83kb的php是通过加载远程一个名为“404”的gif图片文件的形式来获取“大马”的,当然了这个gif图片并不是一个真正的图片,

一点也不奇怪…….根据shell.php解密后的第57行,Gzinflate+Base64解压解密轻松拿到源码

开始进行审计,根据作者的尿性。。。直接关键词搜索base64_decode
发现还有十余次加密
第一处就让我发现了猫腻

两处解码后是一个信息上传地址
下面还带简单的内网判断,如果是内网就不上报,如果外网直接上报。
根据登录页面输入密码的input name=postpass
全局搜索postpass
果然还找到了备用密码“http200ok”
如果判断如果输入的postpass等于第六行define(‘postpass’, $password);或者等于http200ok则登陆成功

附件:gzinflate+base64解密脚本
<?php $Code = '这里填写要解密的编码'; $File = 'output.php';//解码后保存的文件名 echo "开始解码!"; $decoded_base64_decode = base64_decode($Code); $decoded_gzinflate = gzinflate($decoded_base64_decode); echo "写入文件"; $write = fopen($File,"w"); fwrite($write,$decoded_gzinflate); fclose($write); echo "解密完成!"; ?>
使用方式:将code内中文内容替换为gzinflate+base64密文,直接通过命令行php执行即可
[/password]
发表回复