APT28 khai thác lỗ hổng Microsoft Office CVE-2026-21509 trong chiến dịch tinh vi

2148
13-02-2026
APT28 khai thác lỗ hổng Microsoft Office CVE-2026-21509 trong chiến dịch tinh vi

1. Tóm tắt sự kiện

Một nhóm APT có chủ quyền APT28 được ghi nhận là liên quan đến các chiến dịch gián điệp mạng cấp quốc gia, vừa triển khai một chiến dịch tinh vi nhằm vào các tổ chức ở châu Âu, trong đó có cơ quan chính phủ, quân đội và hệ thống logistic vận tải.

Những kẻ tấn công đã khai thác lỗ hổng Microsoft Office 1-day (CVE-2026-21509), sử dụng các spear-phishing để xâm phạm các cơ quan chính phủ. Chiến dịch này có chuỗi lây nhiễm nhiều giai đoạn và các payload mới, bao gồm:

Một trình tải (loader) ban đầu đơn giản, 

Một backdoor Outlook VBA (NotDoor) 

Một biến thể đã chỉnh sửa của implant Covenant (“CovenantGrunt”)

Các tác nhân đe dọa đã lợi dụng dịch vụ lưu trữ đám mây hợp pháp (filen.io) làm hạ tầng điều khiển và kiểm soát (C2), qua đó trộn lẫn lưu lượng độc hại với hoạt động người dùng bình thường để tránh bị phát hiện.

2. Mức độ nghiêm trọng

- Loại lỗ hổng: Bypass tính năng bảo mật trong Microsoft Office.

- Ảnh hưởng: Có thể thực thi mã khi mở tài liệu Office bị đóng gói độc hại — không cần macro hoặc tương tác người dùng đặc biệt.

- Nhóm tấn công: APT28, một nhóm tin tặc có tổ chức được trang bị kỹ thuật cao, với chiến thuật sử dụng các dịch vụ cloud hợp pháp (ví dụ dịch vụ lưu trữ, hạ tầng phổ biến) để liên lạc và điều khiển mã độc, khiến việc phát hiện và chặn đứng trở nên khó khăn hơn.  

3. Hành vi khai thác và kỹ thuật

- Kẻ tấn công gửi spear-phishing email chứa tài liệu Office mã độc.

-  Khi mở tài liệu này, Office tải payload bổ sung qua WebDAV/HTTP và triển khai loader DLL.

-  Chuỗi tấn công có thể dẫn đến:

  • Cài đặt backdoor
  • Duy trì truy cập
  • Tiếp tục tấn công internal network
  • Thu thập thông tin nhạy cảm

4. Khuyến nghị hành động

- Cập nhật Microsoft Office lên phiên bản đã được vá (Hướng dẫn cập nhật có trong file đính kèm).

- Không tải, mở file đính kèm từ email chưa rõ nguồn gốc.

- Luôn bật Windows Defender, tăng cường quét malware trên máy tính.

Phân tích về tấn công của APT28

Tổng quan chuỗi lây nhiễm

Cuộc tấn công của APT28 bắt đầu bằng các email spear-phishing chứa tài liệu được trang bị kỹ thuật để khai thác CVE-2026-21509 - một lỗ hổng cho phép vượt qua cơ chế bảo mật của Microsoft Office. Lỗ hổng này đã được vá thông qua một bản cập nhật bảo mật khẩn cấp phát hành ngoài lịch trình (out-of-band). Khi nạn nhân mở các tài liệu độc hại này, mã khai thác sẽ tự động kích hoạt mà không cần macro hay bất kỳ tương tác nào từ người dùng. Lỗ hổng cho phép các đối tượng OLE nhúng thực thi mã bằng cách lợi dụng giao thức WebDAV để tải các payload bên ngoài từ hạ tầng do kẻ tấn công kiểm soát.

Giai đoạn khai thác ban đầu sẽ tải xuống một shortcut LNK độc hại và một DLL loader giai đoạn đầu, tạo nền tảng cho chuỗi lây nhiễm nhiều tầng phức tạp. Loader này có thể:

