Open Directory, Open Season: Mổ xẻ JFMBackdoor của Red Lamassu

Tóm tắt cho lãnh đạo
Một open directory cấu hình sai đã làm được điều mà nhiều năm hoạt động lén lút không cho phép: nó trao cho đội threat hunting toàn bộ bộ công cụ của Red Lamassu (còn được theo dõi với tên Calypso và Bronze Medley) — nhóm gián điệp China-nexus mà PwC theo dõi từ năm 2019. Ngày 21/05/2026, PwC Threat Intelligence và Black Lotus Labs (Lumen) công bố nghiên cứu phối hợp — PwC tập trung mảng Windows, Lumen mảng Linux — phơi bày một cặp implant: backdoor Windows đầy đủ chức năng tên JFMBackdoor, và framework hậu khai thác trên Linux tên Showboat (PwC gọi là kworker; Kaspersky gọi là EvaRAT).
Với một nhà mạng hay đơn vị hạ tầng trọng yếu, rủi ro không nằm ở một lần xâm nhập mà ở gián điệp dài hạn: mục tiêu của Red Lamassu là chỗ đứng bền vững để thu thập tình báo trong nhiều năm, và bộ công cụ của nhóm biến một nhà mạng bị xâm nhập thành bàn đạp tiến sâu vào mạng nội bộ. Mục tiêu xác nhận tập trung vào lĩnh vực viễn thông và cơ quan chính phủ tại Kazakhstan, Afghanistan và Ấn Độ, cùng hoạt động liên quan trên khắp khu vực châu Á – Thái Bình Dương.
Hành động quan trọng nhất cần làm ngay: hunt DLL side-loading bất thường từ
%TEMP% và sự tồn tại của artifact C:\Users\public\jfm — cả hai là dấu vân
tay đáng tin cậy của chuỗi tấn công này.
Phát hiện & Timeline
OPSEC của Red Lamassu sơ hở trong khoảng tháng 7–10/2025, khi PwC quan sát
một open directory đặt trên 23.27.201[.]160. Phần lớn file trong đó là các mắt
xích của một chuỗi lây nhiễm thống nhất; hai ngoại lệ — clear (công cụ giả mạo/
xoá log trên Linux) và systemd-ac-update (một mẫu Showboat/kworker) — chỉ thẳng
tới hoạt động đa nền tảng của nhóm.
| Thời gian | Sự kiện |
|---|---|
| 2019 | PwC bắt đầu theo dõi Red Lamassu / Calypso [NEEDS VERIFICATION: một số nguồn khác xác định nhóm hoạt động từ tháng 9/2016 — xem phần Tham khảo] |
| 07–10/2025 | Open directory hoạt động trên 23.27.201[.]160 |
| 21/05/2026 | Công bố phối hợp — PwC (JFMBackdoor / Windows) + Lumen Black Lotus Labs (Showboat / Linux) |
Hạ tầng C2 có "đuôi" dài hơn nhiều. Một chứng chỉ TLS gắn với domain C2
newsprojects[.]online đã xuất hiện trên nhiều host từ tận năm 2023, cho
thấy hạ tầng chiến dịch có trước open directory bị lộ nhiều năm.
Hồ sơ Threat Actor — Red Lamassu (Calypso)
Red Lamassu là actor đặt tại Trung Quốc mà PwC đánh giá nhiều khả năng hoạt động từ tỉnh Tứ Xuyên (Sichuan) — các nguồn khác gắn hạ tầng C2 với Thành Đô (Chengdu), thủ phủ của tỉnh. Nhóm dựa vào tổ hợp công cụ tự phát triển và công cụ dùng chung để thiết lập và duy trì chỗ đứng dài hạn phục vụ thu thập tình báo.
Vài đặc điểm khiến nhóm đáng chú ý với phía phòng thủ:
- Vùng địa lý "im ắng". Mục tiêu tập trung vào các khu vực mà vendor bảo mật phương Tây có ít visibility hơn — Afghanistan, Kazakhstan, Ấn Độ, kèm báo cáo liên quan nhắc tới Thái Lan và Thổ Nhĩ Kỳ — đó là một phần lý do nhóm ít được ghi nhận trong nhiều năm.
- Công cụ "quân nhu" dùng chung. Red Lamassu trong lịch sử dùng PlugX — họ malware được chia sẻ rộng rãi giữa các nhóm China-nexus, và Showboat nằm cùng hệ sinh thái dùng chung này bên cạnh các framework như ShadowPad. Việc "gộp tài nguyên" (resource pooling) là dấu hiệu lặp lại của hoạt động China-nexus và làm phức tạp việc quy kết dứt khoát.
- Đa nền tảng. Việc ghép backdoor Windows (JFMBackdoor) với framework Linux (Showboat) cho phép nhóm hoạt động thoải mái trên môi trường lai (mixed estate) vốn điển hình ở hạ tầng viễn thông.
Luồng tấn công — Chuỗi DLL Side-Loading
Chuỗi trên Windows là một trình tự DLL side-loading kinh điển, xây quanh một
binary hợp lệ có chữ ký. PwC lưu ý một điểm lạ: dropper 1.bat sẽ không chạy
nguyên trạng — nhưng từng lệnh bên trong vẫn hoạt động khi chạy riêng lẻ, gợi ý
script được thiết kế để đưa qua một bộ obfuscator trước khi triển khai.
flowchart TD
A["1.bat (dropper)<br/>PowerShell -WindowStyle Hidden"] -->|Invoke-WebRequest| B["%TEMP%<br/>flt.bin · FLTLIB.dll · scr.mui · fltMC.exe"]
B --> C["fltMC.exe<br/>(binary hợp lệ, có chữ ký)"]
C -->|DLL side-loading| D["FLTLIB.dll<br/>(loader độc hại)"]
D -->|giải mã XOR — key Zs0@31=KDw.*7ev| E["scr.mui<br/>(config mã hoá)"]
D -->|nạp vào bộ nhớ| F["flt.bin<br/>(shellcode stub)"]
F -->|decode + reflective load| G["JFMBackdoor<br/>(Win32 DLL, PE in-memory)"]
G -->|TCPSession / WSSession / WSSSession| H["C2: namefuture[.]site"]
Từng bước:
1.batdùng cửa sổ PowerShell ẩn để tảiflt.bin,FLTLIB.dll,scr.muivàfltMC.exevào%TEMP%, rồi khởi chạyfltMC.exe.fltMC.exelà executable hợp lệ, side-load fileFLTLIB.dllcủa kẻ tấn công.FLTLIB.dllmởscr.muivà giải mã XOR bằng keyZs0@31=KDw.*7ev. Định dạng file là chuỗi bản ghi: 4 byte độ dài đã mã hoá XOR, theo sau là khối dữ liệu mã hoá. Config sau giải mã được dùng chung bởi cảFLTLIB.dlllẫn payload cuối.FLTLIB.dllsau đó nạpflt.bin— một shellcode stub — vào bộ nhớ và thực thi.flt.bindecode và reflectively load PE nhúng cuối cùng: một Win32 DLL ~1.12 MB chính là JFMBackdoor. Configscr.muisau giải mã để lộ các đường dẫn hardcode và domain C2 trong hai bộ mẫu quan sát được:
# Bộ mẫu 1
flt.bin · FLTLIB.dll · fltMC.exe
C:\Program Files (x86)\Windows Mail\wabmig.exe
C:\ProgramData\Microsoft\Network
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
namefuture[.]site
# Bộ mẫu 2 (mẫu bổ sung)
sl.bin · sllauncherloc.dll
C:\Windows\SysWOW64\msdt.exe
C:\ProgramData\Microsoft\Network
en[.]cumm[.]info · xcent[.]online · cumm[.]info
Mổ xẻ JFMBackdoor
Backdoor lấy tên từ một đường dẫn hardcode bên trong malware,
C:\Users\public\jfm. Nó được xây trên thư viện CppServer và điều khiển hoạt
động qua các class TCPSession, WSSession và WSSSession, liên lạc với C2 tại
namefuture[.]site.
Năng lực rất rộng, đúng kiểu một implant gián điệp toàn diện:
| Năng lực | Chi tiết |
|---|---|
| Remote shell | Hai biến thể reverse shell. Biến thể thứ hai khởi chạy ở trạng thái suspended, rồi dùng FreeConsole + AttachConsole để tách khỏi console, né bị các tiến trình khác kiểm tra. |
| Hệ thống file | Đọc/ghi/copy/di chuyển/xoá file và thư mục, liệt kê thư mục đệ quy, tìm file theo pattern, thực thi file, timestomping (SetFileTime), và sửa thuộc tính. |
| Network proxy | Thiết lập phiên TCP proxy — biến host thành điểm pivot. |
| Quản lý process & service | Liệt kê / tạo / kết thúc process; liệt kê / start / stop / xoá service Windows. |
| Network recon | Đọc bảng kết nối TCP/UDP (GetExtendedTcpTable / GetExtendedUdpTable) và có thể thao tác entry TCP (SetTcpEntry). |
| Registry | CRUD đầy đủ — liệt kê, tạo, sửa, đổi tên, xoá key và value. |
| Chụp màn hình | Dùng GDI+ (gdiplus.dll), sau đó mã hoá Base64 và XOR ảnh trước khi ghi ra đĩa để exfil. |
| Tự quản lý | Tạo/nạp lại config và service mã hoá, và có thể tự gỡ cài đặt (registry, service, file trên đĩa) để chống điều tra (anti-forensic). |
| Quản lý config | Lưu/nạp lại config mã hoá từ scr.mui và btasc.cfg, cho phép operator cập nhật hành vi động. |
Một số command code tiêu biểu
JFMBackdoor điều phối theo cấu trúc command + sub-command. Một số mục chọn lọc từ bảng đầy đủ của PwC (Appendix B trong báo cáo gốc):
| Command | Sub | Hành động |
|---|---|---|
0xD |
0xA |
Reverse shell qua CreatePipe + CreateProcessW |
0xAD |
0xA |
Reverse shell ẩn — chạy suspended, rồi FreeConsole/AttachConsole để né kiểm tra |
0xE |
0x10 |
Timestomp một file (SetFileTime) |
0xF |
0x1 |
Bắt đầu phiên TCP proxy |
0x11 |
— | Tự gỡ cài đặt (registry, service, kết thúc, xoá khỏi đĩa) |
0x20 |
0x0 |
Thu thập bảng TCP/UDP (GetExtendedTcpTable / GetExtendedUdpTable) |
0x30 |
0x0 |
Tạo thư mục C:\Users\public\jfm, ghi config btasc.cfg |
0x41 |
0x1 |
Ghi registry (RegSetKeyValueW) |
0xCE |
0x2 |
Chụp màn hình qua gdiplus.dll, lưu dạng Base64 + mã hoá XOR |
0xCF |
0x0 |
Nạp lại config từ scr.mui |
0xF1 |
0x1 |
Xoá một service Windows (DeleteService) |
Hạ tầng C2 — PwC đã ráp nối thế nào
JFMBackdoor và các mẫu đi kèm dùng bốn domain C2: namefuture[.]site,
cumm[.]info, en[.]cumm[.]info, và xcent[.]online, tất cả đều ẩn sau
Cloudflare. PwC pivot qua chứng chỉ TLS để bóc lớp Cloudflare và nối backdoor
Windows với hạ tầng Showboat trên Linux.
flowchart LR
subgraph JFM["JFMBackdoor (Windows)"]
D1["namefuture[.]site"]
end
subgraph KW["Showboat / kworker (Linux)"]
D2["newsprojects[.]online"]
end
D1 -->|Cloudflare Origin cert| IP1["166.88.11[.]196"]
D1 -->|DNS| IP2["139.180.223[.]193"]
IP1 -->|cùng cert phục vụ| D2
IP2 -->|cùng cert phục vụ| D2
D2 -->|DNS| IP3["64.227.128[.]21"]
D2 -->|DNS| IP4["23.27.201[.]115"]
IP4 -->|cũng resolve| D3["xcent[.]online"]
OMO["Cert O=My Organization<br/>fp 27df4756...0c677"] -->|host trên| IP5["195.86.120[.]2"]
IP5 -->|cùng chỗ với| AFG["Cert chính phủ Afghanistan +<br/>cert DC nhà mạng Afghanistan"]
Hai bước pivot làm phần việc nặng nhất:
- Chứng chỉ Cloudflare Origin cho
namefuture[.]siteđược phục vụ bởi166.88.11[.]196(kèm một DNS resolution bổ sung tới139.180.223[.]193). Chính các IP đó cũng phục vụ chứng chỉ Cloudflare chonewsprojects[.]online— C2 của một mẫu kworker/Showboat quan sát được — nối trực tiếp phía Windows và phía Linux. - Một chứng chỉ tự ký với subject
O=My Organization(fingerprint27df4756...0c677) được host trên195.86.120[.]2— IP này cũng từng host một chứng chỉ hợp lệ của một cơ quan chính phủ Afghanistan và một chứng chỉ gắn với domain controller của một nhà mạng viễn thông Afghanistan — tín hiệu mục tiêu mạnh, được củng cố bởi việcFLTLIB.dllđược upload lên một dịch vụ quét đa AV từ người gửi ở Afghanistan.
IOC
IOC chính thức được PwC công bố trên GitHub (xem phần Tham khảo). Danh sách dưới đây tái hiện lại để tiện tra cứu.
# === SHA-256 — open directory (23.27.201[.]160) ===
systemd-ac-update a05fbe8734a5a5a994a44dee9d21134ad7108d24ab0749499fe24fc4b36c4cbc
FLTLIB.dll 047307aca3a94a6fc46c4af25580945defb15574fb236d13d2bb48037cc42208
clear ac50887e2c513b50b2170d77441b9f7e8afcc774df6b54fdd8aac863095239f4
1.bat a23d126f0446755859e4d81c0c9b50b65e0062c3de2a014c543f6b263321ad78
scr.mui ea57b5768c84164fcdb25bb8338d660c5586e17e37cee924c4e5a745510925f3
fltMC.exe cbef2064cf49b4b27dbf7d0c88c8f7bcdd6a7f25ee9c087beacb48cdd1b78731
flt.bin b77a233735ff237ab964d2bdb3f6d261a90efb2f86dcde458c419cee528686a9
# === SHA-256 — payload JFMBackdoor (PE in-memory) ===
JFMBackdoor 176aec5d33c459a42e7e4e984a718c52e11213ef9a6aa961b483a836fc22b507
# === SHA-256 — mẫu bổ sung dùng chung key XOR Zs0@31=KDw.*7ev ===
CiWinCng32.dll b118f74dc2b974678a50349d04686f6b2df4b287a69e40c4513cd603c7271793 (KZ)
scr.mui 1003bc9e3650fd290e44fd79b270c1b29f572fbb7647fa2bbf1f600d53673b53 (CN)
sllauncherloc.dll f820e4e4c5d433714842f6d64d1a8773958f782cde8d27f6a54d4f9862598933 (CN)
# === Network — domain C2 ===
namefuture[.]site
cumm[.]info
en[.]cumm[.]info
xcent[.]online
newsprojects[.]online (C2 của kworker/Showboat)
# === Network — IP ===
23.27.201[.]160 (open directory)
23.27.201[.]115 (resolve xcent[.]online)
166.88.11[.]196
139.180.223[.]193
64.227.128[.]21
166.88.99[.]32
66.42.49[.]27
45.76.157[.]243
207.90.205[.]55
193.124.93[.]153
152.32.159[.]11
195.86.120[.]2 (host cert O=My Organization)
# === Host-based ===
Folder C:\Users\public\jfm (và các thư mục con \ProgramData, \UnistoreDB)
File btasc.cfg (config mã hoá)
File scr.mui (config mã hoá)
Pattern fltMC.exe + FLTLIB.dll thực thi từ %TEMP%
# === Crypto ===
XOR key Zs0@31=KDw.*7ev (giải mã scr.mui / config)
# === Fingerprint chứng chỉ TLS ===
27df475626aafce2ea1548a9f35efb9ad951298c8b11a6adb3ccdfcd5170c677 (O=My Organization)
5e86298e3a62404ee4b019246d8da7a7451ba8f9c1f956c32ea4a0ff4e43f553 (namefuture[.]site, Cloudflare)
8b0e14e0684e00aee9cbf4fd22b2a5da08443f9a0f9ace4972803e29050bcc69 (newsprojects[.]online, Cloudflare)
MITRE ATT&CK Mapping
Mapping do analyst thực hiện dựa trên mô tả kỹ thuật của PwC; đây là mapping của chúng tôi, không phải Navigator layer chính thức của PwC.
| Tactic | Technique | ID | Bằng chứng |
|---|---|---|---|
| Execution | PowerShell | T1059.001 | 1.bat chạy PowerShell ẩn |
| Execution | Windows Command Shell | T1059.003 | Reverse shell qua cmd |
| Execution | Service Execution | T1569.002 | sc start, khởi chạy service |
| Command & Control | Ingress Tool Transfer | T1105 | Invoke-WebRequest tải payload |
| Defense Evasion | DLL Side-Loading | T1574.002 | fltMC.exe side-load FLTLIB.dll |
| Defense Evasion | Deobfuscate/Decode Files | T1140 | Giải mã XOR scr.mui |
| Defense Evasion | Reflective Code Loading | T1620 | flt.bin nạp PE trong bộ nhớ |
| Defense Evasion | Obfuscated Files or Information | T1027 | Config XOR, screenshot Base64+XOR |
| Defense Evasion | Indicator Removal: Timestomp | T1070.006 | SetFileTime |
| Defense Evasion | Indicator Removal: File Deletion | T1070.004 | Tự gỡ khỏi đĩa |
| Defense Evasion | Modify Registry | T1112 | Registry CRUD |
| Defense Evasion | Hide Artifacts | T1564 | Reverse shell tách console |
| Discovery | Process Discovery | T1057 | Liệt kê process |
| Discovery | System Service Discovery | T1007 | Liệt kê service |
| Discovery | System Network Connections Discovery | T1049 | Bảng TCP/UDP |
| Collection | Screen Capture | T1113 | Screenshot GDI+ |
| Command & Control | Proxy | T1090 | Phiên TCP proxy |
| Command & Control | Web Protocols | T1071.001 | Phiên C2 WS/WSS |
Bức tranh lớn — JFMBackdoor và BPFdoor
Nên hiểu JFMBackdoor như một mảnh của làn sóng China-nexus rộng hơn nhắm vào viễn thông toàn cầu. Việc đặt cạnh BPFdoor — implant Linux nằm trong kernel mà Rapid7 quy cho một nhóm khác là Red Menshen — rất có tính khai sáng.
JFMBackdoor (và Showboat đi kèm) đầy đủ chức năng nhưng, theo đánh giá của Black Lotus Labs, không quá phá cách: một backdoor full-feature mà "chiêu" mạnh nhất ở phía Linux là khả năng quét và lây nhiễm các thiết bị nội bộ trong LAN vốn không hề expose ra internet. Ngược lại, BPFdoor là chuyên gia living-off-the-land — nằm im trong kernel Linux, kiểm tra traffic để chờ một magic packet — và từ khoảng tháng 11/2025 đã được nâng cấp để chỉ tìm trigger bên trong các request HTTPS. Như Christiaan Beek của Rapid7 diễn đạt, kẻ tấn công về bản chất đang biến chính firewall của bên phòng thủ thành kênh phân phối.
Điểm chung — và là điều khiến phía phòng thủ telco/tài chính phải lo nhất — là: dwell time nhiều năm, công cụ dùng chung giữa các nhóm, và việc cố tình nhắm vào những khu vực, nhà cung cấp có độ trưởng thành giám sát còn hạn chế. Malware khác nhau, nhưng cùng một playbook.
Nhận định
Chi tiết quan trọng về mặt vận hành ở đây không phải là danh sách tính năng của
JFMBackdoor — rất nhiều backdoor làm được reverse shell và screenshot — mà là
cách nó vào được. Một fltMC.exe hợp lệ, có chữ ký, side-load một
FLTLIB.dll độc hại từ %TEMP% sẽ vô hiệu hoá các kiểm soát ngây thơ dựa trên
signature hoặc allow-list theo nhà phát hành, bởi tiến trình thực thi đúng là
được Microsoft ký. Đây chính xác là loại hoạt động mà giám sát thụ động, dựa trên
signature, sẽ bỏ lọt, và là thứ mà threat hunting hành vi bắt được: điểm bất
thường không nằm ở binary, mà ở sự ghép cặp — một tiện ích hệ thống nạp DLL từ
một đường dẫn temp người dùng ghi được, rồi tạo phiên mạng tới một domain ẩn sau
Cloudflare.
Với các đội SOC tại Việt Nam, mức độ liên quan là trực tiếp chứ không trừu tượng. Mục tiêu xác nhận của Red Lamassu đã trải khắp Đông Nam Á (Thái Lan) và Nam Á (Ấn Độ), và các doanh nghiệp viễn thông, tài chính ở đây đang vận hành đúng kiểu môi trường lai Windows/Linux mà actor này được "thiết kế" để hoạt động. C2 ẩn sau Cloudflare là cái "gai" thực tế: nếu giám sát egress của bạn chỉ flag các IP "known-bad", traffic này trông như HTTPS bình thường tới một CDN. Việc phát hiện phải dịch lên cao hơn trong stack — sang phân tích chứng chỉ, fingerprint JA3/JA4, và hành vi beaconing — chứ không dừng ở lớp IP-reputation.
Đọc theo góc chiến lược: đây là gián điệp kiên nhẫn, mang tính khu vực, tập trung vào hạ tầng — không phải kiểu "đánh nhanh rút gọn". Tư thế phòng thủ đúng là hunt chủ động và giả định dwell time dài, thay vì ngồi chờ một alert nổ.
Khuyến nghị
Ngay lập tức (0–24h)
Hunt artifact host
C:\Users\public\jfm(và các thư mục con\ProgramData,\UnistoreDB) cùng các file configbtasc.cfg/scr.mui.Hunt
fltMC.exevàFLTLIB.dllthực thi từ%TEMP%hoặc bất kỳ đường dẫn nào người dùng ghi được — ví dụ điểm khởi đầu bằng KQL:DeviceProcessEvents | where FileName =~ "fltMC.exe" | where FolderPath has_any ("\\Temp\\", "\\AppData\\") | join kind=inner ( DeviceImageLoadEvents | where FileName =~ "FLTLIB.dll" ) on DeviceIdBlock/alert các domain và IP C2 trong danh sách IOC tại egress và DNS. Ngắn hạn (1–7 ngày)
Triển khai detection cho pattern DLL side-loading nói chung — một binary hợp lệ có chữ ký nạp DLL từ thư mục phi chuẩn, người dùng ghi được — chứ không chỉ riêng các tên file cụ thể này.
Thêm hunting dựa trên chứng chỉ: fingerprint cert tự ký
O=My Organization, và beaconing tới các domain ẩn sau Cloudflare có lịch sử trong doanh nghiệp thấp. Bổ sung JA3/JA4 nếu có.Quét tìm timestomping (bất thường
SetFileTime) và các PE được reflectively load trong bộ nhớ trên các host hướng viễn thông và host giá trị cao. Dài hạnChuyển từ giám sát thụ động, dựa trên signature, sang threat hunting chủ động, giả định dwell time nhiều năm với lớp actor này.
Coi HTTPS outbound tới hạ tầng ẩn sau CDN là một bề mặt phát hiện hạng nhất (phân tích beacon, tình báo chứng chỉ), không phải làn tin cậy mặc định.
Với nhà mạng/hạ tầng trọng yếu, phân vùng và giám sát các segment LAN nội bộ không hướng internet — năng lực quét-và-lây-nhiễm LAN của malware Linux đi kèm nhắm cụ thể vào phần mạng phía sau perimeter.
Tài liệu tham khảo
- PwC — Inside Red Lamassu's JFMBackdoor
- PwC — IOCs (GitHub)
- Lumen Black Lotus Labs — Introducing Showboat
- Dark Reading — Chinese APTs Share Linux Backdoor in Telco Attacks
- Dark Reading — China Upgrades the Backdoor (BPFdoor / Red Menshen — đối chiếu)
- The Hacker News — Showboat Linux Malware Hits Middle East Telecom





