Ý chính: Chiến dịch lừa đảo “FileFix” sử dụng kỹ thuật cache smuggling để khiến trình duyệt lưu trữ dữ liệu nhị phân (ZIP/DLL) như thể là ảnh, rồi một PowerShell “headless” truy xuất và giải nén dữ liệu đó từ cache — do đó không hiện diện file được tải về rõ ràng và dễ né tránh nhiều lớp phát hiện.





TL;DR
- Tác giả: Marcus Hutchins (Expel Intel).
- Mục tiêu: campaign mạo danh Fortinet VPN Compliance Checker để lừa người dùng doanh nghiệp.
- Kỹ thuật nổi bật: cache smuggling — trình duyệt được ép tải một “ảnh” nhưng thực chất là một ZIP/dữ liệu nhị phân được gói giữa hai marker, được lưu trong cache trình duyệt.
- Payload không cần tải về rõ ràng (no explicit download) — PowerShell trên máy nạn nhân đọc cache, trích dữ liệu giữa 2 marker, viết file ZIP, giải nén và chạy executable.
1. Mô tả chi tiết kỹ thuật
1.1 Lure và social engineering
- Trang giả mạo trình bày như một “Fortinet VPN Compliance Checker”. Giao diện khuyến khích người dùng copy một đường dẫn mạng (ví dụ
\\Public\\Support\\VPN\\ForticlientCompliance.exe) rồi paste vào File Explorer (Ctrl+L, Ctrl+V, Enter) — thao tác này làm Explorer mở đường dẫn/điều hướng. - Để người dùng không nghi ngờ, phần hiển thị chứa đúng đường dẫn hợp lý, nhưng phần sao chép thực tế chứa thêm ~139 khoảng trắng + một lệnh PowerShell ẩn (pushed out of view bằng khoảng trắng), khiến Explorer chỉ hiển thị đoạn hợp lý.
Hậu quả: người dùng nhấn Enter mà không thấy gì khác thường, trong khi lệnh ẩn chạy headless.
1.2 Kỹ thuật cache smuggling (chi tiết)
- Phần JavaScript của trang phishing
fetch('/<id>').then(r => r.blob())trả về một tài nguyên được gắn headerContent-Type: image/jpeg(hoặc tương tự), khiến trình duyệt lưu file vào cache như một ảnh. - Nhưng nội dung thực sự là dữ liệu text/base64 hay bytes chứa một ZIP (bắt đầu bằng
PK), được bọc giữa hai chuỗi marker (ví dụbTgQcBpvvàmX6o0lBw). - PowerShell chạy trên máy đọc toàn bộ file cache (browser cache files chứa nhiều tài nguyên gom vào một file), dùng regex
(?<=bTgQcBpv)(.*?)(?=mX6o0lBw)để trích giữa hai marker, chuyển thành bytes, ghi raComplianceChecker.zip, giải nén và chạyFortiClientComplianceChecker.exe.
Điểm then chốt: hệ thống không thực hiện một HTTP download rõ ràng của file thực thi — mọi thứ diễn ra thông qua cache nội bộ của trình duyệt, làm nhiều lớp bảo vệ/trình quét không phát hiện vì không có request tải binary tới đĩa theo cách truyền thống.
2. Phân tích rủi ro và mức độ né tránh phát hiện
- Bypass signature/EPP/AV: Tệp ZIP/payload chưa từng xuất hiện dưới dạng
.exehay.dlltrên mạng, nên nhiều bộ quét dựa trên tải xuống hoặc request HTTP để phân tích sẽ bỏ sót. - Bypass DLP/Proxy: Nếu endpoint/proxy dựa trên phát hiện hành vi tải xuống hay chặn request đến domain độc hại thì kỹ thuật này giảm dấu vết vì mọi thứ được “giấu” trong HTTP response nhìn giống ảnh.
- Bypass IDS/EDR heuristic đơn giản: Nhiều công cụ dò tìm script PowerShell có focusing vào việc tải từ Internet (Invoke-WebRequest, Invoke-RestMethod, Start-BitsTransfer…). Ở đây, PowerShell chỉ đọc từ disk (cache), tìm marker và ghi file — hành vi này ít bị khóa nếu EDR không theo dõi truy cập file cache cụ thể.
Tuy nhiên: kỹ thuật vẫn có dấu vết — thao tác copy/paste + rundll/exec headless + thao tác ghi/giải nén trên %LOCALAPPDATA% đều là hành vi có thể phát hiện nếu hệ thống theo dõi file system, clipboard, hoặc hành vi explorer automation.
3. Indicators of Compromise (IoC) & detection ideas
3.1 IoC trực tiếp trong bài
- Marker chuỗi:
bTgQcBpvvàmX6o0lBw(có thể thay đổi giữa chiến dịch) — tìm dấu chuỗi trong cache files. - Đường dẫn giả mạo hiển thị:
\\Public\\Support\\VPN\\ForticlientCompliance.exe(dùng như vỏ bọc để lừa người dùng). - Tên thư mục tạm:
%LOCALAPPDATA%\FortiClient\compliancevà fileComplianceChecker.zip(hoặc tương tự).
3.2 Phát hiện hành vi (thực tế, đề xuất)
- Giám sát clipboard: phát hiện page/web-origin viết nội dung clipboard chứa nhiều khoảng trắng trước một chuỗi hợp lệ hoặc clipboard dài bất thường.
- Giám sát Explorer address bar events: việc paste + Enter dẫn tới quá trình gọi
conhost.exe --headless powershellhoặc tương tự là hành vi bất thường. - Quét cache browser: định kỳ scan cache entry để tìm marker tùy chiến dịch (hoặc header/dòng đặc biệt trong response metadata).
- EDR file activity: theo dõi các quá trình đọc file cache trong thư mục trình duyệt hoặc hành vi đọc hàng loạt file cache + ghi file zip vào %LOCALAPPDATA% rồi giải nén.
- Chặn script headless: phát hiện/constrain các tiến trình chạy powershell với tham số
-c/--headlesstừ conhost/rundll/other non-interactive processes.
4. Biện pháp phòng ngừa (actionable)
- Đào tạo người dùng: cảnh báo về hành vi copy/paste đường dẫn mạng, đặc biệt yêu cầu kiểm tra clipboard (paste vào Notepad để xem full nội dung) trước khi Enter.
- Hạn chế quyền execution: các user bình thường không nên có quyền chạy arbitrary PowerShell từ explorer events; áp dụng AppLocker/WDAC rules để chặn execution từ những folder tạm hoặc conhost có tham số bất thường.
- Giám sát clipboard và explorer automation: bật alert nếu clipboard dài > N kí tự hoặc chứa non-printable characters / long whitespace padding.
- Quét cache định kỳ: EDR có thể quét cache files cho các marker đáng ngờ (hoặc metadata header gắn tag) — tuy nhiên cân nhắc hiệu suất và false positives.
- Harden trình duyệt: hạn chế khả năng trang web ghi trực tiếp vào cache static resource (chỉ cho phép cache các nguồn tin cậy), hoặc cấu hình proxy để rewrite/normalize Content-Type headers cho domain đáng ngờ.
5. So sánh với ClickFix & các kỹ thuật tương tự
- ClickFix: dụ người dùng copy/paste một dòng lệnh để tải và chạy mã — ClickFix thường tải payload qua mạng rõ ràng.
- Cache smuggling (bài này): nâng tầm bằng cách không thực hiện tải binary trực tiếp — dữ liệu được đưa vào cache như một ảnh và sau đó phục hồi bởi script local.
Kết luận: cache smuggling là một biến thể tinh vi hơn của social-engineering + exploitation of browser caching semantics, khó bị phát hiện bởi rule-based detection nếu không có giám sát hành vi tập trung.
6. Tài liệu tham khảo & nguồn (để điều tra sâu hơn)
- Bài gốc (phân tích chi tiết bởi Expel).
Source link: Expel – Cache smuggling: When a picture isn’t a thousand words






