# DOUBLECUP: Malware Ẩn Ngay Trong Cache Trình Duyệt

## Tóm tắt rủi ro

DOUBLECUP dịch vụ tấn công ClickFix cho thuê (Malware-as-a-Service) cực kỳ nguy hiểm và tinh vi, bắt đầu hoạt động mạnh từ đầu tháng 6/2026. Kẻ tấn công sẽ trả tiền lấy license, nhận về một công cụ Windows viết bằng Go để dựng chiến dịch ClickFix, tức lừa nạn nhân tự tay dán và chạy một lệnh độc hại. Phần tinh vi nhất là chúng giấu payload trong ảnh PNG nằm sẵn trong cache trình duyệt rồi dụ nhân viên tự dán lệnh để chạy mã độc fileless.

Nạn nhân bị nhắm qua các trang đăng nhập giả mạo NetSuite, Odoo, HubSpot và Salesforce, nghĩa là mục tiêu là nhân viên doanh nghiệp có tài khoản SaaS. Nhóm cung cấp phần mềm độc hại sẽ giữ phần hạ tầng: host các ảnh PNG chứa mã giấu, quản lý session và signal endpoint, phát khóa mã hóa, và tự động dựng lại payload. Kẻ tấn công chạy phần mềm client, một ứng dụng GUI viết bằng Go, để tự host thiết kế trang mồi và template riêng. Mỗi license có một key riêng, kèm metadata gồm IP kẻ tấn công, số ngày còn hạn, nhãn và phiên bản. Một license dựng được nhiều chiến dịch. Panel còn có sẵn một payload builder cho phép chọn ngôn ngữ chuỗi (vbs, jscript, bat, csharp, msbuild, wsf), hành động thực thi (mshta, run\_exe, powershell, curl\_wscript), và phương pháp steganography (certutil, findstr, hoặc LSB).

Nhóm đứng sau dùng một Telegram bot (@harrypoterlohBOT) để nhận thông báo vận hành: theo dõi lượt truy cập của khách, phát lệnh, giao khóa, nhận callback payload. Bot được điều hành bởi actor **Rognar** (@johnysilverhe), người trước đây bị liên hệ với các extension VS Code độc hại nay đã bị gỡ. Đây là chi tiết mà các bản tin thứ cấp bỏ qua, nhưng lại quan trọng: nó cho thấy DOUBLECUP không phải một dự án ẩn danh thoáng qua, mà gắn với một actor có lịch sử hoạt động.