Giải nén một tệp hình ảnh PNG được mã hóa chứa shellcode, sau đó giải mã và thực thi CovenantGrunt trực tiếp trong bộ nhớ; hoặc thả tệp VbaProject.OTM để triển khai payload NotDoor.

Shellcode này tiếp tục tải một payload dựa trên .NET, thực hiện các thao tác trao đổi khóa với hạ tầng lưu trữ đám mây.

Toàn bộ chuỗi tấn công được thiết kế nhằm tăng khả năng chống chịu và né tránh phát hiện, thông qua việc sử dụng payload được mã hóa, dịch vụ đám mây hợp pháp làm hạ tầng C2, thực thi trong bộ nhớ và kỹ thuật tiêm tiến trình (process injection) nhằm giảm thiểu dấu vết pháp chứng. Cách tiếp cận nhiều lớp này cho thấy trình độ tác chiến ngày càng tinh vi của APT28 trong việc duy trì quyền truy cập bền vững đồng thời tránh bị phát hiện trong môi trường doanh nghiệp.

APT28 khai thác lỗ hổng Microsoft Office CVE-2026-21509 trong chiến dịch tinh vi - Ảnh 1.

Khai thác và trình tải ban đầu (“SimpleLoader”)

Tài liệu spear-phishing sử dụng khai thác CVE-2026-21509 để thực thi mã ngay khi được mở. Theo Microsoft, CVE-2026-21509 cho phép kẻ tấn công vượt qua các hạn chế bảo mật OLE của Office, khiến các điều khiển COM không an toàn có thể bị thực thi. Trên thực tế, các tài liệu độc hại của APT28 đã nhúng một đối tượng OLE được chế tạo đặc biệt (ví dụ: điều khiển ActiveX Shell.Explorer) để tự động tải payload giai đoạn tiếp theo qua HTTP/WebDAV.

APT28 khai thác lỗ hổng Microsoft Office CVE-2026-21509 trong chiến dịch tinh vi - Ảnh 2.

Việc thực thi file LNK được tải xuống sẽ dẫn đến việc nạp một DLL có tên SimpleLoader.

Chuỗi lây nhiễm triển khai SimpleLoader, sử dụng ba cơ chế mã hóa XOR khác nhau:

XOR một byte đơn (0x43) để tạo mutex

XOR luân phiên từng byte kèm padding null cho chuỗi đường dẫn

Khóa XOR xoay vòng 76 ký tự để giải mã payload nhúng

Khi được thực thi trong thành phần steganography loader, loader sẽ tạo mutex đảm bảo chỉ chạy một phiên bản duy nhất, sau đó khởi động quy trình dropper, ghi ba tệp xuống ổ đĩa:

Payload chính (EhStoreShell.dll) vào %PROGRAMDATA%\USOPublic\Data\User\

Tệp cấu hình tác vụ theo lịch (scheduled task) dạng XML vào thư mục tạm của người dùng

Một tệp PNG chứa payload đã mã hóa, ngụy trang giống các tệp cài đặt OneDrive hợp pháp

Cơ chế duy trì truy cập (persistence) được thực hiện thông qua kỹ thuật chiếm quyền đối tượng COM (COM object hijacking), nhắm vào CLSID {D9144DCD-E998-4ECA-AB6A-DCD83CCBA16D}. Loader tạo một scheduled task có tên “OneDriveHealth”, kích hoạt sau 60 giây kể từ khi đăng ký. Tác vụ này thực thi chuỗi lệnh: kết thúc tiến trình explorer.exe, khởi chạy lại nó (kích hoạt việc tải đối tượng COM bị chiếm quyền), rồi tự xóa scheduled task. Khi được nạp vào tiến trình explorer.exe mới, EhStoreShell.dll thiết lập kết nối C2 với filen.io.

Steganography loader (EhStoreShell.dll) thực hiện nhiều cơ chế chống phân tích, bao gồm:

Tạm dừng 3 giây kèm kiểm tra thời gian thực (ngưỡng ≥ 2,9 giây) để phát hiện môi trường sandbox tăng tốc thời gian

Kiểm tra tên tiến trình để đảm bảo chỉ thực thi trong explorer.exe

