EvilTokens & "Ghost Phishing": Trang lừa đảo chỉ hiện hình trong trình duyệt, cướp token Microsoft 365 mà không cần mật khẩu

EvilTokens, một bộ kit phishing-as-a-service (PhaaS) xuất hiện từ giữa tháng 2/2026, ghép hai kỹ thuật mà cộng lại đánh bại cả cơ chế quét URL tĩnh lẫn xác thực đa yếu tố (MFA). Mã HTML của trang lừa đảo được mã hóa bằng AES-GCM và chỉ giải mã rồi hiện lên DOM sau khi trình duyệt của nạn nhân render — hành vi "ghost phishing". Thứ mà trang sau giải mã chạy tiếp chính là Microsoft Device Code Phishing: nạn nhân được dẫn qua một phiên đăng nhập Microsoft 365 / Entra ID thật trên đúng domain của Microsoft, và cặp OAuth access token cùng refresh token hợp lệ sinh ra được trao thẳng cho kẻ tấn công. Không mật khẩu nào bị đánh cắp, còn MFA thì do chính nạn nhân hoàn tất — nên nó không hề chặn được cuộc tấn công.
Nguồn ảnh: The Hacker News / ANY.RUN
Tóm tắt
Một email EvilTokens có thể vượt qua mọi bước kiểm tra tĩnh ở email gateway mà vẫn dẫn tới việc chiếm hoàn toàn tài khoản Microsoft 365. Nội dung độc hại nằm ở dạng mã hóa cho tới khi render trong trình duyệt của nhân viên, nên cơ chế đánh giá uy tín URL và giám sát ở tầng mạng chỉ nhìn thấy một phản hồi trông vô hại, trong khi nhân viên nhìn thấy một màn hình đăng nhập Microsoft đang hoạt động. Vì bộ kit lạm dụng luồng device-code của OAuth, kẻ tấn công cuối cùng nắm giữ token hợp lệ dù nạn nhân đã hoàn thành MFA đúng cách — tài khoản bị chiếm mà không cần đánh cắp mật khẩu. Chiến dịch tập trung vào Mỹ và châu Âu, nhắm công nghệ, sản xuất, giáo dục, ngân hàng, tư vấn, dịch vụ tài chính và các nhà cung cấp dịch vụ an ninh (MSSP). Kiểm soát hiệu quả nhất mà phần lớn tổ chức đang thiếu là một chính sách Conditional Access chặn luồng xác thực device-code cho người dùng thông thường; đi kèm là detonate các link khả nghi trong sandbox có khả năng quan sát trình duyệt, thay vì tin vào một verdict URL "sạch".
EvilTokens là gì
EvilTokens là bộ công cụ PhaaS tự động hóa tấn công device-code phishing nhắm vào môi trường Microsoft 365 và Entra ID. Phishing truyền thống thu thập username và password trên một trang đăng nhập giả. EvilTokens không cần cả hai. Nó lạm dụng luồng device authorization grant của OAuth 2.0 — vốn được thiết kế cho các thiết bị hạn chế nhập liệu như smart TV — để lừa người dùng ủy quyền cho phiên của kẻ tấn công ngay trên hạ tầng thật của Microsoft.
Cơ chế này quan trọng với việc phát hiện. Backend của kẻ tấn công khởi tạo một yêu cầu device-code (quan sát thấy gọi tới endpoint /api/device/start), nhận về một user_code ngắn, rồi hiển thị mã đó cho nạn nhân qua trang lừa đảo. Nạn nhân, tin rằng mình đang hoàn tất một lần đăng nhập bình thường, nhập mã trên một trang Microsoft hợp lệ và xác thực — bao gồm cả MFA. Microsoft sau đó cấp một access token và một refresh token cho phiên đang polling của kẻ tấn công. Refresh token mới là phần thưởng thật sự: nó cấp quyền truy cập bền vững, sống sót qua cả việc đổi mật khẩu và tồn tại lâu hơn phiên đăng nhập ban đầu.
"Ghost phishing": lớp mã hóa ẩn mình khỏi gateway
Lớp né tránh (evasion) mới là điều đáng nghiên cứu ở chiến dịch này. HTML của trang lừa đảo được mã hóa bằng AES-GCM và bất động cho tới khi trình duyệt giải mã nó trong bộ nhớ rồi chèn nội dung đã render vào DOM. Một secure email gateway hay một URL sandbox chỉ lấy phản hồi HTTP đầu tiên sẽ chỉ thấy ciphertext hoặc một khung gần như rỗng — không phải màn hình phishing mang thương hiệu Microsoft mà nhân viên thực sự nhìn thấy. Đánh giá uy tín URL tĩnh, so khớp chữ ký trên body phản hồi, và các kiểm soát ở tầng mạng đều đang soi một thứ không chứa cuộc tấn công.
Khoảng mù đó dịch trực tiếp thành phản ứng chậm hơn: cửa sổ phơi nhiễm dài hơn trên tài khoản bị chiếm, containment bị trì hoãn, và bằng chứng không đủ để chặn hạ tầng liên quan. Cuộc tấn công chỉ hiện hình khi bạn quan sát trang sau khi nó giải mã.
DOM lộ ra sau khi trình duyệt render — nguồn: The Hacker News / ANY.RUN
Chuỗi tấn công
Chuỗi tấn công, tái dựng từ phiên phân tích tương tác của ANY.RUN, chạy hoàn toàn trong trình duyệt:
Mồi (lure). Nạn nhân nhận một link lạm dụng một bề mặt SaaS hợp pháp để tạo độ tin cậy — trong mẫu được phân tích là một link đặt lịch Calendly (
hxxps://calendly[.]com/d/dvnf-pts-7sz).Chuyển hướng tới hạ tầng của kẻ tấn công. Luồng đi tới một trang host trên Cloudflare Workers (
*.workers[.]dev), bị sandbox gắn cờ qua các chữ ký ET INFO choworkers.devtrong TLS SNI và truy vấn DNS.Giải mã trong trình duyệt. HTML mã hóa AES-GCM giải mã và nội dung phishing hiện lên DOM, gắn với một request Fetch/XHR.
Khởi tạo device-code. Backend kích hoạt luồng device-code của Microsoft qua
/api/device/startvà đưauser_codecho nạn nhân.Xác thực hợp lệ. Nạn nhân hoàn tất một lần đăng nhập Microsoft 365 / Entra ID thật, thỏa mãn cả MFA.
Đánh cắp token. Microsoft cấp OAuth access token và refresh token hợp lệ cho kẻ tấn công, mở quyền truy cập tài khoản mà không cần mật khẩu và không có lời nhắc MFA nào ở phía kẻ tấn công.
Bằng chứng từ sandbox
Sandbox tương tác của ANY.RUN (phân tích ngày 15/6/2026, Windows 10 Pro) trả về verdict Malicious với các tag oauth-ms-phish, phishing và eviltokens. Các phát hiện hành vi cụ thể:
Phát hiện Microsoft OAuth device-code phishing bên trong tiến trình renderer của Edge.
Phát hiện PHISHING qua Suricata trên tiến trình network service.
Chống phân tích: trang bật developer-hotkey prevention, chặn truy cập DevTools để cản việc soi thủ công.
Dấu chân chỉ trên trình duyệt: không drop file thực thi nào, không ghi registry (373 sự kiện đọc, 0 ghi) — phù hợp với một chiến dịch đánh cắp credential/token thuần túy chứ không phải dropper malware.
Hạ tầng: luồng độc hại chạy trên Cloudflare Workers (
workers.dev), với một link Calendly làm cửa trước.
Phạm vi tấn công
Theo The Hacker News, hoạt động EvilTokens tập trung ở Mỹ và châu Âu, nhắm công nghệ, sản xuất, giáo dục, ngân hàng, tư vấn, dịch vụ tài chính và MSSP. Như một chỉ dấu về mức độ phơi nhiễm của các ngành này, dữ liệu submission năm 2026 của ANY.RUN trên khoảng 15.000 tổ chức cho thấy mức phơi nhiễm phishing tổng thể đạt 75,6% ở tư vấn, 72,8% ở dịch vụ tài chính, 71,9% ở sản xuất, 67,9% ở công nghệ, 66,7% ở ngân hàng, và 66,1% ở nhóm MSSP. Các con số này mô tả phơi nhiễm phishing nói chung chứ không riêng EvilTokens, nhưng lại khớp đúng những ngành mà chiến dịch này đang săn.
Nguồn ảnh: The Hacker News / ANY.RUN Threat Intelligence
Ánh xạ MITRE ATT&CK
| Tactic | Kỹ thuật | ID | Xuất hiện ở đâu |
|---|---|---|---|
| Resource Development | Acquire Infrastructure: Web Services | T1583.006 | Phishing host trên Cloudflare Workers (*.workers.dev) |
| Initial Access | Phishing: Spearphishing Link | T1566.002 | Link mồi (ví dụ URL đặt lịch Calendly) |
| Execution | User Execution: Malicious Link | T1204.001 | Nạn nhân mở link trong trình duyệt |
| Defense Evasion | Obfuscated Files or Information | T1027 | HTML phishing mã hóa AES-GCM |
| Defense Evasion | Deobfuscate/Decode Files or Information | T1140 | Giải mã phía trình duyệt để đẩy vào DOM |
| Defense Evasion | Debugger Evasion | T1622 | Chặn developer-hotkey / DevTools |
| Credential Access | Steal Application Access Token | T1528 | Device-code phishing sinh ra OAuth token |
| Defense Evasion / Lateral Movement | Use Alternate Authentication Material: Application Access Token | T1550.001 | Kẻ tấn công dùng access/refresh token được cấp |
| Persistence | Valid Accounts: Cloud Accounts | T1078.004 | Truy cập M365/Entra bền vững qua refresh token |
Chỉ dấu và phát hiện
IOC (đã defang) — lấy từ task ANY.RUN; hãy coi link Calendly và các hash là điểm pivot, và săn theo pattern Cloudflare Workers thay vì một domain đơn lẻ dễ bị "đốt":
Lure URL: hxxps://calendly[.]com/d/dvnf-pts-7sz
Backend infra: *.workers[.]dev (Cloudflare Workers)
Device code: /api/device/start
MD5: 23111B7048DA3DB16BDA411260C64B8D
SHA1: 7B8216BE97C3E6D1340E3514352E586666BCEE08
SHA256: 0F744BC8BB75DEDA97FD63C202166EBD4B012DA90B85BAC7A41FF0B30EFCA5FA
Cơ hội phát hiện bền vững nằm ở tầng identity và hành vi, không phải IP:
Giám sát sign-in Entra ID — kiểm soát giá trị cao nhất. Cảnh báo mọi lần đăng nhập tương tác có authentication protocol là Device Code. Người dùng thật gần như không bao giờ dùng luồng này một cách hợp lệ, nên sự xuất hiện của nó với một tài khoản thường là tín hiệu compromise mạnh. Đặc biệt chú ý khi một device-code grant trùng với IP/ASN/geo bất thường (kẻ tấn công polling từ hạ tầng của họ trong khi nạn nhân xác thực từ nơi khác).
Conditional Access. Chặn luồng xác thực device-code cho mọi người dùng không có nhu cầu được ghi nhận rõ ràng.
Mạng / email. Săn các chuỗi click đổ về
*.workers.dev, và coi các link mồi kiểu SaaS hợp pháp (ví dụ Calendly) mà redirect sang Cloudflare Workers là khả nghi. Vì HTML ghost phishing đánh bại quét URL tĩnh, hãy detonate link khả nghi trong sandbox có soi DOM sau giải mã, không chỉ phản hồi đầu tiên.Ứng phó. Khi nghi ngờ compromise, thu hồi refresh token và các phiên đang hoạt động ngay lập tức, reset tài khoản, và rà soát các OAuth app grant/consent.
Nhận định và liên hệ Việt Nam
Điểm cốt lõi của EvilTokens là nó biến "chúng ta đã bật MFA" thành một cảm giác an toàn giả. Nạn nhân làm mọi thứ đúng — trang Microsoft thật, mật khẩu chính xác, chấp thuận lời nhắc MFA — mà kẻ tấn công vẫn cầm được token hợp lệ, bởi luồng bị lạm dụng vốn chưa từng được thiết kế để phân biệt một thiết bị hợp pháp với phiên polling của kẻ tấn công. Chồng thêm lớp ghost phishing AES-GCM nghĩa là chính email khởi đầu lại sống sót qua đúng những kiểm soát mà phần lớn tổ chức tựa vào nhiều nhất.
Với Việt Nam, đây là chuyện rất sát: Microsoft 365 và Entra ID là xương sống định danh mặc định của một phần lớn doanh nghiệp Việt, và pattern mồi — một link SaaS hợp pháp cộng hạ tầng Cloudflare Workers dùng một lần — né được lớp phòng thủ dựa trên blocklist domain mà nhiều SOC trong nước vẫn còn dựa vào. Những đội đã đầu tư mạnh vào việc triển khai MFA nhưng chưa động tới luồng device-code hay các detection dựa trên token chính là profile mà chiến dịch này chuyển hóa dễ nhất. Tin tốt là biện pháp giảm thiểu mạnh nhất gần như miễn phí: phần lớn tổ chức có thể chặn thẳng xác thực device-code mà không mất gì về mặt vận hành.
Khuyến nghị
Ngay lập tức: Trong Conditional Access của Entra ID, chặn luồng xác thực device-code cho người dùng không cần đến; cảnh báo mọi sign-in dùng device-code.
Trong tuần: Bổ sung hunting cho chuỗi click đổ về
*.workers.devvà các mồi SaaS hợp pháp redirect sang đó; detonate link khả nghi trong sandbox có soi DOM sau giải mã.Khi bị compromise: Thu hồi refresh token và phiên, reset tài khoản, rà soát OAuth grant — một refresh token bị đánh cắp vẫn sống sót qua việc đổi mật khẩu.





