沫延说
沫延说

记一次对免费Webshell"大马"的代码审计

前    言

偶然发现一个1.83kb大小的php“大马”,功能非常全面,免费下载使用,正值刚做完ISO27001信息安全管理体系认证,趁热打铁对这个功能全面的木马做一次代码审计

…….非常尴尬的是这个webshell自称超强免杀,直接被系统自带的Defender查杀了

 

源    码

https://oss.topstalk.com/blog/2019/11/shell-code.jpg

[password]

混淆+Gzinflate+多重Base64

去除字符串混淆简单整理代码后,val(gzinflate(base64_decode(语句露出水面

https://oss.topstalk.com/blog/2019/11/webshell%E6%95%B4%E7%90%86%E4%BB%A3%E7%A0%81.jpg

通过echo方法解压gzinflate并解密Base64(顺便把$css也解了吧)

看到真正源码后发现一个神秘代码,真没创意……..又是Base64

https://oss.topstalk.com/blog/2019/11/webshell%E5%A4%9A%E9%87%8D%E5%8A%A0%E5%AF%86%E5%8C%BA%E5%9F%9F.jpg

解开后是一个图片的地址,

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

https://oss.topstalk.com/blog/2019/11/webshell404.jpg

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

https://oss.topstalk.com/blog/2019/11/404de.jpg

开始进行审计,根据作者的尿性。。。直接关键词搜索base64_decode

发现还有十余次加密

第一处就让我发现了猫腻

https://oss.topstalk.com/blog/2019/11/phpapi-apitoken.jpg

两处解码后是一个信息上传地址

下面还带简单的内网判断,如果是内网就不上报,如果外网直接上报。

 

根据登录页面输入密码的input name=postpass

全局搜索postpass

果然还找到了备用密码“http200ok”

如果判断如果输入的postpass等于第六行define(‘postpass’, $password);或者等于http200ok则登陆成功

https://oss.topstalk.com/blog/2020/03/bakpasswd.jpg

 

附件: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]

 

没有标签
首页      信息安全      记一次对免费Webshell"大马"的代码审计

Morton.L

文章作者

发表回复

textsms
account_circle
email


沫延说

记一次对免费Webshell"大马"的代码审计
前    言 偶然发现一个1.83kb大小的php“大马”,功能非常全面,免费下载使用,正值刚做完ISO27001信息安全管理体系认证,趁热打铁对这个功能全面的木马做一次代码审计 .......非常尴尬的…
扫描二维码继续阅读
2020-03-16