中国蚁剑 AntSword 版本演进与技术内核解析:从 2.1.16 安全更新到连接类型架构
网络安全渗透测试桌面应用【免费下载链接】antSword中国蚁剑是一款跨平台的开源网站管理工具。AntSword is a cross-platform website management toolkit.项目地址https://gitcode.com/gh_mirrors/an/antSword点击查看免费下载本文以中国蚁剑AntSword官方更新日志CHANGELOG.md为主体骨架结合仓库源码source/core、modules/request.js、source/modules 等对版本迭代背后的技术内核进行深度展开帮助读者理解蚁剑在安全修复、WebShell 连接类型、编码器/解码器、数据传输机制与插件生态方面的演进脉络掌握各版本特性背后的实现原理与实战配置要点。一、更新日志全貌项目如何用版本迭代沉淀技术能力中国蚁剑是一款跨平台的开源网站管理工具Electron Node.js 架构其核心能力围绕连接各类 WebShell、执行命令、管理文件与数据库展开。仓库根目录的 CHANGELOG.md 记录了从 v1.1.x 到 v2.1.16 的完整演进纵贯 2016 年至 2026 年是理解项目技术路线的第一手资料。从日志结构可以看出项目迭代的几条主线连接类型Core Type不断扩充从最初的 PHP/ASP/ASPX逐步新增 JSPv2.1.9 试验、CMDLinuxv2.1.14、JSPJSv2.1.13、PHPRAWv2.1.15、ASPXCSharpv2.1.15、PSWindowsv2.1.15等类型。在源码 source/core/index.js 中核心模块通过antSword[core_types]遍历加载各子模块新增类型只需在source/core/下新建目录即可被自动加载。安全与稳定性持续加固从 v2.0.7.1 修复 toastr XSS、v2.1.7 增加全局 HTML 转义、v2.1.16 修复 terminal 格式码 XSS到 v2.1.15 修复 PHP8 下get_magic_quotes_gpc废弃问题安全修复贯穿始终。流量侧能力深度进化数据分割符随机化、随机变量名、垃圾数据填充、分块传输、RAW Body、WebSocket 连接等都是为了降低流量特征、绕过 WAF 检测。扩展生态插件/编码器/解码器v2.0.0 引入加载器与插件体系编码管理支持用户自定义编码器/解码器形成核心框架 插件市场 编码器分享的开放生态。下文将以日志中几个关键版本为经、以源码实现为纬逐一展开。二、v2.1.16Terminal XSS 修复与文件分片上传间隔2.1 安全更新Terminal 格式码 XSS 与 RCE 链路v2.1.16 的核心安全修复为Fix terminal 格式码语法字符输出时未过滤完全导致的 xss 漏洞由于在 webview 中开启了 nodejs 功能可借此引起 RCE #370这条修复揭示了蚁剑安全模型的一个关键特征主窗口 webview 开启了 Node.js 集成因此任何能注入 HTML/脚本的内容都可能升级为远程代码执行。修复措施为增加noxssTerminal同时禁用了 terminal 中 link 解析功能。在源码 source/base/utils.js 中noxssTerminal与noxss是全局 XSS 过滤的两个核心函数。v2.1.7 曾增加全局 html 转义在每次响应后强制进行 html 转义而 v2.1.16 进一步针对终端这种特殊输出场景做精细化过滤——因为终端输出的是 ANSI 格式码与命令结果若统一走 HTML 转义会破坏终端渲染但过滤不完全又会导致 XSS。日志明确提示该更新会影响大部分插件的使用请及时更新插件或重装插件说明这类安全修复可能改变输出行为插件作者需关注。2.2 文件管理分片上传请求间隔新增文件分片上传请求间隔机制原有的文件分片上传无时间间隔易触发限流导致上传失败。可通过控制上传请求间隔降低发包速率。对应地数据管理模块同步新增「文件分片上传请求间隔」配置项默认 1000ms。这一机制解决的是真实场景痛点连续快速上传分片容易触发目标 WAF 或 CDN 的限流策略。同时该版本还修正了 PHP4 类型数据管理模块打不开的问题。三、v2.1.15连接类型大扩充与新传输机制v2.1.15 是连接类型与传输机制的一次集中升级也是理解蚁剑架构的关键版本。3.1 新增 PHPRAW 类型与 Behinder3 兼容日志给出的 PHPRAW 示例 WebShell?php eval(file_get_contents(php://input));?这类从输入流读取并执行的 Shell 特征更隐蔽且为了直连 Behinder3 WebShell编码器已内置。查看源码 source/core/phpraw/index.js其编码器列表为[base64, hex, behinder3, behinder3xor]其中 source/core/phpraw/encoder/behinder3.js 实现了与 Behinder3 兼容的 AES-CBC 加密CryptoJS.AESCBC 模式、Pkcs7 填充、零 IV密钥取自CryptoJS.MD5(pwd).toString().substr(0,16)。这说明 PHPRAW 不仅是一个新的连接类型更是蚁剑与 Behinder3 生态互通的桥梁。3.2 新增 ASPXCSharp 类型ASPXCSharp 是面向 ASP.NET C# 的 WebShell 类型日志给出其服务端示例% Page Languagec#% % String Payload Request.Form[ant]; if (Payload ! null) { System.Reflection.Assembly assembly System.Reflection.Assembly.Load(Convert.FromBase64String(Payload)); assembly.CreateInstance(assembly.GetName().Name .Run).Equals(null); } %在源码 source/core/aspxcsharp/index.js 中该类型采用硬编码的 .NET DLL 字节码source/core/aspxcsharp/template/base.js 中的info字段是一段 Base64 编码的BASE_Info.dll通过System.Reflection.Assembly.Load动态加载执行无需目标服务器预装任何扩展。其complete()方法把randomPrefix;tag_s;tag_e编码进version参数下发客户端据此解析服务端返回的数据分割符。3.3 新增 PSWindows 类型PSWindows 与 CMDLinux 类似是基于命令执行的一句话类型仅支持 Windows 环境。日志给出的示例 WebShell?php system($_POST[ant]);?源码 source/core/pswindows/index.js 展示了其执行链路所有命令通过powershell -nop -enc Base64方式执行其中Base64UTF16方法用utf16le编码后 Base64 化修复中文报错。命令执行结果通过asenc编码、包在随机TAGS/TAGE分割符之间返回。数据库管理支持mysql_odbc、sqlserver_odbc、sqlserver_sqlclient三种方式。3.4 JSPJSJava 表达式注入的武器化JSPJS 是基于 JS 引擎Nashorn的 JSP 一句话类型jdk 6数据包体积比 defineClass 方式小得多。日志强调其兼容各种表达式注入并内置spelbase64、el、ognl三个编码器见 source/core/jspjs/index.js 的encoders列表。三个编码器的实现要点spelbase64source/core/jspjs/encoder/spelbase64.js用T(javax.script.ScriptEngineManager)...eval(new String(T(com.sun.org.apache.xml.internal.security.utils.Base64).decode(...)))将 Base64 后的 payload 包进 SpEL 表达式。elsource/core/jspjs/encoder/el.js用${.getClass().forName(javax.script.ScriptEngineManager)...eval(pageContext.request.getParameter(随机变量))}形式payload 通过额外随机变量传递。ognlsource/core/jspjs/encoder/ognl.js(new javax.script.ScriptEngineManager()).getEngineByName(js).eval(new String(com.sun.org.apache.xml.internal.security.utils.Base64decode(...)))。JSPJS 默认生成的 WebShell 是% try { javax.script.ScriptEngine engine new javax.script.ScriptEngineManager().getEngineByName(js); engine.put(request, request); engine.put(response, response); engine.eval(request.getParameter(ant)); } catch (Exception e) { out.println(Error:// e.toString()); } %日志特别提醒这个默认 Shell 在流量层上与?php eval($_POST[ant]);?一样具有明显特征不建议直接使用请配合自定义编码器例如b64pass编码器把 payload Base64 后传入WebShell 端先base64Decode再eval。这体现了蚁剑编码器 WebShell 配对的定制化思路。3.5 文件管理FileHash 计算v2.1.15 新增 FileHash 功能用于计算目标文件 hash。日志注明该功能正在逐步适配所有类型中目前已经适配 PHP/PHP4/PSWindows/CMDLinux/JSP/JSPJS——这是典型的渐进式功能落地方式读者在使用时需注意当前连接类型是否已支持。3.6 后端模块自定义 Content-Type 与 WebSocket 连接自定义 Content-Type默认是formsuperagent 支持的 type 简写如下也支持填全称html: text/html, json: application/json, xml: text/xml, urlencoded: application/x-www-form-urlencoded, form: application/x-www-form-urlencoded, form-data: application/x-www-form-urlencoded在源码 modules/request.js 的buildHeaders中content-type头会被单独捕获为reqContentType随后.type(self.reqContentType)应用到请求上buildBody中则按useRaw/useMultipart分支组装 body。这一设计让用户可以为特殊场景如 XML 报文、JSON API定制 Content-Type。WebSocket 连接由于 ASP/ASPX/ASPXCSharp/PHP/JSP/CUSTOM 类型每次请求为多参数Server 端解析困难因此当前仅支持「RAW」类型PHPRAW、CMDLinux、PSWindows、JSPJS未来计划支持基于 defineClass 的 JSPRAW 类型。日志以 wsMemShell 项目的wscmd为例给出配置URL: ws://127.0.0.1:8080/demoendpoint PWD: 随便填写 连接类型: CMDLinux Encoder: default (明文, 这个是WebShell端决定的) Decoder: 根据情况自由选择注意历史设计限制WebSocket 连接每次操作都会重新建立连接传输结束后自动与 Server 端断开。在 modules/request.js 的onRequest中useWebSocket通过 URL 是否以ws:///wss://开头判断数据经parseWebSocket按 tag_s/tag_e 十六进制切割后回传。3.7 设置模块与其它优化新增 Core 类型时的编码设置解析逻辑现在不需要再改该模块的源代码了——即新增类型时编码器/解码器的加载改为通用化逻辑见 source/core/base.js 的parseEncoder/parseDecoder。优化全局代理设置代理设置完后不需要再重启。代理配置通过 IPCaproxy事件实时下发modules/request.js 的onAproxysource/app.entry.js 中ipcRenderer.send(aproxy, ...)。纯真 IP 数据库更新为 2022/04/20用户可下载后替换 static/libs/qqwry.dat当前仓库中该文件即为此数据库。升级 superagent 到 6.1.0再高的版本需要高版本 Electron 支持、superagent-proxy 到 v3.0.0。这也解释了 package.json 中依赖版本的选择逻辑——依赖版本受 Electron 版本约束。四、v2.1.14CMDLinux 类型与 RAW Body 实战4.1 CMDLinux 类型命令执行的快乐起点v2.1.14 新增 CMDLINUX Shell 类型是基于命令执行的一句话类型仅支持 Linux 环境。日志的原话是只要有一个可以执行命令的点就可以快乐起来。示例 WebShellPHP?php system($_POST[ant]);?流行的 JSP 命令执行 WebShell% if(request.getParameter(cmd)!null){ java.io.InputStream in Runtime.getRuntime().exec(new String[]{/bin/sh,-c,request.getParameter(cmd)}).getInputStream(); int a -1; byte[] b new byte[1]; out.print(pre); while((ain.read(b))!-1){ out.print(new String(b)); } out.print(/pre); } %注意Runtime.exec 方法直接传入字符串时不支持多条命令拼接需要使用数组方式即上面new String[]{/bin/sh,-c,cmd}的写法。这是一个非常实用的坑点提示。源码 source/core/cmdlinux/index.js 揭示了 CMDLinux 的执行模型请求 payload 被拼装成export PATH$PATH:...;TAGS...;TAGE...;${asencCode}asexec() { ${tmpCode} };echo -n $TAGS;asexec|asenc;echo -n $TAGE;——即把 payload 作为 Shell 函数asexec的函数体执行后经asenc解码器定义的编码函数编码再用随机分割符包住输出。这种设计让命令执行结果也能走统一的分割符切割通道。4.2 RAW Body 模式只发 Payload 不发键值日志在 v2.1.14 首次引入「Body 设置为 RAW 模式」配置当时支持 CMDLinux 和 PSWindowsv2.1.15 扩展为「PHPRAW」「CMDLinux」「PSWindows」「JSPJS」四种类型生效。核心语义勾选该选项后只会发送pwd键下的内容不会发送键值。典型应用场景是复杂的 XML 结构例如连接 WebLogic 的 XML 报文时直接发送完整 XML Payloaduse strict; module.exports (pwd, data, ext{}) { data[pwd] ?xml version1.0 encodingutf-8? soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ soapenv:Header work:WorkContext xmlns:workhttp://bea.com/2004/06/soap/workarea/ java void methodnewInstance void methodsay idproc string${data[_]}/string /void /void /java /work:WorkContext /soapenv:Header soapenv:Body/ /soapenv:Envelope; // 删除 _ 原有的payload delete data[_]; // 返回编码器处理后的 payload 数组 return data; }注意日志的提醒此时需要同步配置 Content-Type比如text/xml这正好与 v2.1.15 的自定义 Content-Type 功能形成配套。在源码 modules/request.js 的buildBody中useRaw 1分支只取opts.data[opts[pwd]]进行encodeURIComponent并处理asunescape(...)标记不再拼接其它键值对。触发条件在 source/core/base.js 的request()中this.constructor.supportRawBody this.__opts__[otherConf][use-raw-body] 1且各 RAW 类型都通过static get supportRawBody()声明支持。4.3 命令执行场景的编码器/解码器配套编码器用于 Header 传参日志给出一个典型场景——如果接收参数在 HTTP Header 部分务必使用编码器因为部分 Payload 有换行符。示例 WebShell?php system(base64_decode($_SERVER[HTTP_CMD])); ?对应编码器use strict; module.exports (pwd, data, ext{}) { let headers ext.opts.httpConf.headers; headers[pwd] Buffer.from(data[_]).toString(base64); delete data[_]; return data; }注意这里用到了ext.opts.httpConf.headers——即 v2.1.2 起编码器ext参数新增的opts元素值为当前 shell 配置让编码器能读取 shell 的 HTTP 配置动态注入。base64 解码器source/core/cmdlinux/decoder/base64.jsuse strict; module.exports { asoutput: () { return asenc(){ base64 $; };; // 注意此处是 Shell 语法 }, decode_buff: (buff) { return Buffer.from(buff.toString(), base64); } }解码器接口由两个方法组成asoutput()返回注入到命令执行链路中的编码函数Shell 语法decode_buff()在客户端对返回 Buffer 解码。这就是解码器机制的本质——服务端编码函数 客户端解码函数成对工作。五、v2.1.13JSPJS 诞生、open_basedir 绕过与终端随机分割符5.1 JSPJS 类型与数据包瘦身v2.1.13 新增 JSPJSAuthor: yzddMr6其价值在于相较于 jsp defineClass 实现该方式的数据包大小明显小了不少。日志还留下一个探索彩蛋JSPJS 类型可以通过『迂回』的方式去『直接使用』原来的 JSP 类型 WebShell。对应地ExecuteScript、GenShell、PortScan、Out-of-Network 等插件均同步支持 JSPJS。5.2 PHP/PHP4 自动 Bypass open_basedir利用的是chdir(..);方式仅在目标配置了 open_basedir 后才会自动尝试在源码 source/core/phpraw/index.js 的complete()中可以看到完整的 bypass 代码先ini_get(open_basedir)判断是否开启若开启则遍历preg_split(/;|:/,$opdir)分割出的目录找到可写目录后mkdir一个临时目录、chdir进入、ini_set(open_basedir, ..)、逐级chdir(..)直至根目录、最后ini_set(open_basedir,/)并rmdir清理。该逻辑在 source/core/php4/index.js 中同样存在。日志特别提示该功能会影响之前版本 PHP Bypass DisableFunc 插件请及时更新插件——安全机制类功能与插件存在联动。5.3 虚拟终端随机分割符对抗 Windows Defender终端执行命令路径分割符由固定的[S][E]改为随机字符串。别问要问就去问 Windows Defender。这一条点明了终端类工具的常见对抗点固定特征字符串容易被杀软特征匹配随机化是低成本高收益的对抗手段。这与 v2.1.6数据分割字符随机化增强随机内容随机长度 5~12 位的思路一脉相承——在 source/core/base.js 及各类型complete()中tag_s/tag_e均由Math.random().toString(16).substr(2, parseInt(Math.random()*85))生成5~12 位随机十六进制串。5.4 后端模块multipart 编码器 data 非字符串异常修复修复 multipart 发包方式下编码器中 data 内容不为字符串时异常。日志给出触发异常的编码器示例use strict; module.exports (pwd, data) { data[test] 123; // 这里会引发异常 data[pwd] data[_]; delete data[_]; return data; }这是编码器开发者的重要避坑指南在 multipart 模式下 data 值必须是字符串否则需要自行做类型转换。六、v2.1.11JSP 解码器、解码器 ext 参数与 random 编码器移除6.1 JSP 类型支持解码器 asoutput 新增 ext 参数v2.1.11 让 JSP 类型支持「解码器」同时「解码器」asoutput新增传入参数ext结构如下{ opts: opts: 类型为 Object, Shell 配置 }也就是说解码器的asoutput(ext)也能读取当前 shell 配置了与编码器 v2.1.2 的增强对齐。解码器体系因此具备根据 shell 配置动态生成服务端编码函数的能力。6.2 default 编码器与数据分割解析冲突修复日志给出一个经典问题场景?php phpinfo();eval($_POST[ant]);phpinfo();?因为phpinfo();会显示发送的 payload而发送的 payload 中含有数据分割符导致分割出错。修复后 default 编码器在服务端其它函数输出 payload 时能正确解析数据。这提醒使用者避免在 WebShell 中输出回显请求 payload 本身。6.3 移除 random 编码器能够适配所有编码器的Shell比较少, 这个功能就略显鸡肋, 我们决定移除它random 编码器本意是每次请求随机选择一种编码器72变但因适配所有编码器的 Shell 较少而鸡肋。在 source/core/base.js 中可以看到被注释掉的 random 编码器实现代码印证了这一决策。6.4 窗口关闭逻辑优化v2.1.11 优化了窗口关闭逻辑值得作为使用习惯记录点击最小化时不再最小化至系统托盘。点击窗口的关闭按钮最小化至系统托盘。点击托盘菜单中的「退出」程序退出。点击菜单中的「退出程序」程序退出。七、v2.1.6随机变量名与流量侧能力集中落地7.1 数据分割符随机化与随机变量名v2.1.6 的核心更新数据分割字符随机化增强随机内容、随机长度 5~12 位避免客户端发包产生固定的Content-Length。新增antSword[RANDOMWORDS]全局变量存放英文单词如需定制字典请修改 source/base/words.js。新增antSword[utils]全局变量包含RandomChoice、RandomLowercase函数见 source/base/utils.js。发包随机变量名去除_0x通用变量前缀。核心模版发包键名支持随机英文单词。在 source/app.entry.js 中可以看到antSword[RANDOMWORDS] require(./base/words)与antSword[utils] require(./base/utils)的挂载。argv()source/core/base.js在use-random-variable开启时用RandomChoice从单词库选 6 个不重复单词作为模板变量名否则用RandomLowercase 随机hex生成小写变量名。7.2 「使用随机英文单词变量」配置Shell 管理新增该配置项后发包时非密码变量名会使用随机英文单词。未勾选时发包变量名是类似abc123的随机小写数字串勾选后变成有语义的英文单词。两者都服务于同一目的让发包看起来更像正常业务流量。7.3 插件生态SacnWebShell新增插件「SacnWebShell」通过正则匹配查找后门 webshell。这反映了蚁剑插件生态的两面性既能生成/连接 Shell也能扫描检测 Shell工具能力取决于使用者视角。八、更早版本的技术沉淀从 2.0.0 到 2.1.5 的关键机制8.1 v2.0.0加载器与插件体系奠基v2.0.0 是架构级转折点源代码加载器用户无需安装额外环境即可对源代码进行编辑、执行、调试可直接运行 v2.0-beta 的开发版和发行版源代码。插件模块在不修改核心框架的情况下增强功能端口扫描、Socks 代理、反弹 Shell、内网渗透、后门扫描等支持单个调用和批量调用。插件市场插件作者可将插件提交至市场分享。编码管理支持用户自定义编码器不再拘泥于自带 base64 与 chr。浏览网站解决需要 Cookie 或 Basic 认证站点的抓包痛点浏览后点「保存」自动把结果写入 Shell 设置。8.2 v2.0.3Multipart 发包与插件数据配置存储添加 Shell 时 URL 默认前缀http://根据文件后缀选择 Shell 类型并赋予默认编码asp 默认 GBK其它默认 UTF8。其它配置新增Multipart 发包功能默认关闭。源码 modules/request.js 中useMultipart分支通过替换_request.send _request.field让 superagent 以 multipart 方式发送键值对象。新增插件配置存储管理 APIshell-addPluginDataConf、shell-editPluginDataConf、shell-delPluginDataConf、shell-getPluginDataConf。8.3 v2.0.6分块传输与随机切割分块传输自动根据黑名单字符eg: eval, assert, execute, response 等进行随机切割。源码 modules/request.js 的AntRead类实现了这一逻辑_read()用blakwords /eval|assert|base64_decode|preg_replace|.../i正则匹配当前分块若命中则在特征词内部随机位置截断从而打散特征串。数据管理新增「测试连接」「检测」检测支持的数据库函数目前仅 PHP、ASP、ASPX 有效、phpsqlsrvSQLServer 2008host 填localhost或(local)外部用ip,port、oracle_oci8host 填localhost/orcl或localhost:1521/orcl、PostgreSQL、PostgreSQL_PDO 等连接方式。文件管理新增「在此处打开终端」「全局书签」数据管理新增「创建副本」「搜索数据」唤醒快捷键 CtrlShiftF 或 CommandShiftF。8.4 v2.0.7虚拟终端本地命令与语言扩展新增自定义命令aslistcmd列出可使用的命令解释器、aspowershell [on|off]开启/关闭 PowerShell 模式。源码 source/modules/terminal/index.js 中可见ashelp/aslistcmd/ascmd/aspowershell/aswinmode/asenv等本地命令的完整处理逻辑第 238~340 行。执行命令新增antsystem函数。新增「繁體中文(香港)」和「繁體中文(台灣)」两种语言对应源码 source/language/ 下的 zh_hk.js 与 zh_tw.js。8.5 v2.1.2编码器/解码器 ext 参数与 AES 加密组合v2.1.2 是编码器/解码器体系的重要增强编码器ext参数新增opts元素当前 shell 配置有了这个你就可以根据 shell 的配置信息来动态的进行加密了比如用 Cookie 里面的 SessionID 来作为秘钥。解码器新增ext参数用于获取 shell 配置和 rsa 私钥。支持加载用户自定义解码器与编码器一样以 PHP 为例加载位置为antData/encoders/php/decoder/。新增第三方库crypto-js3.1.9-1配合 nodejs 自带crypto库进行加解密package.json 中可确认该依赖。日志还给出了 AES 编码器/解码器的组合玩法请求包用 AES-256-CFB 编码器加密、返回包用 AES-128-ECB 解码器解密或反之你要不喜欢用 AES你想用什么就用什么——编码器体系完全开放。8.6 v2.1.1解码器诞生与 SQL 书签新增「解码器」目前仅支持 PHP作用是将返回数据包进行编码/加密新增 PHPbase64、rot13解码器source/core/php/decoder/rot13.js 展示了 rot13 编码函数的实现。修复__destruct类型 shell 时解码器不生效的 Bug——取消register_shutdown_function改为显式调用asoutput。数据管理添加 SQL 语句书签功能默认设置中可配置「全局书签」。8.7 v2.1.3解码器接口统一与更多编码器移除解码器decode_str方法统一调用decode_buff方法decode_str相当于decode_buff后调toString。解码器解码后增加猜解字符编码流程源码 modules/request.js 的detectEncoding用 jschardet 检测、confidence 低于 0.96 时回退默认编码。CUSTOM 类型新增hex、base64、hex_base64三种解码器hex_base64指 Shell 返回数据时先 base64 编码再 hex 编码。ASPX 新增url_unicode编码器将 pwd payload 全部转换成%uxxxx形式eg:Re%u0052%u0065。支持 HomeBrew 安装brew tap antswordproject/antsword→brew cask install antsword-loader→brew install antsword安装后运行 AntSword.app选择源码目录为/usr/local/opt/antsword。九、流量对抗机制全景从数据分割符到垃圾数据填充将各版本串联起来可以看到蚁剑在流量侧的对抗能力矩阵机制引入版本目的源码位置数据分割符随机化v2.0.2初版/ v2.1.6增强避免固定Content-Length与固定特征source/core/base.jscomplete()自定义数据分割符v2.1.8用户自定义起始符/结束符otherConf[use-custom-datatag]随机变量名v2.0.0减少请求特征source/core/base.jsargv()随机英文单词变量v2.1.6让变量名更接近正常业务流量source/base/words.js垃圾数据填充mass datav2.1.9使基于 nginx 二次开发的 WAF 取不到后续数据modules/request.jsbuildBody()addMassData分块传输v2.0.5规避按完整 body 检测的 WAFmodules/request.jsAntReadRAW Bodyv2.1.14只发纯 payload 不发键值use-raw-bodysupportRawBodyWebSocketv2.1.15换用 ws 协议传输ws:///wss://URL 判断终端分割符随机化v2.1.13对抗杀软特征匹配虚拟终端[S][E]→ 随机字符串垃圾数据填充v2.1.9值得单独说明该模块不会改变 payload仅填充垃圾数据部分基于 nginx 二次开发的 WAF 会因为过多参数导致 WAF 获取不到后面的数据从而达成 Bypass。在 modules/request.js 的buildBody中addMassData 1时会追加 150~250 个随机名5~15 位随机值200~250 字符的变量再经randomDict打乱顺序。十、从日志看插件生态与使用建议10.1 插件生态演进时间线v2.0.0端口扫描、生成 Shell、复制 Shell 配置、Shell 配置导入、超级终端、BugScan。v2.0.1LiveScanWebshell 存活检测仅 PHP/ASP/ASPX 有效一键将失联 Shell 移入[.Trash]。v2.0.4ASRedis 虚拟命令行。v2.1.0绕过 disable_functions、GodOfHacker。v2.1.3免杀 Shell 生成随机异或免杀 D 盾。v2.1.5check_rwx-suid查询可读可写可执行目录与 suid 提权文件、inject_und3ad。v2.1.6SacnWebShell。v2.1.10As-Exploits v1.1提权辅助、屏幕截图、shellcode 加载器、GenShell v0.2新增 asp/aspx/jsp 生成、AS_Redis v0.4支持 jsp、PortScan v0.3支持 jsp/php4、as_netstat v0.2。v2.1.12GenShell v0.4兼容 JSP Template v1.6。v2.1.13ExecuteScript/GenShell/PortScan/Out-of-Network 支持 JSPJS。插件支持的通配符机制v2.1.9插件 package.json 中 scripts 设置为*可被所有类型调用。10.2 给使用者的几条实操建议升级后注意插件兼容性v2.1.7 全局 HTML 转义、v2.1.13 open_basedir 绕过、v2.1.16 noxssTerminal 等安全/机制变更都明确提示会影响插件使用请及时更新或重装插件。编码器/解码器是定制化核心默认 WebShell 流量特征明显如 JSPJS 默认 Shell生产环境建议自研或使用社区编码器并与 WebShell 端配对部署。RAW Body Content-Type 配套使用命令执行类 Shell 需要纯 XML/纯 payload 报文时开启 RAW Body 并同步设置正确的 Content-Type如text/xml。新功能有类型适配进度FileHash、WebSocket、RAW Body 等都标注了当前支持的类型范围使用前先确认自己的连接类型是否在支持列表内。数据与配置存放位置用户自定义编码器/解码器位于antData/encoders/type/encoder|decoder/目录数据存储为antData/db.ant见 modules/config.js。结语通过梳理 CHANGELOG.md 并结合仓库源码可以看到中国蚁剑的技术演进遵循一条清晰主线连接类型多元化PHP/ASP/ASPX → JSP/JSPJS/CMDLinux/PSWindows/PHPRAW/ASPXCSharp、流量侧持续随机化与定制化分割符/变量名/分块/RAW/WebSocket、安全模型逐步收紧XSS 全局转义、终端专项过滤、开放生态持续扩张编码器/解码器/插件。理解这些版本的为什么比记住是什么更能帮助使用者与二次开发者掌握蚁剑的设计哲学——把 WebShell 连接这件事做成一套可插拔、可定制、可对抗的工程体系。赞分享网络安全渗透测试桌面应用【免费下载链接】antSword中国蚁剑是一款跨平台的开源网站管理工具。AntSword is a cross-platform website management toolkit.项目地址https://gitcode.com/gh_mirrors/an/antSword点击查看免费下载相关推荐中国蚁剑AntSword项目教程中国蚁剑AntSword项目教程 1. 项目的目录结构及介绍 中国蚁剑AntSword是一个跨平台的开源网站管理工具。以下是其主要目录结构及其功能介绍网络安全渗透测试桌面应用SCRFD 人脸检测实战手册0.5M 参数模型 3.6ms 推理从零跑通实时检测SCRFD 人脸检测实战手册0.5M 参数模型 3.6ms 推理从零跑通实时检测 SCRFD 人脸检测是 InsightFace 里专门解决精度和速度不能人工智能计算机视觉深度学习中国蚁剑AntSword安装和配置指南中国蚁剑AntSword安装和配置指南 1. 项目基础介绍和主要的编程语言 项目基础介绍 中国蚁剑AntSword是一款跨平台的开源网站管理工具主要用网络安全渗透测试桌面应用上一篇开源项目Awesome Bootstrap Checkbox 指南及常见问题解答下一篇如何快速修复Atlas OS中Xbox登录错误0x89235107的完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Spring Data Multi-store 实战:JPA 与 MongoDB 共存时仓库的严格自动分配机制