Loader giải mã các chuỗi nhúng bằng XOR một byte (khóa 0x43) và phân giải 10 API của Windows thông qua tra cứu dựa trên hàm băm. Sau khi xác thực thành công, loader sẽ tìm và xử lý tệp SplashScreen.png đã được thả trước đó.

Mã độc tích hợp một bộ giải mã PNG hoàn chỉnh gồm 10 hàm chuyên biệt để:

Phân tích header IHDR

Trích xuất bảng màu PLTE

Giải nén các chunk IDAT bằng thuật toán zlib

Xây dựng bảng Huffman

Xử lý cơ chế interlacing Adam7

Cuối cùng, nó trích xuất một shellcode .NET loader được ẩn trong các khối dữ liệu của hình ảnh.

APT28 khai thác lỗ hổng Microsoft Office CVE-2026-21509 trong chiến dịch tinh vi - Ảnh 3.

Shellcode được trích xuất hoạt động như một cơ chế bootstrap assembly .NET không ghi file xuống đĩa (fileless). Bằng cách duyệt Process Environment Block (PEB) để phân giải API động (bỏ qua Import Address Table), shellcode nạp MSCOREE.DLL và OLEAUT32.DLL, sau đó gọi CLRCreateInstance để khởi tạo .NET runtime ngay trong tiến trình explorer.exe đã bị xâm nhập.

Payload hậu khai thác: CovenantGrunt với C2 dựa trên đám mây

Sau khi shellcode được thực thi thành công, chuỗi lây nhiễm chuyển sang một .NET loader theo từng giai đoạn (biến thể backdoor Covenant đã được chỉnh sửa, tên “Publish”) triển khai giao thức bắt tay mật mã với hạ tầng điều khiển của kẻ tấn công bằng cặp khóa RSA 2048-bit.

Hạ tầng C2 của đối tượng theo dõi UUID thư mục gốc trên filen.io để phát hiện nạn nhân mới đăng ký, sau đó tạo một khóa phiên AES-256 ngẫu nhiên 32 byte, mã hóa khóa này bằng khóa công khai RSA của nạn nhân và tải khóa phiên đã mã hóa lên thư mục con dành riêng cho nạn nhân. Khi nhận được phản hồi, nạn nhân giải mã khóa phiên bằng khóa riêng RSA của mình, rồi thực hiện cơ chế challenge–response để xác minh bắt tay. Sau khi hoàn tất, loader tải assembly Covenant Grunt đã được mã hóa, giải mã bằng khóa phiên vừa thiết lập và thực thi thông qua Assembly.Load() kết hợp gọi phương thức bằng reflection nhắm tới thuộc tính [DisplayName("Invite")], đạt được thực thi hoàn toàn không ghi file (fileless).

Implant Covenant Grunt đã được tái thiết kế để sử dụng filen.io làm kênh C2. Assembly .NET này gồm 4 thành phần chính:

  • FilenApi: Client REST API hoàn chỉnh cho các endpoint gateway, ingest và egest của filen.io trên 24 subdomain
  • FilenMessenger: Triển khai giao diện IMessenger để polling và tải lên các file nhiệm vụ đã mã hóa
  • FilenEncryptor: Cung cấp mã hóa AES-256-GCM với nonce riêng cho từng file và kiểm tra toàn vẹn bằng HMAC-SHA256
  • GruntExecutor: Engine thực thi nhiệm vụ, hỗ trợ nạp assembly .NET, thực thi PowerShell và truyền kết quả qua anonymous pipe

Implant mã hóa kết quả bằng AES-256-CBC kết hợp HMAC-SHA256 rồi tải ngược về thư mục để kẻ tấn công thu thập và xử lý.

Phân tích hạ tầng filen.io bị xâm nhập cho thấy quy mô hoạt động đáng kể của chiến dịch: các nạn nhân được xác nhận phân bố trên ít nhất hai tài khoản (fiscalizacionycontrol@cordoba.gov.ar và jannet.stillman@outlook.com). Khả năng hậu khai thác bao gồm trinh sát hệ thống (arp.exe, systeminfo.exe, tracert.exe), tiêm tiến trình vào svchost.exe để duy trì tồn tại, và chuẩn bị cho di chuyển ngang (lateral movement) — tất cả được thực thi qua các assembly .NET nạp động, không để lại dấu vết pháp chứng trên đĩa ngoài injection code tồn tại trong bộ nhớ.

