sai-teja-girimaji/bfsi-banking-trojan-detections

GitHub: sai-teja-girimaji/bfsi-banking-trojan-detections

一个将银行木马威胁情报转化为多平台检测规则的开源项目,覆盖Banana RAT、TrickMo和TCLBANKER三类恶意软件。

Stars: 0 | Forks: 0

# bfsi-银行木马检测 [![验证检测规则](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5e5f7805af200305.svg)](https://github.com/sai-teja-girimaji/bfsi-banking-trojan-detections/actions/workflows/validate-sigma.yml) ![规则](https://img.shields.io/badge/detection_rules-6-blue) ![平台](https://img.shields.io/badge/platforms-Sigma%20%7C%20Sentinel%20%7C%20Chronicle-success) ![ATT&CK](https://img.shields.io/badge/MITRE%20ATT%26CK-mapped-red) ![威胁](https://img.shields.io/badge/threats-3-orange) ![许可证](https://img.shields.io/badge/license-MIT-lightgrey) ## 概述 本存储库将三个银行木马威胁情报转化为可部署的检测规则。每个威胁均来自威胁预警源,其指标通过 **Google Threat Intelligence(GTI / VirusTotal)** 进行丰富,最终检测逻辑以三种形式发布: - **Sigma** — 供应商中立源规则(规范检测逻辑)。 - **Microsoft Sentinel** — ARM 分析规则模板(KQL),包含实体映射、MITRE 元数据、动态告警标题和事件分组。 - **Google SecOps / Chronicle** — 基于 UDM 的 YARA-L 2.0 规则,以及参考列表。 此处所有内容均为 **防御性** 内容:用于识别攻击者活动,供 SOC 检测和威胁狩猎。IOC 已去敏。 ## 涵盖的威胁 | # | 威胁 | 行为者/操作者 | 平台 | 主要地理区域 | 严重性 | |---|--------|------------------|----------|-------------------|----------| | 1 | **Banana RAT** | SHADOW-WATER-063(经济动机) | Windows | 巴西(银行 + 加密货币) | 高 | | 2 | **TrickMo(Coper 血统)** | 未归属团伙 | Android | 法国、意大利、奥地利 | 高 | | 3 | **TCLBANKER** | 未归属(巴西操作者) | Windows (.NET) | 巴西(59 个金融域名) | 高 | ### 1. Banana RAT — *SHADOW-WATER-063* 一个出于经济动机的行为者使用 Banana RAT 银行木马攻击巴西金融机构和加密货币平台。通过钓鱼诱饵和恶意批处理文件投递,随后执行 **PowerShell 无文件加载**,从行为者 C2 拉取分段载荷(`st.txt`、`payload.php`)。能力:银行覆盖层、二维码拦截、键盘记录、剪贴板窃取和远程访问。 ### 2. TrickMo(Coper 血统) 一个 Android 银行木马变种,针对银行、金融科技、钱包和身份验证器应用用户。其特点为采用 **基于 TON 的 C2**、运行时加载模块、SSH 隧道和 SOCKS5 代理的重新设计架构,将受感染手机转变为网络跳板。以伪装成热门应用(如 `TikTok18.apk`)的侧载 APK 形式分发。 ### 3. TCLBANKER 一个高级 **.NET 银行木马**,使用环境门控执行来逃避沙箱,攻击 59 个巴西金融域名。利用 WPF 覆盖层框架进行实时社会工程,通过伪装成 Logitech 插件的二进制文件(`screen_retriever_plugin.dll`)进行 **DLL 侧载**,并通过劫持 WhatsApp 和 Outlook 会话进行自我传播。 ## 存储库结构 ``` bfsi-banking-trojan-detections/ ├── README.md ├── sigma/ # vendor-neutral source rules │ ├── banana_rat_powershell_c2.yml │ ├── trickmo_apk_sideload.yml │ ├── tclbanker_dll_sideload.yml │ ├── fin_c2_domains_dns.yml │ ├── banana_rat_c2_ip.yml │ └── fin_known_hashes.yml ├── sentinel/ # ARM analytics-rule templates (KQL) │ ├── 01-banana-rat-powershell-c2.json │ ├── 02-trickmo-apk-sideload.json │ ├── 03-tclbanker-dll-sideload.json │ ├── 04-c2-domains-dns.json │ ├── 05-banana-rat-c2-ip.json │ └── 06-known-hashes.json ├── chronicle/ # Google SecOps YARA-L 2.0 rules │ ├── 01_banana_rat_powershell_c2.yaral │ ├── 02_trickmo_apk_sideload.yaral │ ├── 03_tclbanker_dll_sideload.yaral │ ├── 04_fin_c2_domains_dns.yaral │ ├── 05_banana_rat_c2_ip.yaral │ ├── 06_fin_known_hashes.yaral │ └── reference_lists/ │ └── fin_bt_hashes.txt ├── iocs/ │ └── iocs.csv # defanged indicators + GTI verdicts └── attack-navigator/ # MITRE ATT&CK Navigator layer JSONs ├── enterprise-coverage.json └── mobile-coverage.json ``` ## 检测规则 | 规则 | 检测内容 | 日志源(Sentinel / Chronicle) | 置信度 | |------|-----------------|-----------------------------------|------------| | `banana_rat_powershell_c2` | PowerShell 从 C2 拉取 Banana RAT 载荷 | DeviceProcessEvents / PROCESS_LAUNCH | 高 | | `trickmo_apk_sideload` | 通过代理下载 TikTok 主题 APK | CommonSecurityLog / NETWORK_HTTP | 中(狩猎) | | `tclbanker_dll_sideload` | 伪造 `screen_retriever_plugin.dll` 侧载 | DeviceImageLoadEvents / module load | 高 | | `fin_c2_domains_dns` | 解析 3 个 C2/分段域名 | DnsEvents / NETWORK_DNS | 高 | | `banana_rat_c2_ip` | 出站到 Banana RAT C2 IP | DeviceNetworkEvents / NETWORK_CONNECTION | 高 | | `fin_known_hashes` | 8 个已知样本哈希中的任意一个 | union / file+process sha256 | 高 | 每条规则都包含作者、描述、参考资料、严重性和 ATT&CK 元数据。 Sentinel 规则额外包含 **实体映射**(主机、账户、IP、URL、DNS、文件、文件哈希、进程)、`alertDetailsOverride` 用于动态标题、`customDetails`(预警 + 威胁行为者),以及基于所有实体的事件分组。 ## MITRE ATT&CK 覆盖范围 图例:✅ 由本存储库规则检测 · ⬚ 威胁已记录但尚覆盖(狩猎缺口)。 ### Banana RAT(SHADOW-WATER-063) | 技术 | 名称 | 战术 | 覆盖 | |-----------|------|--------|:------:| | T1059.001 | PowerShell | 执行 | ✅ | | T1105 | 入口工具传输 | 命令与控制 | ✅ | | T1071.001 | Web 协议(C2 域名) | 命令与控制 | ✅ | | T1571 | 非标准端口 / 直接 C2 IP | 命令与控制 | ✅ | | T1204.002 | 恶意文件(哈希) | 执行 | ✅ | | T1566 | 钓鱼 | 初始访问 | ⬚ | | T1053.005 | 计划任务 | 持久化 | ⬚ | | T1056.001 | 键盘记录 | 收集 | ⬚ | | T1115 | 剪贴板数据 | 收集 | ⬚ | | T1055 | 进程注入 | 防御规避 | ⬚ | ### TrickMo(Coper) | 技术 | 名称 | 战术 | 覆盖 | |-----------|------|--------|:------:| | T1566 / T1660(移动) | 钓鱼(APK 投递) | 初始访问 | ✅ | | T1204.002 | 恶意文件(哈希) | 执行 | ✅ | | T1572 | 协议隧道(SSH) | 命令与控制 | ⬚ | | T1090 | 代理(SOCKS5) | 命令与控制 | ⬚ | | T1417 | 输入捕获 | 收集 | ⬚ | | T1513 | 屏幕捕获 | 收集 | ⬚ | ### TCLBANKER | 技术 | 名称 | 战术 | 覆盖 | |-----------|------||:------:| | T1574.002 | DLL 侧载 | 防御规避 | ✅ | | T1036.001 | 无效代码签名 | 防御规避 | ✅ | | T1071.001 | Web 协议(C2 域名) | 命令与控制 | ✅ | | T1204.002 | 恶意文件(哈希) | 执行 | ✅ | | T1497 | 沙箱规避 | 防御规避 | ⬚ | | T1055 | 进程注入 | 防御规避 | ⬚ | | T1113 | 屏幕捕获 | 收集 | ⬚ | ### 交互式 ATT&CK Navigator 层 在 [MITRE ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) 中可视化覆盖范围 — 选择 **Open Existing Layer → Upload from local** 并选择以下文件。 | 层 | 矩阵 | 内容 | |-------|--------|----------| | [`attack-navigator/enterprise-coverage.json`](attack-navigator/enterprise-coverage.json) | 企业 | Banana RAT + TCLBANKER — 检测到 7 个技术,1 个部分/狩猎,16 个已记录缺口 | | [`attack-navigator/mobile-coverage.json`](attack-navigator/mobile-coverage.json) | 移动 | TrickMo / Coper — 14 个已记录 TTP,全部为检测缺口(需要 MTD/EMM 遥测) | 颜色图例:🟩 由存储库规则检测 · 🟧 狩猎级启发式 · 🟥 已记录 TTP,检测缺口。 ## IOC 来源与丰富 **来源管道:** 威胁预警源 → IOC 提取 → **GTI/VirusTotal** 判定检查 → 检测编写。以下指标已去敏。 | 指标 | 类型 | 威胁 | GTI 判定 | 备注 | |-----------|------|--------|-------------|-------| | `24.199.90.58` | IPv4 | Banana RAT | 🔴 13/91 恶意 | DigitalOcean;载荷主机(`/payload.php`、`/st.txt`) | | `162.141.111.227` | IPv4 | Banana RAT | 🔴 13 恶意 + 3 可疑 | LACNIC/巴西;C2 | | `c.windowsk-cdn[.]com` | 域名 | Banana RAT | 🔴 17 恶意 | 标记为 **DGA**;NRD 2026-04-19 | | `38dfeb…06e39d8f` | SHA256 | Banana RAT | 🔴 21/61(`trojan.boxter`) | PowerShell 下载器(`st.txt`) | | `d7545b…6a70cdaa` | SHA256 | Banana RAT | ⚪ 来自预警源 | 未单独重新验证 | | `01889a…63aa8c21` | SHA256 | TrickMo | 🔴 21 恶意(banker/dropper) | `TikTok18.apk`;伪造华为证书 | | `143c0e…0119c026` | SHA256 | TrickMo | 🔴 18 恶意(`trojan.coper`) | `data.apk` | | `arquivos-omie[.]com` | 域名 | TCLBANKER | 🔴 19 恶意 + 3 可疑 | NRD 2026-04-15;使用 Cloudflare 前置 | | `doccompartilhe[.]com` | 域名 | TCLBANKER | 🔴 19 恶意 + 3 可疑 | 多厂商恶意分类 | | `701d51…4995b626` | SHA256 | TCLBANKER | 🔴 46/71;Elastic YARA 匹配 | 伪造 "Logitech Inc" 签名 | | `8a174a…eb537059` | SHA256 | TCLBANKER | ⚪ 来自预警源 | 未单独重新验证 | | `668f93…52342f40` | SHA256 | TCLBANKER | ⚪ 来自预警源 | 未单独重新验证 | | `63beb7…2d900394` | SHA256 | TCLBANKER | ⚪ 来自预警源 | 未单独重新验证 | 完整机器可读指标(含首次出现时间、ASN、注册商)位于 [`iocs/iocs.csv`](iocs/iocs.csv)。 ## 快速开始 ### Microsoft Sentinel ``` for f in sentinel/*.json; do az deployment group create -g \ --template-file "$f" --parameters workspaceName= done ``` 模板假设使用 Defender XDR(MDE)表 + DNS 和 CEF 连接器。如果您的遥测数据不同,请替换为 `SecurityEvent`/Sysmon 等效项。 ### Google SecOps / Chronicle 1. 从 `chronicle/reference_lists/fin_bt_hashes.txt` 创建一个 **STRING** 类型参考列表 `fin_bt_hashes`。 2. 导入每个 `chronicle/*.yaral` 规则并设置为 Live(并根据需要添加告警)。 ### Sigma(转换为任意后端) ``` sigma convert -t -p sigma/*.yml ``` ## 验证状态 | 项目 | 状态 | |------|--------| | Sentinel ARM 模板 | JSON 验证通过 | | KQL 反斜杠/转义 | 已确认往返无误 | | Chronicle YARA-L 语法 | 按照 YARA-L 2.0 编写;请在您的租户中验证 | | IOC 判定 | 2026-05-25 经 GTI 检查(见表格了解重新验证范围) | ## 免责声明 仅供 **防御性安全和检测工程** 使用。规则为起点:请根据自身数据验证并在生产环境中启用前调整阈值。对特定环境的完整性或适用性不作任何担保。 ## 许可证 MIT — 参见 [`LICENSE`](LICENSE)。 *情报来自威胁预警源;指标通过 Google Threat Intelligence 丰富。检测内容作为检测工程输出撰写。*
标签:AI合规, Android, ATT&CK框架, Banana RAT, BFSI, DSL, Google SecOps, IOC, KQL, Microsoft Sentinel, SHADOW-WATER-063, Sigma规则, TCLBANKER, TrickMo, YARA-L, 多人体追踪, 奥地利, 威胁情报, 安全运营, 巴西, 开发者工具, 开源检测, 恶意软件, 意大利, 扫描框架, 检测即代码, 检测规则, 法国, 目标导入, 网络资产发现, 金融威胁, 金融欺诈, 银行业木马, 银行金融服务