Spring Data Multi-store 实战:JPA 与 MongoDB 共存时仓库的严格自动分配机制

示例工程 【免费下载链接】spring-data-examples Spring Data Example Projects 项目地址: https://gitcode.com/gh_mirrors/sp/spring-data-examples 点击查看 免费下载 本指南以 spring-data-examples 仓库中的 multi-store 示例为骨架,讲解在一个应用…

2026/10/15 1:56:09 阅读更多 →
QGroundControl GeoMap 引擎深度解析:基于 Qt Quick 3D 的 2D/3D 高程地形地图实现

QGroundControl GeoMap 引擎深度解析:基于 Qt Quick 3D 的 2D/3D 高程地形地图实现

无人机智能硬件 【免费下载链接】qgroundcontrol Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows) 项目地址: https://gitcode.com/gh_mirrors/qg/qgroundcontrol 点击查看 免费下载 导读 GeoMap 是 QGroundControl&am…

2026/10/15 1:56:09 阅读更多 →
蓝鲸配置平台 bk-cmdb 开源社区参与指南:从 Issue 提报到 Pull Request 合并的完整贡献流程

蓝鲸配置平台 bk-cmdb 开源社区参与指南:从 Issue 提报到 Pull Request 合并的完整贡献流程

后端企业应用运维 【免费下载链接】bk-cmdb 蓝鲸智云配置平台(BlueKing CMDB) 项目地址: https://gitcode.com/gh_mirrors/bk/bk-cmdb 点击查看 免费下载 蓝鲸配置平台(BlueKing CMDB,bk-cmdb)是蓝鲸智云开源的一款企业级配置管理…

