乐于分享
好东西不私藏

蚁剑 AntSword:跨平台开源 WebShell 管理工具,插件生态是它最大的差异化

蚁剑 AntSword:跨平台开源 WebShell 管理工具,插件生态是它最大的差异化

这工具有什么用

做 Web 渗透的人对”中国菜刀”都不陌生,它是一代安全人的入门工具。但菜刀闭源、多年不更新、跨平台支持弱。蚁剑(AntSword)就是它的精神继承者——作者是 Medici.Yan(蚁逅团队),官方 README 里直接写明”核心代码模板改编自中国菜刀”。

蚁剑的官方定位是”跨平台的开源网站管理工具”,和冰蝎、哥斯拉并称三大 WebShell 管理工具。但它走的路线和另外两位很不一样:冰蝎和哥斯拉都是 Java 写的,重点押在”加密流量”;蚁剑用 Electron + Node.js 构建,重点押在”跨平台原生 GUI + 插件化架构 + 源码完全开源”。

跨平台这点很实际。冰蝎、哥斯拉都需要 Java 环境,而蚁剑基于 Electron,Windows/Linux/macOS 三端开箱即用,不依赖 JRE。源码完全开源(MIT 协议)也是它的硬优势——你可以审计每一行代码、自己改、自己编译,不用担心闭源工具里藏了什么。官方文档甚至特别强调”源码仅托管在 GitHub,以防源代码中植入后门”。

但蚁剑最有差异化的还是它的插件机制。它内置了一个完整的插件市场,社区贡献了大量插件:bypass_disable_functions(绕过 PHP 禁用函数)、As-Exploits(提权、截图、shellcode loader)、PortScan、ScanWebShell、as_webshell_venom 等等。还有配套的 AwesomeEncoder、AwesomeScript 仓库分享自定义编码器和脚本。这是冰蝎、哥斯拉都没做到的生态。

一句话理解:蚁剑是一个跨平台、完全开源、插件生态最完善的 WebShell 管理工具,适合需要深度定制和审计的场景。

适合什么人

  • 授权渗透测试人员 / 红队:需要一个跨平台、可定制、能装插件的 WebShell 管理工具
  • 蓝队 / 安全运营 / 应急响应:必须了解攻击者手里的工具——蚁剑是三大之一,了解它的流量特征和检测点是基本功
  • 安全开发者:想基于开源代码做二次开发、定制编码器、写自己的插件
  • 从冰蝎/哥斯拉切过来的人:不想要 Java 环境、想要更丰富的插件生态

重要声明:本文仅供授权渗透测试、安全研究、企业内网演练使用。示例目标统一使用 example.com 或本地靶场,不代表任何真实目标。

项目入口

  • 项目地址:https://github.com/AntSwordProject/antSword
  • 加载器:https://github.com/AntSwordProject/AntSword-Loader
  • 官方文档(语雀):https://www.yuque.com/antswordproject/antsword

需要客观说明几点。蚁剑主体仓库约 4600 Star、MIT 协议,最新版本 v2.1.16(2026-04-25),处于”低频维护但未停滞”状态——不是每周更新,但 2026 年仍有安全修复版本发布。v2.1.16 是一个重要的安全更新,修复了终端 XSS 导致的 1Click RCE 漏洞(致谢 @s2cr3t)。

加载器 AntSword-Loader 实质已停滞,最后代码 push 在 2019 年,最新 release v4.0.3。但加载器仍然可用(适用于 v2.1.0+ 的蚁剑主体),只是不再有新版本。官方文档站 doc.u0u.us 已失效,文档现在主要托管在语雀。

安装教程

蚁剑的安装方式和冰蝎/哥斯拉不同,它采用”加载器 + 源码”的模式,不需要编译。

第一步:获取源码(官方强调只从 GitHub 获取,防后门)

git clone https://github.com/AntSwordProject/antSword.git -b v2.0-beta

第二步:下载加载器

