arsayeed2012/Anubis-Malware-Analysis
GitHub: arsayeed2012/Anubis-Malware-Analysis
对真实 Anubis Android 银行木马进行静态和动态分析,记录其 VPN 劫持、短信/2FA 拦截、下载器和终止开关等恶意行为。
Stars: 0 | Forks: 0
# ⚠️ 深入分析 Anubis:真实 Android 银行木马的静态与动态分析
🔗 **第一阶段(静态分析):** [DIVA-Security-Research](https://github.com/arsayeed2012/DIVA-Security-Research)
🔗 **第二阶段(动态分析):** [Frida-Dynamic-Analysis](https://github.com/arsayeed2012/Frida-Dynamic-Analysis)
## 📋 项目概述
本项目分析了一个来源于 [MalwareBazaar](https://bazaar.abuse.ch) 的**真实 Anubis 银行木马**。与项目 1-2 使用故意设计存在漏洞的训练应用不同,本项目针对的是曾主动从真实受害者窃取金钱和个人数据的恶意软件。
该恶意软件伪装为 **"RTO E CHALLAN"** —— 一款虚假的印度交通罚款支付应用。安装后,它会劫持所有网络流量,窃取基于短信的双因素认证码,并安装额外的恶意软件载荷。
### 样本信息
| 属性 | 值 |
|----------|-------|
| **家族** | Anubis(Android 银行木马) |
| **伪装** | RTO E CHALLAN — 虚假交通罚款应用 |
| **SHA256** | `d17d2f0ab340d52c83e59d3d7d6636d92e15f23a9a70b4f402c5af54cfc291af` |
| **MD5** | `081221240ad2f0d85f6612527941a617` |
| **大小** | 5.3 MB |
| **包名** | `com.tjmonh.android`(随机生成) |
| **标签** | Anubis, smishing, sms-stealer, vpn-hijacker |
| **来源** | MalwareBazaar(abuse.ch) |
## 🔍 关键发现
### 静态分析(Kali Linux)
| # | 发现 | 严重程度 | 来源 |
|---|---------|----------|--------|
| 1 | 通过 VpnService 劫持 VPN 流量 | 🔴 严重 | ServiceHandler.java |
| 2 | 通过 BroadcastReceiver 拦截短信/双因素认证 | 🔴 严重 | Receiver.java |
| 3 | 加载器 — 安装第二阶段恶意软件 | 🔴 严重 | L0/a.java |
| 4 | VPN 终止开关用于反取证 | 🟠 高 | L0/a.java |
| 5 | 虚假身份(com.tjmonh.android) | 🟡 中 | AndroidManifest.xml |
| 6 | 4 层反分析保护 | ℹ️ 信息 | 所有文件 |
| 7 | 67,013 个字符串 — 全部加密(无可读内容) | ℹ️ 信息 | 字符串提取 |
### 动态分析(隔离模拟器上的 Frida)
| # | 运行时事件 | 证明内容 |
|---|---------------|----------------|
| 2 | 请求 VPN 权限 | 恶意软件劫持所有流量 |
| 3 | `com.VpnService.android.START_VPN` | VPN 服务已启动 |
| 7 | `VPN_CONNECTED` | 流量拦截已确认 |
| 8 | `MANAGE_UNKNOWN_APP_SOURCES` | 尝试安装第二阶段载荷 |
| 12 | `com.VpnService.android.STOP_VPN` | 终止开关已激活 |
| 14 | `package = com.hsjjsjs.android` | 已识别第二阶段载荷 |
| 16 | `VPN_DISCONNECTED` | VPN 已停止(C2 无法连接) |
## 🔬 发现的反分析技术
| 技术 | 工作原理 | 证据 |
|-----------|-------------|----------|
| **字符串加密** | 所有字符串编码为 `short[]` 数字数组 | `private static final short[] f39short = {515, 524, 518...}` |
| **代码混淆** | 类/方法重命名为无意义的标识符 | `C0025`, `m168`, `f1720y` |
| **控制流混淆** | 逻辑隐藏在巨大的 switch 语句中 | Case 编号:56482, 1752517, 1753450 |
| **反反编译** | 代码复杂度超出 JADX 能力 | 多个方法显示 "Method dump skipped" |
## 🔄 攻击链(实时观察)
```
1. User installs fake "RTO E CHALLAN" app
↓
2. App requests VPN permission → user grants it
↓
3. VPN service activates (START_VPN) → hijacks ALL traffic
↓
4. VPN tunnel established (VPN_CONNECTED)
↓
5. Dropper attempts to download second payload → BLOCKED by airplane mode
↓
6. Opens MANAGE_UNKNOWN_APP_SOURCES to enable sideloading
↓
7. Saves second payload name: com.hsjjsjs.android
↓
8. Kill switch activates (STOP_VPN) → covers tracks
↓
9. VPN disconnects → malware enters dormant state
```
## ☁️ 云安全映射
| 恶意软件能力 | 云威胁 | 云防御 |
|-------------------|-------------|---------------|
| VPN 劫持 | 云 API 流量上的中间人攻击 | 证书固定,mTLS,零信任 |
| 短信拦截 | 绕过基于短信的多因素认证 | 硬件 MFA 密钥,身份验证器应用 |
| 加载器行为 | 多阶段云攻击 | GuardDuty, Security Hub, 事件响应 |
| 终止开关 | 渗透后的反取证 | 不可变 CloudTrail 日志,S3 对象锁 |
| 字符串加密 | 逃避恶意软件扫描 | 行为分析,沙箱检测 |
## 🛠️ 使用的工具
| 工具 | 平台 | 用途 |
|------|----------|---------|
| **JADX** | Kali Linux | APK 反编译 |
| **strings** | Kali Linux | 二进制字符串提取 |
| **grep** | Kali Linux | 基于模式的代码搜索 |
| **Frida 17.9.1** | Windows | 运行时插桩 |
| **Android Studio AVD** | Windows | 隔离模拟器(API 28,飞行模式) |
| **MalwareBazaar API** | Kali Linux | 认证后下载恶意软件样本 |
| **7-Zip** | 两者皆可 | AES 加密 ZIP 提取 |
## 🔒 安全措施
- 安装恶意软件前在模拟器上启用**飞行模式**
- **隔离模拟器** — 与主机操作系统隔离
- **无物理设备**暴露于恶意软件
- **受控分析** — 无法与 C2 通信
## 📁 仓库结构
```
├── README.md
├── hooks/
│ └── malware_monitor.js # Frida hook for runtime monitoring
├── static-analysis/
│ ├── manifest_analysis.md # AndroidManifest.xml breakdown
│ ├── code_analysis.md # Source code findings
│ └── string_analysis.md # String extraction results
├── report/
│ └── FINAL_Anubis_Malware_Analysis_Report.docx
└── LICENSE
```
## 📊 完整作品集
| 项目 | 目标 | 方法 | 难度 | 仓库 |
|---------|--------|----------|------------|------|
| **第一阶段** | 训练应用(DIVA) | 静态分析(JADX) | 初级 | [DIVA-Security-Research](https://github.com/arsayeed2012/DIVA-Security-Research) |
| **第二阶段** | 训练应用(DIVA) | 动态分析(Frida) | 中级 | [Frida-Dynamic-Analysis](https://github.com/arsayeed2012/Frida-Dynamic-Analysis) |
| **第三阶段** | 真实银行木马 | 静态 + 动态 | 专业级 | 本仓库 |
## ⚠️ 法律声明
本分析是在来源于 MalwareBazaar(abuse.ch)的已知恶意软件样本上进行的,MalwareBazaar 是一个合法的恶意软件研究平台。该样本在隔离环境中进行分析(启用了飞行模式的 Android 模拟器)。未访问任何未经授权的系统。本研究仅用于教育和作品集目的。
**除非您了解风险并拥有适当的隔离措施,否则请勿下载或运行恶意软件样本。**
## 👤 作者
**Saeed** — aspiring Cloud Security Engineer( aspiring 云安全工程师)
[](https://www.linkedin.com/in/a-r-sayeed-797831196)
标签:2FA绕过, Android安全, Android恶意软件分析, Anubis木马, DAST, Dropper, Frida动态分析, IP 地址批量处理, JADX反编译, JS文件枚举, SMS拦截, VPN劫持, 云安全监控, 双因素认证攻击, 反取证技术, 合规性检查, 威胁情报, 开发者工具, 恶意payload, 恶意软件分析, 恶意软件工程, 木马分析, 目录枚举, 短信窃取, 移动安全, 网络安全, 自定义脚本, 银行木马, 隐私保护, 静态分析