2026/10/15 1:56:09 阅读更多 →

最新新闻

Americhem在中国苏州启用全新洁净配混设施

Americhem在中国苏州启用全新洁净配混设施

全球定制聚合物解决方案领导者Americhem于9月28日举行了其位于苏州的全新洁净配混设施启用仪式。此项投资进一步提升了Americhem服务中国、亚太地区以及在该区域开展生产制造业务的全球客户的能力。 该设施专为满足严苛医疗器械应用所需的ISO 13485和cGMP要求而设计&#xff0c…

2026/10/15 2:28:21 阅读更多 →
如何降低文献综述的AI检测率:策略与技巧

如何降低文献综述的AI检测率:策略与技巧

1. 文献综述写作中的AI检测率问题剖析最近在学术圈里有个现象特别有意思:不少研究生朋友在提交论文查重时,发现文献综述部分的AI检测率总是居高不下。上周就遇到个案例,某高校硕士生小张的文献综述AI率竟然高达38%,远超过学院规定…

2026/10/15 2:28:21 阅读更多 →
青岛栈桥12家老字号美食攻略与避坑指南

青岛栈桥12家老字号美食攻略与避坑指南

1. 青岛栈桥美食地图:本地人私藏的12家老字号青岛栈桥作为城市地标,周边隐藏着许多经营数十年的地道美食。这些店铺往往没有华丽的装潢,却用最朴实的味道征服了几代食客的味蕾。我作为在青岛生活15年的"老饕",今天要分享…

