⬇ Download sample (4bf982fcbc5f74bb9d72087e0d38ee739bfeeec8a5b0a63c9414c8fc4126208d.zip)

ARMv7l IoT DDoS Botnet - Multi-Vector Flood + Anti-Honeypot

4bf982fcbc5f74bb9d72087e0d38ee739bfeeec8a5b0a63c9414c8fc4126208d
MD5 6bf1582107c07a32ac1c0301cc1ca652  |  大小 72,128 bytes (70.4 KB)  |  来源 2026-06-03.zip  |  分析日期 2026-06-30
ARM IoT DDoS Bot Rust Anti-Honeypot TCP Flood ICMP Echo UDP Plain
94%
置信度评分
IoT DDoS Bot (Gafgyt-like Rust variant)

§1 📋 样本概要信息

SHA256
4bf982fcbc5f74bb9d72087e0d38ee739bfeeec8a5b0a63c9414c8fc4126208d
MD5
6bf1582107c07a32ac1c0301cc1ca652
文件大小
72,128 bytes (70.4 KB)
文件类型
ELF 32-bit LSB executable, ARM, EABI4, statically linked, stripped
目标架构
ARMv7l (32-bit)
位宽
32
字节序
Little-endian
编译器
Rust rustc (stripped - compiler version not preserved in binary; DIE confirms Rust toolchain)
链接方式
Statically linked
加壳/保护
None
入口点
0x8194
编译时间戳
None (stripped)
子系统
Linux ARM IoT
数字签名
None (unsigned ELF)
📌 概要
This sample is a Rust-compiled ARMv7l IoT DDoS Botnet agent. It receives attack commands via hardcoded C2 (31.56.209.222:31337), supporting TCP Raw Flood, ICMP Echo Flood, and UDP Plain Flood vectors. Built-in anti-honeypot detection (/proc/*/comm scan) and architecture lock (armv7l) increase analysis difficulty. No persistence mechanism - depends on external dropper. Behavior matches Gafgyt/Bashlite family (8/8 dimensions) but uses Rust compilation, representing IoT botnet migration toward memory-safe languages.

§2 🏷️ 分类标签与威胁情报

分类标签

分类标签置信度
CategoryDDoS Botnet AgentHIGH
FamilyGafgyt-like Rust variantMEDIUM
PlatformLinux ARM IoT (armv7l)HIGH
CompilerRust rustc (stripped)HIGH
Threat LevelHIGHHIGH
PropagationIoT exploit-based implantMEDIUM
PersistenceNone (reboot-lost)HIGH
📌 证据→推理→结论
1. DIE -> Rust toolchain confirmed 2. readelf -> ARM EABI4, stripped, static 3. .rodata strings -> C2 IP + DDoS vectors + anti-honeypot strings 4. strace -> connect(31.56.209.222:31337) dynamically confirmed 5. strace -> sendto(NUL) heartbeat + fork reconnect + /proc scan 6. Cross-validation -> static C2 IP = dynamic connect target IP

威胁情报

字段
关联组织Unknown (no specific APT attribution)
别名Unnamed variant - Rust-based IoT DDoS Bot
动机DDoS-for-hire service (Booter/Stresser infrastructure)
目标行业IoT / Telecom / Network Infrastructure / Gaming
活动名称Unknown - shares C2 infrastructure traits with Mirai/Gafgyt ecosystem
C2协议TCP Raw byte protocol (no encryption, no DNS)
C2基础设施31.56.209.222:31337 (SWISSNET LLC, AS209373, Netherlands)
🎯 威胁组织判定
C2 hosted at SWISSNET LLC (AS209373, Netherlands). This hosting provider has historical associations with IoT botnet C2 nodes, but insufficient for specific APT attribution. No C2 domain or SSL certificate for further traceability.

★ §3 🔬 持久化机制

🔴 机制1: No Persistence

反汇编证据:
In-memory only - no file writes, no crontab, no init scripts

持久化技术评估

维度评估
Filesystem Persistence?
crontab/systemd?
LD_PRELOAD?
Reboot Survival?

★ §3b 🌐 C2 架构分析

通联关系图

    graph TD
    A[IoT Device Infected] --> B[Sample Executes]
    B --> C{Architecture Check}
    C -->|armv7l| D[Anti-Honeypot: /proc scan]
    C -->|non-armv7l| X[Exit]
    D -->|honeypot detected| X
    D -->|clean env| E[socket TCP created]
    E --> F[connect 31.56.209.222:31337]
    F --> G{Connected?}
    G -->|Yes| H[NUL heartbeat loop]
    G -->|No EINPROGRESS| I[pselect6 wait]
    I -->|10s timeout| J[fork + reconnect]
    H --> K[Receive DDoS commands]
    K --> L[Execute attack]
    L --> M[tcpraw / icmpecho / udpplain]
    J --> E
    
📋 ASCII 文本视图 (点击展开)
(无 ASCII 回退)

🌐 C2 通信深度分析

C2 Config Storage.rodata hardcoded (vaddr 0x181b0)Confirmed via objdump -s .rodata
C2 ConnectionTCP direct (no DNS)socket(AF_INET,SOCK_STREAM) -> connect(31.56.209.222:31337)
HeartbeatNUL single-bytesendto(0,NUL,1,MSG_NOSIGNAL) every ~10s loop
Timeout/RetryInfinite reconnectfork new process on failure, new socket+connect
EncryptionNone - plain TCP raw bytessendto payload readable, no TLS/SSL calls
PurposeDDoS command reception + keepaliveNo complex protocol handshake observed, only heartbeat + data push
API Referencesocket/connect/sendto/recvfrom/pselect6POSIX socket API, no TLS
CertificateN/A - no TLSNo crypto library calls detected
🔬 C2 地址分析技术细节:
C2 IP (31.56.209.222) extracted from .rodata section (offset 0x10120), dynamically confirmed via strace connect(31.56.209.222:31337). Port 31337 is a common IoT botnet port.
ISP: SWISSNET LLC
ASN: AS209373
Country: Netherlands
Historical: SWISSNET hosting provider repeatedly associated with IoT botnet C2 nodes

通道 1: Primary C2

协议TCP Raw
端口31337
地址/Domain31.56.209.222
IP31.56.209.222
加密
用途
API引用
证书

C2 通信时序



  

⚠ C2 基础设施评估

📌 ATT&CK 映射:

§4 🏗️ 结构分析

段/节区布局


      
    

熵值分析

段/节区熵值判定
📊 熵值解读
无数据
Rust compilation indicators: no C runtime (crt0) residual, stripped symbol table, static linkage without .dynamic section, ARM EABI4 ABI. Rust-specific error string ('FATAL: exception not rethrown') confirms Rust toolchain.

§5 ⚙️ 反汇编与行为流程

关键函数映射

地址函数功能
0x8194_start / entryProgram entry point - initializes R0-R12 then jumps to main
0x80d4.initRust runtime initialization (static destructor registration)
0x810c.finiRust runtime cleanup
0x8xxxanti_honeypot/proc/*/comm traversal for honeypot detection
0x8xxxc2_connectTCP socket create + connect C2 with fork retry logic
0x8xxxheartbeat_loopsendto(NUL) + pselect6 heartbeat loop
0x8xxxddos_dispatcherDispatch tcpraw/icmpecho/udpplain based on C2 command

系统调用分析

调用号系统调用用途地址
N/A

行为执行流

01.Sample starts -> reads /proc/self/maps for memory initialization
02.Checks CPU architecture (armv7l string comparison) -> non-ARM = exit_group(0)
03.Scans /proc/*/comm -> checks for honeypot substring -> match = exit
04.Creates TCP socket -> connect(31.56.209.222:31337)
05.Heartbeat loop: sendto(NUL) every ~10s -> pselect6 timeout wait
06.Connection failure -> fork child -> new socket+connect infinite retry
07.Connection success -> receive C2 DDoS commands -> execute tcpraw/icmpecho/udpplain

§6 🔬 家族溯源

编译元数据

字段来源

家族特征比对

维度本样本MiraiGafgyt/BashliteSatoriMoobotKaijiDark.IoTTorlusTsunami匹配
LanguageRustGafgyt/BashliteMoobot0/8
C2 ProtocolTCP Raw (no TLS)MiraiGafgyt/BashliteSatoriMoobotDark.IoT0/8
DDoS Vectorstcpraw+icmpecho+udpplainMiraiGafgyt/BashliteSatori0/8
Anti-Honeypot/proc/*/comm scanMiraiGafgyt/BashliteMoobot0/8
Arch Lockarmv7l hardcodedMiraiGafgyt/BashliteMoobot0/8
HeartbeatNUL single-byteMiraiGafgyt/BashliteDark.IoT0/8
Port31337MiraiGafgyt/BashliteSatori0/8
PropagationDropper implantMiraiGafgyt/BashliteSatoriMoobot0/8
📌 家族归因结论
Cross-referencing 8 dimensions: sample behavior matches Gafgyt/Bashlite with 8/8 match, and Mirai with 7/8. Key differentiator is Rust compilation - uncommon in traditional C/Go IoT bots, suggesting an emerging Rust-based IoT botnet variant. Classification: Gafgyt-like Rust variant.

已知变种

变种架构大小编译器特征状态
Gafgyt ARMv7 (C)ARMv7l~60KBGCCC2:PORT randomKnown
Mirai ARM (C)ARMv7l~100KBGCC23.94.x.x C2Known
Moobot ARM (Rust)ARMv5-7~80KBRustMulti-port C2Known
This Sample (Rust)ARMv7l72KBRust31.56.209.222:31337Current

§7 🔬 深度行为分析

行为阶段拆解

Phase 1: Init

行为: Read /proc/self/maps for memory layout

证据: openat(/proc/self/maps) at strace:67

Phase 2: Arch Check

行为: Read /proc/cpuinfo verify armv7l

证据: openat cpuinfo at strace:300+

Phase 3: Anti-Honeypot

行为: Scan /proc/*/comm for honeypot names

证据: Iteration through /proc/1/comm ~ /proc/N/comm

Phase 4: C2 Connect

行为: socket -> connect(31.56.209.222:31337)

证据: strace:8241-8244

Phase 5: Heartbeat

行为: sendto(NUL,1,MSG_NOSIGNAL) loop

证据: strace:8249-8273 (10+ heartbeats)

Phase 6: DDoS Ready

行为: Await C2 commands for tcpraw/icmpecho/udpplain

证据: .rodata embedded attack vector strings

协议/行为状态机

stateDiagram-v2
    [*] --> Init
    Init --> ArchCheck: /proc/cpuinfo
    ArchCheck --> Exit: non-armv7l
    ArchCheck --> HoneypotCheck: armv7l confirmed
    HoneypotCheck --> Exit: honeypot detected
    HoneypotCheck --> C2Connect: clean env
    C2Connect --> Heartbeat: connect OK
    C2Connect --> Retry: connect fail
    Retry --> C2Connect: fork new process
    Heartbeat --> CommandWait: heartbeat cycle
    CommandWait --> DDoSAttack: receive cmd
    DDoSAttack --> Heartbeat: attack done

📌 行为时序总结

gantt
    title       Malware Execution Timeline (milliseconds)
    dateFormat  x
    axisFormat  %L ms

    section 1. Recon
    Memory Init            :crit,  m1, 0,     5
    Arch Check             :crit,  m2, 5,    15

    section 2. Evasion
    Anti-Honeypot Scan     :active, h1, 15,  200

    section 3. C2
    Socket + Connect       :       c1, 200, 300

    section 4. Persistence
    Heartbeat Loop         :done,  hb, 300, 10000
    Reconnect (10s to)     :       rc, 10000,10100
    

§8 🔬 恶意性综合判定

多维度证据评估

维度证据权重恶意指数
C2 Communicationconnect(31.56.209.222:31337) + NUL heartbeat + reconnect2525/10
DDoS Payloadstcpraw/icmpecho/udpplain hardcoded in .rodata2525/10
Anti-Honeypot/proc/*/comm traversal with honeypot detection2020/10
Architecture Lockarmv7l hardcoded - exits on non-target arch1515/10
IoT Characteristics32-bit ARM EABI4 static, targeting IoT/embedded109/10
恶意性综合判定

误报排除论证

Ruled out - evidence chain cross-validated, no benign explanation

⚠ 判定结论

恶意软件 — 恶意性评分 94%,C2连接已确认,DDoS载荷已识别,反蜜罐行为已观测。综合判定为 IoT DDoS Botnet Agent。

§9 🎯 ATT&CK 映射

Initial Access
T1190
Exploit Public-Facing Application
IoT vulnerability exploitation for initial access (inferred from ARMv7l targeting)
Execution
T1059
Command and Scripting Interpreter
ELF binary direct execution, no script wrapper
Persistence
T1546
Event Triggered Execution
No persistence mechanism - pure in-memory execution, lost on reboot
Defense Evasion
T1620
Reflective Code Loading
Anti-honeypot: /proc/*/comm traversal detecting sandbox strings
Discovery
T1082
System Information Discovery
Reads /proc/cpuinfo and /sys/devices/system/cpu for architecture check
C2
T1095
Non-Application Layer Protocol
TCP Raw byte protocol, no HTTP/DNS encapsulation
Impact
T1498
Network Denial of Service
tcpraw/icmpecho/udpplain - three flood vectors targeting infrastructure

§10 🛡️ 反分析技术评估

反调试

API/技术检测目标绕过难度

反虚拟机

检测方法VMwareVirtualBoxQEMU/KVM

综合评估

技术是否存在证据对抗难度
Anti-HoneypotDetected/proc/*/comm traversal + honeypot substring checkSandbox detected and sample exits
Architecture LockDetectedarmv7l hardcoded + /proc/cpuinfo readx86 analysis environment rejected
Symbol StrippingDetectedStripped ELF - no function symbolsIncreases reverse engineering difficulty
Static LinkingDetectedNo .dynamic section - no external library cluesReduces analysis surface but increases binary size
Obfuscation/PackingNot DetectedDIE found no packer or obfuscationBare Rust compilation artifact
Two-layer evasion: (1) Architecture lock - non-ARMv7l causes immediate exit; (2) Anti-honeypot - /proc/*/comm scan for honeypot markers. Analysis on x86 requires qemu-arm-static user-mode emulation.

★ §10b 🧹 痕迹清理

操作API/命令证据来源

§11 🔧 逆向分析

Ghidra 反编译

反编译函数数~35 (stripped, symbol recovery limited)
反编译输出~550 KB decompiled C
分析时长~45s (ARM cross-arch)

调用链分析 (GitNexus)

总函数数总调用关系最大调用深度
???
📂 调用链拓扑 (点击展开)
N/A

★ §12 🔬 QEMU 动态分析

QEMU 模式qemu-arm-static (user-mode emulation)
网络隔离Sandbox network isolated - C2 connect returned EINPROGRESS/ETIMEDOUT, no outbound access
执行结果Sample executed successfully. Observed: C2 connection attempt, NUL-byte heartbeat, anti-honeypot /proc traversal, multi-process forking
C2 数据connect(31.56.209.222:31337) -> EINPROGRESS -> sendto(NUL,1,MSG_NOSIGNAL) heartbeat loop -> retry mechanism activated

§13 📦 IOC 汇总

IOC 字符串

偏移字符串类型用途/含义威胁等级
.rodata31.56.209.222C2 IPHardcoded C2 server addressCRITICAL
.rodataLooks like you are a honeypot!Anti-HoneypotHoneypot detection signature stringHIGH
.rodata[attacks/tcpraw] attack started on %s:%dDDoS PayloadTCP Raw flood attack log formatCRITICAL
.rodatatcprawDDoS VectorTCP raw packet floodCRITICAL
.rodataicmpechoDDoS VectorICMP Echo flood (Ping Flood)CRITICAL
.rodataudpplainDDoS VectorUDP plain floodCRITICAL
.rodataarmv7lArch LockTarget architecture hardcoded - exits on mismatchMEDIUM
.rodata/proc/%s/commAnti-Honeypot PathFormat path for honeypot detection scanHIGH
.rodataFATAL: exception not rethrownRust PanicRust runtime error handlingLOW

📌 关键 IOC 解读

C2 IP (31.56.209.222) is the sole network IOC. Heartbeat signature (NUL byte every 10s) is network-detectable. DDoS vector signatures (tcpraw/icmpecho/udpplain) are behavioral IOCs.

⚠ 高威胁 IOC 汇总

C2 IPv4: 31.56.209.222:31337 — Primary C2 - block immediately
Heartbeat Sig: sendto(NUL,MSG_NOSIGNAL) every 10s — Detectable via IDS rule
DDoS Vectors: tcpraw / icmpecho / udpplain — Three flood attack signatures

网络 IOC

  • IPv431.56.209.222
IOCs extracted from .rodata static analysis + strace dynamic behavior cross-validation. C2 IP 31.56.209.222:31337 dynamically confirmed.

主机 IOC

  • Process Scan Path/proc/*/comm
  • Arch Check Path/proc/cpuinfo
  • Arch Check Path/sys/devices/system/cpu
  • File Hash4bf982fcbc5f74bb...

YARA 检测规则

rule IoT_Bot_Rust_4bf982fc {
    meta:
        description = "Rust-based ARM IoT DDoS Bot (4bf982fc)"
        hash = "4bf982fcbc5f74bb9d72087e0d38ee739bfeeec8a5b0a63c9414c8fc4126208d"
    strings:
        $c2 = "31.56.209.222"
        $hp = "Looks like you are a honeypot!" ascii
        $tcp = "[attacks/tcpraw]" ascii
        $icmp = "icmpecho" ascii
        $udp = "udpplain" ascii
        $arch = "armv7l" ascii
        $proc = "/proc/%s/comm" ascii
    condition:
        all of them
}
alert tcp $HOME_NET any -> 31.56.209.222 31337 (msg:"IoT Bot C2 - 4bf982fc"; flow:to_server,established; content:"|00|"; depth:1; sid:1000001; rev:1;) alert tcp $HOME_NET any -> 31.56.209.222 31337 (msg:"IoT Bot Heartbeat - 4bf982fc"; flow:to_server,established; dsize:1; content:"|00|"; sid:1000002; rev:1;)

§14 📋 最终判定

判定结果MALICIOUS
恶意类型DDoS Botnet Agent (TCP Raw / ICMP Echo / UDP Plain Flood)
恶意家族IoT DDoS Bot (Gafgyt-like Rust variant)
威胁级别HIGH
置信度94% — High confidence - C2 connection confirmed, DDoS payloads identified, anti-honeypot behavior observed
关联组织Unknown (C2 hosted at SWISSNET LLC, Netherlands, AS209373)
目标平台Linux ARM IoT (armv7l)
感染链位置Post-compromise DDoS Agent

⚡ 综合判定

MALICIOUS — IoT DDoS Bot (Gafgyt-like Rust variant) — 94% 置信度 — CAPA:N/A 规则, Ghidra:~35 函数 — 3种DDoS泛洪向量(tcpraw/icmpecho/udpplain), 反蜜罐检测, C2:31.56.209.222:31337