![](https://cdn.hashnode.com/uploads/covers/669e2c7992d73f3fd8335153/3e0948fd-9c0f-4273-b4a4-78cab80dee57.png align="center")

Cách chia việc này đáng chú ý hơn nó thoạt nghe. Nó có nghĩa là rào cản kỹ thuật để chạy một chiến dịch steganography nhiều tầng đã bị hạ xuống mức "biết dựng một trang web". Một kẻ tấn công không hiểu gì về cách nhét shellcode vào pixel của ảnh vẫn có thể mua năng lực đó. Đây là điều tôi lo về LaaS nói chung: nó không tạo ra kỹ thuật mới, nó nhân bản kỹ thuật cũ ra cho nhiều tay hơn.

## Chuỗi lây tấn công

![Sơ đồ chuỗi lây nhiễm DOUBLECUP từ trang CRM giả đến payload chạy trong bộ nhớ](https://cdn.hashnode.com/uploads/covers/669e2c7992d73f3fd8335153/b96a9304-abc0-4b9b-8b5a-cfa06ca172a6.png align="center")

Để dựng một chiến dịch, kẻ tấn công dùng ứng dụng Go trên Windows cấu hình domain, slug, phương pháp steganography, kiểu nhúng và các URL payload. Việc này sinh ra một configuration endpoint tại `https://{domain}/{slug}/api/config`. Một GET request tới đó trả về URL ảnh stego, kích thước ảnh, session endpoint, và các lệnh soạn riêng cho từng trình duyệt: Chrome, Edge, Firefox, Brave, Opera.

Khi nạn nhân mở trang mồi, chuỗi diễn ra gần như tức thì. Trang sinh một Session ID 16 ký tự, gửi request im lặng để log telemetry, và xác định IP công khai của nạn nhân qua một domain echo do actor kiểm soát hoặc API bên thứ ba như ip-api.com. Sau đó nó ép trình duyệt tải ngầm và cache một ảnh stego, đồng thời poll server mỗi 1,2 đến 3 giây. Khi server báo `steg_ready`, trang kích hoạt cơ chế chiếm clipboard, chép sẵn lệnh khớp trình duyệt vào clipboard nạn nhân, và hiện một hộp CAPTCHA giả thuyết phục họ dán rồi chạy.

Đây là đoạn khéo nhất, và cũng là chỗ đáng để đội phòng thủ soi kỹ. Lệnh không tải gì về từ internet cả. Nó lục cache trình duyệt tìm đúng tấm PNG dựa trên kích thước file chính xác, rồi dùng `findstr` hoặc `certutil`, hai tiện ích có sẵn của Windows, để moi và chạy payload tầng một giấu bên trong ảnh. Một ví dụ lệnh thật cho Microsoft Edge trong báo cáo tìm file cache có kích thước đúng 304204 byte, rồi dùng `findstr` để lọc chuỗi và đẩy qua PowerShell chạy ẩn. Tầng một báo về C2 rằng IP nạn nhân đã nhiễm, rồi kích hoạt tầng hai.

![](https://cdn.hashnode.com/uploads/covers/669e2c7992d73f3fd8335153/c00b4054-35aa-4e54-9a82-39cf0f1ccabc.png align="center")

Tầng hai là một dropper fileless đã obfuscate. Nó lấy IPv4 công khai của máy, và đây là điểm cốt lõi: nó dùng chính IP đó làm khóa. Cụ thể, IP được đưa qua hàm dẫn xuất khóa PBKDF2 để sinh khóa 32 byte cho một stream cipher tùy biến, kết hợp SHA-256 ở chế độ Counter (CTR) với XOR bitwise. Payload cuối được cất trong một mảng số nguyên phân mảnh, xen lẫn lệnh rác để đánh lừa heuristic hành vi. Sau khi giải mã bằng khóa dẫn xuất từ IP, dropper đối chiếu kết quả với một giá trị SHA-256 hardcoded rồi nạp thẳng .NET assembly hoặc PowerShell ScriptBlock vào bộ nhớ tiến trình.

Cái khóa dẫn xuất từ IP đó không phải chi tiết trang trí. SOCRadar gọi thẳng đây là **environmental keying** (MITRE T1480.001), và giải thích hệ quả: nếu một nhà phân tích cho mẫu chạy trong sandbox offline hoặc từ một mạng khác mạng nạn nhân, khóa dẫn xuất sẽ sai, và quá trình giải mã thất bại. Payload cuối không bao giờ lộ diện. Phân tích tĩnh tấm PNG cũng không cho bạn payload cuối, vì thứ trong ảnh mới chỉ là tầng một. Nói cách khác, kẻ viết DOUBLECUP đã gắn payload vào ngữ cảnh mạng của nạn nhân: một mẫu chỉ "nở" đúng trên máy nó nhắm tới.

Cần nói thẳng: dùng steganography trong ClickFix không phải phát minh của DOUBLECUP. Huntress trước đây đã ghi nhận các chiến dịch giấu LummaC2 và Rhadamanthys trong dữ liệu pixel của ảnh PNG. Cái mới ở đây là gộp steganography, lạm dụng cache trình duyệt và khóa dẫn xuất từ IP lại thành một quy trình đóng gói bán sẵn.

## Khuyến nghị

Vì chuỗi này fileless, trú trong cache hợp lệ và ngụy trang bằng binary hệ thống, việc chỉ dựa vào chữ ký file hay tên tiến trình gần như vô dụng. Trọng tâm nên đặt vào hành vi. Vài hướng săn lùng cụ thể, xếp theo độ ưu tiên:

**Ưu tiên cao nhất, chặn vector đầu vào.** Triển khai chính sách chặn hoặc cảnh báo khi có lệnh được dán và chạy trực tiếp từ hộp thoại Run (Win+R), hoặc khi trình duyệt sinh ra `cmd.exe`/`powershell.exe` ngay sau hoạt động clipboard. Đây là điểm can thiệp rẻ và hiệu quả nhất trong toàn chuỗi.

**Săn hành vi đọc cache bất thường.** Cảnh báo khi `certutil` hoặc `findstr` truy cập thư mục cache trình duyệt (ví dụ đường dẫn User Data của Chrome/Edge) rồi decode nội dung. Một tiện ích hệ thống lục cache theo kích thước file rồi giải mã là hành vi độ tin cậy cao, vì người dùng bình thường không làm vậy.

**Săn scheduled task và binary bị đổi tên.** Truy tìm các task tên `GoogleUpdateService`, `MSEdgeUpdateService`, `MicroUpdaterV1`, `PythonAppUpdater`. Cảnh báo các bản sao binary hệ thống (conhost/powershell/mshta) chạy từ thư mục ghi được của người dùng thay vì System32, và các file có metadata PE khớp một ứng dụng nhưng chạy từ đường dẫn không khớp.

**Giám sát WMI Event Subscription tạo mà không qua wmic.exe/powershell.exe** trong cây tiến trình, đặc trưng của cơ chế persistence thay thế của DeviceManager.

**Ở lớp mạng, để ý ba dấu hiệu.** Truy vấn DNS TXT khối lượng lớn mang nhãn mã hóa dài; các truy vấn `microsoft.com` phân giải về hạ tầng không phải của Microsoft; và traffic `eth_call` tới các RPC endpoint công khai từ máy chủ vốn không có workload blockchain nào. Việc chặn C2 theo IP sẽ kém hiệu quả do EtherHiding, nên hãy dồn phát hiện về endpoint và về các mẫu DNS bất thường thay vì trông vào một danh sách IP tĩnh. Song song, chặn và retro-hunt toàn bộ IOC bên dưới.

Về đào tạo nhận thức: ClickFix đã đủ phổ biến để đưa "một trang bảo bạn dán lệnh vào Run hoặc PowerShell là dấu hiệu tấn công" thành nội dung bắt buộc, ngang hàng với cảnh báo phishing truyền thống.

## IOC

Toàn bộ IOC dưới đây trích từ báo cáo SOCRadar, đã defang. Danh sách rút gọn các chỉ số chính; xem báo cáo gốc để có đầy đủ.

```plaintext
# IP Address
213[.]139[.]77[.]109        # DOUBLECUP license, open directory
80[.]96[.]109[.]229         # DOUBLECUP license
167[.]148[.]201[.]131       # DOUBLECUP license
89[.]124[.]117[.]12         # DOUBLECUP license
67[.]219[.]107[.]181        # Payload Builder IP
91[.]92[.]240[.]100         # DeviceManager C2

# Domain - phishing injecting DOUBLECUP
login-netsuite[.]com
login-odoo[.]com
login-salesforce[.]com
verification-salesforce[.]com
login-hubspot[.]com
pending-verification[.]com

# Domain - delivery / C2
canva-arts[.]com            # Delivers DOUBLECUP
doublecap[.]ltd
doublecap[.]live
alphastore[.]vg             # CountLoader C2
appleid-customertelemetry[.]gl   # macOS CountLoader C2

# URL
hxxp[://]67[.]219[.]107[.]181/hgflssvslvidfugvbldiuv         # Payload Builder URL
hxxps[://]s3[.]us2[.]lyve[.]seagate[.]com/fullstack09/MicroUpdaterV1[.]exe   # DeviceManager

# Blockchain
0xc027490AF56a9d7050fc259Ecd03DA1580b84aae   # DeviceManager smart contract
0xCE17b1EF00d47105Bc127BbE6fC45dE47BC22fb8   # DeviceManager Ethereum address

# SHA-256
882914f9014f14e89123e835f103ac8f9d4b2e358c1f21c1cbc7f1054e6afed6   # DOUBLECUP client
28cbbca8099bb1b27668d135314842c69ceb478a7d6b4b08f063d106a06c8f9d   # 2nd stage stego PNG
6e08cb5602f63bee2b40739167b4aef77763bc8fb47b4839ca2fc1607ad35cba   # MicroUpdaterV1.exe (DeviceManager)
ea70895620f955b0712b85c3fee41de7437d5068267966f0b4fb6fa2704c3a50   # run.pyw (DeviceManager)
bdf28e611d77362c40a0445655a35943c03accf21bb9a5af755da7eac5ea5e40   # CountLoader
afe273533d6f9d0b8852988f6a4b34571dd52af4c690e54723a86257aa8a015d   # setup.sh (macOS CountLoader stager)

# Task names
DOUBLECUP | MicroUpdaterV1 | PythonAppUpdater
GoogleUpdateService<GUID> | MSEdgeUpdateService<GUID>

# Behavior (hunt, not static IOC)
certutil/findstr doc cache trinh duyet roi decode
Ban sao conhost/powershell/mshta chay tu thu muc ghi duoc cua user
Truy van DNS TXT dai, apex microsoft.com phan giai ve IP khong phai Microsoft
eth_call toi public RPC tu host khong co workload blockchain
```

## Tài liệu tham khảo

*   SOCRadar Threat Research Unit, *Introducing DOUBLECUP, a ClickFix Loader Delivering CountLoader and DeviceManager RATs* (03/08/2026, cập nhật 18/08/2026): https://socradar.io/blog/doublecup-clickfix-loader-devicemanager-rats/
    
*   BleepingComputer, *New DOUBLECUP ClickFix service hides malware in browser cache images* (Lawrence Abrams, 03/08/2026): https://www.bleepingcomputer.com/news/security/new-doublecup-clickfix-service-hides-malware-in-browser-cache-images/
    
*   Bối cảnh CountLoader trước đó: Cyderes, SilentPush, McAfee (dẫn trong báo cáo SOCRadar)
    
*   Bối cảnh EtherHiding: Google Threat Intelligence, *DPRK adopts EtherHiding*