2026/10/15 2:28:21 阅读更多 →
AI辅助科研:驱动科研创新升级的新动能与实践路径

AI辅助科研:驱动科研创新升级的新动能与实践路径

外文文献“白嫖”与高效阅读全攻略 宝子们,是不是一提到下载外文文献就头大? 想找的文献要么全网搜不到,要么下载流程复杂到让人原地爆炸。好不容易在某个小网站找到了资源,又担心版权问题不敢点,更别说有些平台动辄几…

2026/10/15 2:28:21 阅读更多 →
毕业设计-基于微信小程序的广州旅游服务系统

毕业设计-基于微信小程序的广州旅游服务系统

第1章 绪论:背景(政策/市场/技术/广州产业四方面) 国内外现状 目的意义(提升体验/促进产业/创新模式/智慧城市) 第2章 技术介绍:B/S、Uni-app、MySQL、Django、Vue 第3章 分析与设计:用户/系统…

2026/10/15 2:28:21 阅读更多 →
程序员英语词汇宝典词条精讲:exclamation mark(感叹号 `!`)——发音、词义与编程实战用法

程序员英语词汇宝典词条精讲:exclamation mark(感叹号 `!`)——发音、词义与编程实战用法

教程 【免费下载链接】most-frequent-technology-english-words 程序员工作中常见的英语词汇 项目地址: https://gitcode.com/gh_mirrors/mo/most-frequent-technology-english-words 点击查看 免费下载 本文以开源仓库 most-frequent-technology-english-words&am…

2026/10/15 2:27:21 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →