| 分类 | 标签 | 置信度 |
|---|---|---|
| 恶意类型 | IoT 僵尸网络 (现代 QUIC/TLS 1.3) | HIGH |
| 恶意家族 | Rust QUIC IoT Botnet | HIGH |
| 编译器 | Rust (ARM static-pie) | HIGH |
| 协议 | QUIC v1/v2 (HTTP/3) + TLS 1.3 | HIGH |
| 认证端点 | /api/login, /account/login, /auth/login | HIGH |
| 持久化 | systemd + crontab + init.d 三重持久化 | HIGH |
| 伪装 | 20+ 合法进程名伪装 + 5 种 UA 伪装 | HIGH |
| 目标平台 | Linux IoT/嵌入式 + Android | HIGH |
| 字段 | 值 |
|---|---|
| 关联组织 | 未知 APT (现代 Rust/QUIC 技术栈运营商) |
| 别名 | Rust QUIC Bot, quicv2 Botnet |
| 动机 | 构建 IoT 僵尸网络 → DDoS / 代理 / 数据窃取 |
| 目标行业 | 物联网设备, 嵌入式 Linux, Android 设备, 路由器 |
| 活动名称 | Rust QUIC IoT 僵尸网络传播活动 (2026) |
| C2协议 | QUIC v1/v2 (HTTP/3) + TLS 1.3, HTTPS 备用 |
| C2基础设施 | 动态 C2 (未硬编码, 运行时配置/DNS 解析) |
| 位置 | /etc/systemd/system/ |
| 方法 | systemctl enable + 完整 [Unit]/[Service]/[Install] 单元文件 |
| 触发 | 系统启动 |
ExecStart=, [Service], Type=simple, Restart=always, WantedBy=multi-user.target
| 位置 | crontab |
| 方法 | crontab -l | grep -qF; echo '@reboot ...' | crontab - |
| 触发 | 系统重启 |
(crontab -l 2>/dev/null | grep -qF ...) || { (crontab -l 2>/dev/null; echo '@reboot ...') | crontab -; }
| 位置 | /system/etc/init.d/99sys |
| 方法 | #!/system/bin/sh 脚本 + setprop persist.sys.service |
| 触发 | Android 启动 |
/system/etc/init.d/99sys, setprop persist.sys.service /data/local/tmp/.sys
| 协议 | QUIC v2 (HTTP/3) + TLS 1.3 |
| 端口 | |
| 地址/Domain | 动态 (未硬编码) |
| IP | 动态 (DNS 解析) |
| 加密 | QUIC v2 (RFC 9369) + TLS 1.3 |
| 用途 | 远程控制 + 命令下发 |
| API引用 | |
| 证书 | TLS 1.3 证书 (运行时) |
心跳维持, 失败重试 (retrying in background)
动态 C2 基础设施, QUIC v2 协议极罕见, 流量混淆程度高
| 段/节区 | 熵值 | 判定 |
|---|---|---|
| .text (150KB) | 6.12 | 正常 — Rust monomorphized 代码 |
| .rodata (12.2KB) | 6.37 | 略高 — 编码字符串表 + TLS 密钥标签 |
| .data (0.4KB) | 4.40 | 正常 — 少量全局数据 |
| 机制 | 状态 |
|---|---|
| PIE (ASLR) | ✅ static-pie |
| Stack Canary | ❌ 未检测 |
| NX (DEP) | ✅ GNU_STACK RWE |
| 符号剥离 | ✅ stripped |
| 地址 | 函数 | 功能 |
|---|---|---|
| 0x00011928 | entry | Rust 进程入口 → FUN_000119a0 → FUN_000275a0 |
| 0x00032950 | FUN_00032950 | 格式化引擎 (34KB — Rust fmt::format!) |
| 0x000269f0 | FUN_000269f0 | 网络状态机 (30KB — HTTP/QUIC/TLS 处理) |
| 0x0001bd28 | FUN_0001bd28 | QUIC 连接建立 (18.7KB) |
| 0x00030090 | FUN_00030090 | 持久化安装 (12.7KB) |
| 0x0002d4e4 | FUN_0002d4e4 | C2 命令处理 (11.4KB) |
| 调用号 | 系统调用 | 用途 | 地址 |
|---|---|---|---|
| N/A | |||
entry:
call FUN_000119a0
ldr r0, [...]
call FUN_000275a0
bx lr| 字段 | 值 | 来源 |
|---|---|---|
| 无 | ||
| 维度 | 本样本 | Rust QUIC Bot | Mirai (C) | Mozi | RUSTBOT-GETNR | ECHOBOT | F6 | F7 | F8 | 匹配 |
|---|---|---|---|---|---|---|---|---|---|---|
| 编译器 | Rust | C/GCC | C++ | ✅ Rust | C/GCC | 1/8 | ||||
| 协议 | QUIC v2 | TCP/HTTP | DHT/TCP | TCP/HTTP | HTTP | 0/8 | ||||
| 加密 | TLS 1.3 | XOR | 自定义 | 无 | 无 | 0/8 | ||||
| 持久化 | systemd+cron+init.d | 无 | 无 | systemd | 无 | 0/8 | ||||
| 伪装 | 20+ 进程名 | 无 | 无 | 无 | 无 | 0/8 | ||||
| UA 伪装 | 5 种 | 无 | 无 | 2 种 | 1 种 | 0/8 | ||||
| 目标 | IoT+Android | IoT | IoT | IoT | IoT | 0/8 |
| 变种 | 架构 | 大小 | 编译器 | 特征 | 状态 |
|---|---|---|---|---|---|
| N/A | |||||
行为: entry → 运行时初始化, 参数解析, 随机种子生成 (/dev/urandom)
证据: 0x00011928: entry → FUN_000119a0 → FUN_000275a0
行为: QUIC v2 握手 (quicv2 key/iv/hp), TLS 1.3 加密通道建立
证据: .rodata: quicv2 key, tls13, FUN_0001bd28 (QUIC 连接)
行为: HTTPS 请求 → /api/login | /account/login | /auth/login → 认证
证据: .rodata: /api/login, /account/login, /auth/login, 5 种 UA
行为: id -u 检查权限, 读取 /proc/net/tcp, /proc/self/exe, /etc/resolv.conf
证据: .rodata: id -u, /proc/net/tcp, /proc/self/exe, /etc/resolv.conf
行为: systemd 服务 (systemctl enable), crontab @reboot, Android init.d 脚本
证据: .rodata: ExecStart=, systemctl enable, @reboot, 99sys
行为: 伪装为 systemd-journald, polkitd, fwupd, boltd, snapd 等
证据: .rodata: 20+ 合法进程路径
行为: 接收命令 [KILL] name=, 维持心跳, 失败重试
证据: .rodata: CONNECTED TO HOST BOX, [KILL] name=, retrying
心跳保持, 失败自动重试 (retrying in background)
| 维度 | 证据 | 权重 | 恶意指数 |
|---|---|---|---|
| C2 通信 | QUIC v2 + TLS 1.3 加密, 多认证端点 | 20 | 10/10 |
| 持久化 | systemd + crontab + init.d 三重机制 | 15 | 10/10 |
| 反检测 | 20+ 进程伪装 + 5 种 UA 伪装 | 15 | 10/10 |
| 远程控制 | [KILL] 命令 + 控制操作面板 | 15 | 9/10 |
| 跨平台 | Linux + Android 双平台支持 | 10 | 8/10 |
| 技术先进性 | Rust + QUIC v2 + TLS 1.3 现代技术栈 | 10 | 9/10 |
| 隐蔽性 | 动态 C2, 无硬编码地址, 加密流量 | 10 | 9/10 |
| 授权 | 无任何合法授权迹象 | 5 | 10/10 |
CRITICAL — 高度恶意
| 层 | API/技术 | 检测目标 | 绕过难度 |
|---|---|---|---|
| 无 | |||
| 检测方法 | VMware | VirtualBox | QEMU/KVM |
|---|---|---|---|
| 无 | |||
| 技术 | 是否存在 | 证据 | 对抗难度 |
|---|---|---|---|
| Rust 编译 + 符号剥离 | 已检测 | stripped ELF, 无函数符号 | 高 — 阻碍静态分析 |
| QUIC v2 加密 | 已检测 | quicv2 key/iv/hp TLS 密钥标签 | 极高 — 流量分析困难 |
| 动态 C2 地址 | 已检测 | C2 未硬编码, 运行时配置 | 高 — 阻碍 IOC 提取 |
| 进程伪装 | 已检测 | 20+ 合法进程名伪装 | 高 — 阻碍进程检测 |
| static-pie 链接 | 已检测 | 位置无关可执行文件 | 中 — 阻碍内存分析 |
| 层 | 操作 | API/命令 | 证据来源 |
|---|---|---|---|
| 无 | |||
| 反编译函数数 | 482 (Rust monomorphized) |
| 反编译输出 | 791 KB |
| 分析时长 | ~60s |
/* 482 functions decompiled by Ghidra 11.2.1 */
/* Language: ARM:LE:32:v8 */
/* Key: entry(0x11928)→FUN_000119a0→FUN_000275a0 */
/* Largest: FUN_00032950(34KB, fmt::format!), FUN_000269f0(30KB, HTTP/QUIC/TLS) */| 总函数数 | 总调用关系 | 最大调用深度 |
|---|---|---|
| 482 | ? | ? |
| QEMU 模式 | 跳过 (ARM 架构 — 无 ARM QEMU 用户态模拟器可用) |
| 网络隔离 | 未配置 |
| 执行结果 | N/A |
| C2 数据 | 无 C2 通信 |
| 偏移 | 字符串 | 类型 | 用途/含义 | 威胁等级 |
|---|---|---|---|---|
| .rodata | quicv2 key | C2 Protocol | QUIC v2 (RFC 9369) TLS 密钥标签 | HIGH |
| .rodata | quicv2 iv | C2 Protocol | QUIC v2 初始向量标签 | HIGH |
| .rodata | quicv2 hp | C2 Protocol | QUIC v2 头部保护标签 | HIGH |
| .rodata | quic key | C2 Protocol | QUIC v1 (RFC 9000) TLS 密钥标签 | HIGH |
| .rodata | tls13 | Crypto | TLS 1.3 协议标识 | HIGH |
| .rodata | /api/login | C2 Endpoint | API 认证端点 | HIGH |
| .rodata | /account/login | C2 Endpoint | 账户认证端点 | HIGH |
| .rodata | /auth/login | C2 Endpoint | 认证端点 | HIGH |
| .rodata | CONNECTED TO HOST BOX | C2 Message | C2 连接成功确认 | HIGH |
| .rodata | [+] connected to control operations | C2 Message | 控制面板连接确认 | HIGH |
| .rodata | [-] failed to reach control operations | C2 Message | C2 连接失败重试 | HIGH |
| .rodata | [KILL] name= | Bot Command | 远程终止命令 | HIGH |
| .rodata | ExecStart= | Persistence | systemd 服务持久化 | HIGH |
| .rodata | systemctl enable | Persistence | systemd 服务启用 | HIGH |
| .rodata | @reboot | Persistence | crontab 开机启动 | HIGH |
| .rodata | setprop persist.sys.service | Persistence | Android 属性持久化 | HIGH |
| .rodata | /system/etc/init.d/99sys | Persistence | Android init.d 脚本 | HIGH |
| .rodata | https://%s | C2 Template | HTTPS C2 URL 模板 | HIGH |
| .rodata | /robots.txt | C2 Path | 可能的 C2 路径探测 | MEDIUM |
| .rodata | X-Forwarded-For: | HTTP Header | 代理感知头部 | MEDIUM |
C2 地址未硬编码,通过运行时配置或 DNS 解析动态获取。QUIC v2 + TLS 1.3 加密使流量分析困难。三重持久化机制确保重启后存活。
quicv2 key/iv/hp (RFC 9369 QUIC v2) — 极罕见的 IoT 恶意软件 QUIC 协议使用/api/login, /account/login, /auth/login — 多认证端点 C2 基础设施systemd + crontab + init.d 三重机制 — 极强的持久化能力20+ 合法进程名 (systemd-journald, polkitd, fwupd...) — 高级规避技术7826f1073f73991968b774fe7d9514c069e44b4f0477fe2429d5781523806f50 — 样本 SHA256 哈希bf32078b169c8215b51ba6e1c7e6ade2 — 样本 MD5 哈希rule Rust_QUIC_IoT_Botnet_ARM_20260815 {
meta:
description = "Rust QUIC IoT Botnet (ARM) - QUIC v2 + TLS 1.3 C2"
author = "Hermes Deep Analysis"
date = "2026-08-15"
family = "Rust QUIC IoT Botnet"
strings:
$quicv2_1 = "quicv2 key"
$quicv2_2 = "quicv2 iv"
$quicv2_3 = "quicv2 hp"
$quic_1 = "quic key"
$tls13 = "tls13"
$c2_1 = "CONNECTED TO HOST BOX"
$c2_2 = "[+] connected to control operations"
$c2_3 = "[-] failed to reach control operations"
$login_1 = "/api/login"
$login_2 = "/account/login"
$persist_1 = "ExecStart="
$persist_2 = "systemctl enable"
$persist_3 = "setprop persist.sys.service"
$kill = "[KILL] name="
$ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
condition:
uint32be(0) == 0x7f454c46 and 6 of them
}
# Suricata rule for Rust QUIC IoT Botnet C2
alert tls $HOME_NET any -> $EXTERNAL_NET any (msg:"Rust QUIC IoT Botnet - TLS 1.3 C2 Connection"; tls.version: "1.3"; flow:established,to_server; content:"quicv2"; nocase; classtype:trojan-activity; sid:1000001; rev:1;)
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Rust QUIC IoT Botnet - C2 Login Endpoint"; flow:established,to_server; http.uri; content:"/api/login"; nocase; http.user_agent; content:"Chrome/"; nocase; classtype:trojan-activity; sid:1000002; rev:1;)
| 判定结果 | 🔴 CRITICAL — 恶意代码 |
| 恶意类型 | IoT 僵尸网络 (QUIC C2 + 持久化 + 伪装) |
| 恶意家族 | Rust QUIC IoT Botnet |
| 威胁级别 | CRITICAL |
| 置信度 | 92% — QUIC v2 协议 + 5 种 UA 伪装 + systemd/crontab/init.d 三重持久化 + 进程伪装 |
| 关联组织 | 未知 APT (现代 Rust/QUIC 技术栈) |
| 目标平台 | Linux (IoT/嵌入式/Android) |
| 感染链位置 | 植入 → 持久化 → C2 连接 → 远程控制 |
Rust 编译 ARM IoT 僵尸网络,使用 QUIC v1/v2 + TLS 1.3 加密 C2 通信,5 种 Chrome/Edge/Firefox UA 伪装,systemd/crontab/Android init.d 三重持久化,伪装为 systemd-journald/polkitd/fwupd 等合法进程。