xctrailer7331/akif-hitter-analysis

GitHub: xctrailer7331/akif-hitter-analysis

一份针对恶意 Chrome 扩展 Akifs Hitter V2 的威胁分析与防御指南,提供 IOC 与检测规则。

Stars: 0 | Forks: 0

# Akif 的 Hitter V2 —威胁分析与防御指南 ## 范围与意图 本仓库: - ✅ 从**高层次**描述威胁(做什么、针对谁) - ✅ 发布**检测资产**:YARA 规则、IOC 列表、Chrome 阻断策略 - ✅ 提供受影响用户的**移除指南** - ✅ 提供 Stripe / hCaptcha / Chrome 的**负责任披露模板** - ✅ 提供已解混淆的源代码 - ❌ **不是**逐函数讲解 - ❌ **不是**“如何构建你自己的”教程 我的目标是帮助防御者和受害者,而不是为攻击者提供提升价值。 ## 目录 1. [这是什么威胁](#what-is-the-threat) 2. [它如何传播](#how-it-spreads) 3. [它做什么(高层次)](#what-it-does-high-level) 4. [它伤害谁](#who-it-hurts) 5. [技术摘要](#technical-summary) 6. [我是如何发现并分析它的](#how-i-found-and-analyzed-it) 7. [完整解混淆 walkthrough](docs/how-i-deobfuscated.md) 8. [IOC 与检测](#iocs-and-detection) 9. [企业策略阻断](#blocking-enterprise-policy) 10. [受害者移除指南](docs/removal-guide.md) 11. [负责任披露](disclosure/) 12. [贡献](#contributing) ## 什么是威胁 **Akifs Hitter V2** 是一个恶意的 Chrome 扩展,我通过 Telegram 频道发现它被分享。它**未通过 Chrome 网上应用店分发**——用户需在开发者模式下手动加载 `chrome://extensions/`。加载后,它会: - 注入 **Stripe 结账** 页面(`checkout.stripe.com` 和 `cs_(live|test)_*` 会话 URL) - 通过模拟指针/鼠标事件序列绕过 **hCaptcha** 挑战 - **自动填充并提交**窃取到的卡数据,批量进行 - 将结果外泄到操作者控制的 **Telegram 机器人** - 通过**轮换代理池**路由卡测试流量以规避速率限制/地理围栏 这类工具在地下社区中被称为“checkers”或“hitters”。它们通过测试被盗信用卡是否仍有效来运作——在本例中是对 Stripe 支付处理器发起小额真实扣款。 **在扩展自身中发现的命名指纹:** - `manifest.json` → `"name": "Akifs Hitter"`,`"description": "Akif's System - Special For Stripe Checkouts"` - `welcome.html` → Telegram 邀请链接 `https://t.me/akifshitter` - UI 文本 → “AKIF HITTER V2”,“Paid Successfully ✓” - 运行时命名空间 → `window.__AKIF_HCAPTCHA_LOADED`,CSS 类前缀 `akif-*` ## 它如何传播 我直接观察到的分发渠道: - **Telegram** 群组与频道(邀请 `@akifshitter` 硬编码在扩展欢迎界面) - **地下论坛**——有时与教程视频配对 - **不在 Chrome 网上应用店**——其清单与权限配置明显违反商店策略 安装需要用户启用 `chrome://extensions/` 的“开发者模式”并加载未打包的扩展。因此用户通常是操作者本人,或被以“免费高级订阅 / 自动申领工具”等承诺欺骗的钓鱼受害者。 ## 它做什么(高层次) 通过**可观测行为**而非源代码来描述: ### 1) 劫持 Stripe 结账 DOM 扩展注册内容脚本,匹配 `checkout.stripe.com` 和 Stripe 结账会话 URL。它使用 `declarativeNetRequest` 规则移除 Stripe 页面的 `Content-Security-Policy` 与 `X-Frame-Options` 标头,允许结账被嵌入并从扩展自身 UI 程序化驱动。 ### 2) 批量测试已窃取卡 操作者以 `card|mm|yy|cvv` 格式粘贴卡列表。对每张卡,扩展会: - 填写 Stripe 支付表单 - 如存在则解决 hCaptcha - 提交支付 - 将结果标记为成功 / 失败 / 需要 3DS ### 3) 外泄结果 成功命中以 HTML 格式通过 `api.telegram.org/bot/sendMessage` 发送至 `api.telegram.org/bot/sendMessage`。机器人令牌与聊天 ID 由**操作者在设置时提供**——它们并未硬编码,因此每个副本报告给不同的操作者。 ### 4) 轮换代理隐藏源 IP 动态生成 PAC(Proxy Auto-Config)脚本。**仅**目标域名(Stripe、hCaptcha、IP 检测服务)的流量通过代理——其余走直连。这既为了效率,也保持操作者正常浏览不受污染。 ### 5) 收割商户可发布密钥 访问的任意页面都会被扫描 Stripe 可发布密钥(`pk_live_*` / `pk_test_*`)。这些可用于尝试向*其他人的* Stripe 商户账户发起扣款——意味着退单、欺诈标记与账户审查会落在第三方商户身上,而非操作者。 ### 6) BIN 丰富化 每张卡的前 6 位(BIN)会被查询 `lookup.binlist.net` 以获取发卡行、卡类型与国家。这些信息包含在 Telegram 外泄消息中,以便操作者对结果进行分级。 ### 7) 屏幕 UI 每次尝试都会在受害者浏览器中弹出 Toast 通知。独特 CSS 类:`akif-toast-v5`、`akif-cyber-toast`、`akif-filter-chip`、`akif-clear-chip`、`card-toast`。标题包括 “AKIF HITTER V2” 与 “Paid Successfully ✓”。 ## 它伤害谁 | 角色 | 影响 | |---|---| | **持卡人** | 未经授权的扣款尝试;账户被置于欺诈冻结中 | | **Stripe 商户** | 若其 `pk_live_*` 从自身站点被收割,其账户将承担退单、Radar 处罚与账户审查 | | **Stripe** | 平台级欺诈噪音,侵蚀商户信任,消耗风控团队资源 | | **hCaptcha 及其使用者** | 自动化点击破解技术传播到其他滥用场景 | | **安装者本人** | 往往也被利用——Telegram 凭证由工具的**操作者**控制,而非安装者,因此“命中”产生的数据被外泄到操作者。安装者提供其 IP 地址,并在被追责时独自承担法律风险。 | ## 技术摘要 **扩展布局:** - Manifest V3 - 请求的权限:`storage, activeTab, scripting, declarativeNetRequest, declarativeNetRequestWithHostAccess, offscreen, downloads, clipboardWrite, tabs, webNavigation, alarms, proxy, webRequest, webRequestAuthProvider` - 主机权限:``——可读取并修改用户访问的每个网站 - 8 个 JavaScript 文件,约 7.5 MB(解混淆前) **混淆(四层):** 1. [obfuscator.io](https://obfuscator.io/) 字符串数组 + 别名解码器 2. 作者添加的 VM 封装(`__akifVM_`):逆向 + Base64 + 异或(使用旋转的每索引密钥),加上反篡改(虚假方法名、故意无效的 Base64 块) 3. 控制流扁平化转发对象 4. 十六进制混淆标识符(`_0x1a2b3c` 随处可见) 5. 自防御 `while(!![])` 旋转循环 有关这些技术的通用概述,请参见 [`docs/obfuscation-overview.md`](docs/obfuscation-overview.md)。该文档描述的是**混淆类别**,而非本样本的逐步骤解混淆。 ## 我是如何发现并分析它的 该扩展通过我圈子中的一人通过 Telegram 分享而出现。我提取了文件夹并首先查看 `manifest.json`: - 权限列表读起来像浏览器欺诈检查清单(`proxy`、`webRequest`、`webRequestAuthProvider`、`declarativeNetRequest`、``) - `rules.json` 明确从 Stripe 结账中移除 CSP 与 X-Frame-Options——合法扩展无需此操作 - 硬编码的 Telegram 手柄 `@akifshitter` 与名称中的 “hitter” 是地下工具的标志 - `inject.js` 单独就 5.9 MB——普通扩展不会这么大 我在隔离环境(一次性虚拟机、受限网络、仅日志记录)中进行分析。我的高层次流程: 1. 记录清单、权限、规则 2. 识别四层混淆 3. 编写基于 AST 的解混淆工具(本地实现)——`obfuscator.io` 别名解码器会触发现成工具如 `webcrack` 与 `synchrony` 的错误 4. 针对作者的 VM 封装:在 Node `vm` 沙箱中执行,故意缺失 `TextDecoder` 以避开反篡改的虚假方法陷阱 5. 发现两个包含非标准字母表的 Base64 块——反分析污染,`atob`(严格)会拒绝,但 `Buffer.from(s, 'base64')`(宽松)会静默接受,代价是围绕注入字符的字节被破坏 6. 将控制流转发器扁平化到固定点,作用域感知重命名十六进制标识符 7. 提取 IOC 与行为模式 **完整流程 walkthrough**——包括死胡同、反篡改陷阱与经验教训——在 [`docs/how-i-deobfuscated.md`](docs/how-i-deobfuscated.md) 中。这是面向大众的概述与教育内容,**不是**逐步复现食谱。 **我不会发布解混淆工具。** 它是为该样本特定模式定制的,发布会给技术较低的 attackers 提供可用的 “解锁” 工具链。通用解混淆器(webcrack、synchrony)已存在用于涉及的混淆类别。 **我不会发布解混淆后的源代码。** 同样的理由:解混淆后的代码可作为可直接使用的副本被任何人 `git clone`。对社区具有防御价值的是 IOC 与检测规则,我将完整提供。 ## IOC 与检测 ### 完整列表 - [`iocs/domains.txt`](iocs/domains.txt) — 所有被引用或目标的域名 - [`iocs/urls.txt`](iocs/urls.txt) — 完整 URL(端点) - [`iocs/message-types.txt`](iocs/message-types.txt) — `chrome.runtime.sendMessage` 类型字符串 - [`iocs/regex-patterns.txt`](iocs/regex-patterns.txt) — 工具使用的特征正则表达式 - [`iocs/iocs.json`](iocs/iocs.json) — 可用于 SIEM / MIST 导入的结构化 JSON - [`detection/akif-hitter.yar`](detection/akif-hitter.yar) — 用于扫描扩展文件夹 / 存档的 YARA 规则 ### 重点 **域名(硬编码在工具的 PAC 目标列表中):** ``` stripe.com, *.stripe.com stripe.network, *.stripe.network stripecdn.com, *.stripecdn.com link.com, *.link.com hcaptcha.com, *.hcaptcha.com api.ipify.org ipinfo.io ifconfig.me lookup.binlist.net api.telegram.org (exfil endpoint) t.me/akifshitter (community/distribution link) ``` **chrome.runtime 消息类型(该扩展独有):** ``` AKIF_HIT_SEND AKIF_GET_CURRENT_IP AKIF_PROXY_TEST TELEGRAM_SEND TELEGRAM_SEND_DIRECT PROXY_FETCH BACKGROUND_FETCH CAPTURE_SCREENSHOT SET_ACTIVE_PROXY CLEAR_ACTIVE_PROXY UPDATE_GLOBAL_PROXY_LIST PLAY_SUCCESS_SOUND PLAY_BACKGROUND_MUSIC ``` **可见 UI 痕迹(在受感染浏览器标签页上):** ``` CSS classes: akif-toast-v5, akif-cyber-toast, akif-filter-chip, akif-clear-chip, akif-progress-bar-v5, card-toast, logout-square-btn, header-controls data attrs: data-f="all|success|error" data-clear="history" window prop: window.__AKIF_HCAPTCHA_LOADED text: "AKIF HITTER V2", "Paid Successfully ✓", "Clear logs", "akifshitter" ``` **文件级指纹:** - `manifest.json`:`"name": "Akifs Hitter"` 且 `"description": "Akif's System - Special For Stripe Checkouts"` - `welcome.html`:Telegram 邀请 `https://t.me/akifshitter` - `rules.json`:三个 `declarative_net_request` 规则,从 Stripe 结账中移除 CSP 与 X-Frame-Options ## 阻断(企业策略) **Chrome 企业版 / 管理环境:** 请参见 [`detection/chrome-policy-block.md`](detection/chrome-policy-block.md)。由于每个副本加载时都会获得新的扩展 ID,基于 ID 的阻止列表较弱。应通过 (a) 禁止开发者模式加载扩展、(b) 在端点代理上部署 YARA 扫描、(c) 告警 `chrome.runtime` 消息类型或上述 CSS 类来阻断。 **家庭用户:** 检查 `chrome://extensions/` 是否存在名为 “Akifs Hitter”、“Akif's System” 或任何加载的未打包扩展,同时请求 `proxy` + `webRequest` + `declarativeNetRequest` + `` 权限组合。发现后立即移除。完整移除指南:`docs/removal-guide.md` ## 负责任披露 **Stripe** 通过 `security@stripe.com` 与 HackerOne 程序已收到通知: - 初始报告日期:2026-04-20 - 内容:清单、IOC 列表、高层行为摘要、PAC 目标列表 - 未共享源代码;Stripe 欺诈团队有自己的样本收集 模板:`disclosure/stripe-disclosure-template.md` **hCaptcha**(针对自动点击破解器):`security@hcaptcha.com` **Google Chrome 网上应用店团队**:`chromewebstore-developer-support@google.com`(尽管此样本不在商店中,但该团队会追踪类似项) 请参见 [`disclosure/`](disclosure/) 获取模板。 ## 联系方式 - **公开问题 / PR**:使用本仓库的 GitHub 问题追踪器 - **敏感报告、变种情报、直接提问**:`xctrailer7331@gmail.com` 请**不要**发送解混淆后的源代码或扩展的可用副本。如果您发现了新变种,请描述您所看到的(域名、文件哈希、传播渠道),而不是样本本身。 ## 许可证 [MIT 许可证](LICENSE) 适用于文档与检测规则。引用表示感谢。 ## 感谢 感谢 [obfuscator.io](https://obfuscator.io/)、[webcrack](https://github.com/j4k0xb/webcrack) 与 [synchrony / deobfuscator](https://github.com/relative/synchrony) 的维护者——理解主流解混淆器如何处理这些模式,是识别此处所用变体的基础。
标签:DNS信息、DNS暴力破解, DNS 解析, Homebrew安装, IOCs, IP 地址批量处理, SEO: Akif's Hitter, SEO: Stripe卡检测, SEO: 恶意扩展, Stripe卡测试, StruQ, YARA规则, 企业浏览器策略, 会话劫持, 信用卡盗刷, 卡号校验, 反自动化, 地下社区, 威胁分析, 开发者模式加载, 恶意Chrome扩展, 数据可视化, 流量代理, 浏览器注入, 漏洞靶场, 移除指南, 网络犯罪, 自动化侦查工具, 自定义脚本, 负责任披露, 配置审计, 防御检测