前往 https://github.com/AntSwordProject/AntSword-Loader/releases 下载对应平台的加载器:

  • Windows:AntSword-windows-x64.zip
  • macOS:AntSword-darwin-x64.zip(也可用 Homebrew:AntSwordProject/homebrew-antsword
  • Linux:AntSword-linux-x64.zip

官方强调”加载器仅在 GitHub 发布,不会在网盘等其它网站发布”,下载后建议校验 MD5。

第三步:初始化

  1. 打开加载器
  2. 点”初始化”按钮,选择第一步 clone 的源码目录
  3. 等待初始化完成,重新打开加载器即显示主界面

加载器可以直接运行源码进行编辑、执行、调试,无需编译。这也是蚁剑”开源就要开得漂亮”理念的一个体现。

使用教程

1. 基本流程:添加 shell → 连接 → 用模块

第一步:在目标创建 shell 文件(示例,本地靶场)

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

第二步:添加数据

打开蚁剑主界面 → 空白处右键 → “添加数据”,填写配置:

  • URL 地址:目标 URL(如 http://192.168.1.100/ant.php
  • 连接密码:如 ant
  • 连接类型:PHP / ASP / ASPX / CUSTOM
  • 编码器:决定流量加密方式(推荐 chr 用于 PHP、hex 用于 ASPX,见下文)
  • 编码设置:返回包的解码编码(ASP/Win7 用 GBK,PHP/Win10 用 UTF8)

第三步:使用模块

保存后,双击该 shell 打开文件管理;在 shell 上右键可进入虚拟终端、数据库管理、浏览网站等模块。

2. 编码器/解码器机制(流量层,重点)

蚁剑的”编码器”决定客户端→服务端的数据怎么编码,这是它流量的核心:

编码器
说明
推荐
default
明文
❌ 不推荐
base64
base64
❌ 官方明确”被 WAF 识别”
chr
PHP 专用,chr 函数处理
✅ 推荐(PHP)
hex
转十六进制
✅ 推荐(ASPX/CUSTOM)
RSA / AES / DES
对称/非对称加密
v2.1.0 起支持 RSA 编码模式

“解码器”(v2.1.1 引入)决定返回包怎么编码:base64、rot13、hex、hex_base64 等,可自定义。

3. 支持的脚本类型(13 种)

蚁剑支持的 shell 类型是三大工具里最全的:php、php4、phpraw、asp、aspx、aspxcsharp、aspxraw、jsp、jspjs、jspraw(2024 新增)、cmdlinux、pswindows、custom。

4. 插件市场

这是蚁剑的核心差异化。进入”插件市场” → 选”远程仓库” → 点插件卡片下”安装”按钮,装完出现在”本地仓库”。也可以手动把插件源码拷贝到 antSword/antData/plugins/ 目录。

官方/社区插件举例:

  • bypass_disable_functions:FastCGI/PHP-FPM、Apache Mod_CGI、LD_PRELOAD 三种模式绕过 PHP 禁用函数
  • As-Exploits:aspx 提权、截图、shellcode loader
  • PortScan:端口扫描
  • ScanWebShell:扫描 WebShell
  • as_webshell_venom:生成免杀 shell

典型场景与进阶玩法

场景一:跨平台后渗透在 macOS/Linux 上做渗透,不想装 Java 环境,用蚁剑直接管理 WebShell。文件管理、虚拟终端、数据库管理一个工具搞定。

场景二:绕过 PHP disable_functions目标 PHP 禁用了 system、exec 等危险函数,用 bypass_disable_functions 插件,按 FastCGI/Mod_CGI/LD_PRELOAD 模式尝试突破。

场景三:自定义编码器对抗 WAF默认编码器被识别时,参考 AwesomeEncoder 仓库写自己的编码器,让流量形态完全自定义。配合自定义解码器,请求和返回都可控。

场景四:插件化二次开发团队有特有的检测逻辑或利用链,用蚁剑的插件开发框架写成插件,集成到统一平台。插件 API 文档完整,比 BurpSuite 的 Java 扩展门槛低。

蚁剑流量怎么检测

这部分写给蓝队。从蚁剑官方 CHANGELOG 和配置文档里能挖到不少检测线索——官方做的规避改进,反过来就是检测点:

  • 默认/弱编码易识别:官方明确标注 default(明文)和 base64 编码”被 WAF 识别”,说明这两个是成熟检测点。实际环境里遇到的多半是这两种或 chr。
  • 固定分隔符曾是特征:早期版本数据分隔符固定,v2.1.6 起改为 5-12 字符随机分隔符、移除 _0x 随机变量名前缀——说明固定分隔符和 _0x 前缀是历史检测特征,老版本样本仍可命中。
  • 终端路径分隔符:v2.1.13 之前终端执行命令路径分隔符固定为 [S][E],后改为随机字符串——[S][E] 是历史检测特征。
  • 默认密码参数名 ant:典型一句话 eval($_POST['ant']),POST 参数名 ant 是默认值,可作为初期检测线索(实际会被改)。
  • 垃圾数据填充:v2.1.9 起对 form-data/multipart 加垃圾数据绕 WAF,对应检测点是 multipart 请求体异常膨胀。
  • 随机 UA:v2.1.11 起改为随机 UA,此前可能固定——UA 跳变是信号。
  • 分片上传高频:v2.1.16 新增分片上传请求间隔(默认 1000ms)规避限流,高频分片上传是行为特征。
  • 典型一句话特征<?php eval($_POST['xxx']); ?> 这种一句话本身是文件查杀的基础特征。