Biến thể backdoor Outlook “NotDoor”

Song song với chuỗi steganography loader, một số mục tiêu trong chiến dịch nhận được NotDoor — backdoor hai giai đoạn tập trung vào Outlook, được thiết kế để thu thập tình báo email dài hạn thay vì C2 tương tác.

Sau khi SimpleLoader thực thi, nó chỉnh sửa registry để vô hiệu hóa hoàn toàn cơ chế bảo mật macro của Outlook:

HKCU\Software\Microsoft\Office\16.0\Outlook\Security\Level đặt thành 1 (tin cậy mọi macro, không cảnh báo)

LoadMacroProviderOnBoot đặt thành 1 (bắt buộc khởi tạo macro provider khi khởi động)

Điều này tạo môi trường thực thi bền vững, tồn tại qua các lần khởi động lại ứng dụng và không cần tương tác người dùng. Dropper sau đó ghi tệp VbaProject.OTM (32.768 byte) trực tiếp vào %APPDATA%\Microsoft\Outlook.

Macro VBA triển khai giám sát email thông qua hai trigger tự động:

Application_MAPILogonComplete: chạy khi đăng nhập Outlook

Application_NewMailEx: kích hoạt ngay khi có email mới để chuyển tiếp theo thời gian thực

Cơ chế trích xuất dữ liệu duyệt 4 loại thư mục (Inbox, Drafts, Junk Mail, RSS Feeds), xử lý tối đa 10 email mỗi thư mục mỗi lần chạy. Với mỗi email chưa xử lý, macro sử dụng Outlook Object Model gốc để lưu toàn bộ email (header, nội dung, tệp đính kèm, metadata) dưới dạng file .msg tại %TEMP% emp_email.msg, tạo email chuyển tiếp mới kèm bản gốc và gửi tới hai địa chỉ do kẻ tấn công kiểm soát qua SMTP tiêu chuẩn.

Macro đánh dấu email đã xử lý bằng thuộc tính tùy chỉnh “AlreadyForwarded” để tránh gửi trùng lặp và đặt DeleteAfterSubmit = True để tự động xóa thư chuyển tiếp khỏi thư mục Sent Items.

Kỹ thuật này đặc biệt hiệu quả với các tổ chức ngoại giao hoặc cơ quan chính phủ, nơi các tài khoản đặc quyền cao thường nhận tài liệu chính sách nhạy cảm, điện mật và trao đổi chiến lược — phù hợp với mục tiêu thu thập tình báo của APT28.

Hạ tầng và TTPs

Về hạ tầng, chiến dịch của APT28 nổi bật vì đã lợi dụng được các dịch vụ đám mây hợp pháp. Trong đợt tấn công năm 2026 này, filen.io đóng vai trò kênh C2 cốt lõi cho CovenantGrunt. Toàn bộ beaconing và điều phối nhiệm vụ diễn ra qua các yêu cầu HTTPS tới API của filen.io, ngụy trang như lưu lượng lưu trữ đám mây thông thường. Các chiến dịch trước đó từng sử dụng Koofr và Icedrive cho C2, cho thấy APT28 có khả năng linh hoạt thay đổi nền tảng đám mây.

Về phân phối, giai đoạn đầu dựa vào các máy chủ web bị xâm nhập hoặc do kẻ tấn công đăng ký để lưu trữ tài liệu độc hại và file LNK. Ví dụ, các domain như wellnessmedcare[.]org, wellnesscaremed[.]com, freefoodaid[.]com và longsauce[.]com được dùng để lưu trữ và phân phối khai thác Office (có thể phục vụ cả cho quá trình tải qua WebDAV và làm nội dung mồi nhử). Nhóm đe dọa hành động rất nhanh, thậm chí đăng ký domain mới ngay trong ngày sử dụng cho tấn công, cho thấy mức độ linh hoạt và tổ chức cao của chiến dịch.

SHARE