GIẢI MÃ MÃ ĐỘC MACRO OFFICE DROPPER: TẤN CÔNG ĐA GIAI ĐOẠN, ẨN MÌNH TRONG HẠ TẦNG HỢP PHÁP
NCS Threat Intelligence ghi nhận một tập tin Microsoft Excel macro-enabled đóng vai trò công cụ quản lý dữ liệu, được nhúng chức năng dropper độc hại thực thi tự động. Giao diện bảng tính hiển thị cho người dùng một công cụ hợp pháp mang nhãn “NEXUS ECOM ACCOUNT”, lớp chức năng này che giấu payload thực sự nằm ở sự kiện khởi động tài liệu.
Về cơ chế hoạt động, mã độc sử dụng sự kiện Workbook_Open để khởi chạy chuỗi thực thi, đọc và giải mã khối dữ liệu được nhúng sẵn trong tập tin. Payload sau giải mã được ghi xuống thư mục tạm dưới dạng tệp thực thi giả mạo dịch vụ hệ thống (service), sau đó được kích hoạt. Mã độc còn tích hợp một số kỹ thuật nhằm né tránh các môi trường phân tích tự động.
Chuỗi tấn công

Thông tin mẫu mã độc
| Tên file | Loại file | MD5 |
| TTS US NAMVU 2.xlsm | Xlsm file | 77b51336ed3561877eb8c4bceb6638e5 |
| Setup.exe | PE file | 49026eb6770a7a79ecdb16ace270665e |
| coreinitx64.exe | PE file | 78770a1b0f8afbda8585a781b4f9fef1 |
| Version.exe | PE file | e7ad8b8093f6c99c68c9a98e79350b6f |
| Explorer.exe | PE file | 5bc45453611a8c9ca3021c272e5aa850 |
| MergedApp.exe | PE file | 24fa693615d733878490e8a5672a7351 |
Phân tích Stage-1: Mã độc Macro – dropper stage 2
Phân tích bằng công cụ olevba phát hiện nhiều chỉ dấu đáng ngờ trong macro VBA của tập tin Excel, bao gồm cơ chế tự động thực thi, giải mã payload ẩn, ghi tệp xuống hệ thống và khởi chạy tệp. Kết quả kiểm tra thủ công xác nhận macro có chức năng dropper độc hại.

Tập tin Excel độc hại được bảo vệ bằng mật khẩu đối với VBA Project. NCS Threat Intelligence đã gỡ bỏ lớp bảo vệ này và truy xuất thành công mã nguồn macro, phục vụ quá trình phân tích chuyên sâu.

Dưới đây là đoạn macro độc hại sau khi đã được gỡ bỏ lớp bảo vệ

Dựa trên các chú thích (comment) bằng tiếng Việt trong mã macro, NCS Threat Intelligence nhận định tác nhân đứng sau phát triển mã độc này nhiều khả năng sử dụng tiếng Việt. Bên cạnh đó, một số đặc điểm trong cấu trúc và phong cách mã nguồn gợi ý khả năng tác nhân đã sử dụng công cụ AI để hỗ trợ phát triển mã độc.
Macro độc hại được kích hoạt tự động thông qua sự kiện Workbook_Open khi người dùng mở tập tin và cho phép thực thi macro.
Ở giai đoạn đầu, mã độc đọc chuỗi Base64 được lưu ẩn trong ô Z34 của worksheet đầu tiên, sau đó kiểm tra độ dài chuỗi. Nếu chuỗi có ít hơn 10 ký tự, quá trình thực thi sẽ bị bỏ qua nhằm tránh xử lý payload không hợp lệ hoặc không tồn tại.

Tiếp theo, mã khởi tạo các đối tượng Scripting.FileSystemObject và WScript.Shell, sinh tên tệp ngẫu nhiên dạng svc_<random>.exe và một tệp trung gian cache_<random>.tmp, cả hai được đặt trong thư mục %TEMP%.

Chuỗi Base64 được giải mã thành dữ liệu nhị phân thông qua đối tượng MSXML2.DOMDocument với thuộc tính bin.base64. Dữ liệu sau đó được ghi xuống tệp .tmp bằng ADODB.Stream theo từng khối nhỏ, xen kẽ các khoảng chờ ngắn. Kỹ thuật này có thể nhằm kéo dài thời gian thực thi và gây khó khăn cho quá trình phân tích trong môi trường sandbox.
Sau khi hoàn tất quá trình ghi dữ liệu, tệp .tmp được đổi tên thành tệp thực thi .exe, qua đó tách biệt hai thao tác ghi tệp và thực thi payload. Tiếp theo, mã độc sử dụng WScript.Shell.Run ở chế độ bất đồng bộ để khởi chạy tệp thực thi, cho phép macro kết thúc trong khi payload tiếp tục hoạt động độc lập.
Toàn bộ quy trình được đặt trong khối xử lý lỗi (error handling). Khi xảy ra lỗi, mã chỉ thực hiện dọn dẹp các đối tượng liên quan mà không hiển thị thông báo cho người dùng. Cơ chế này giúp quá trình thực thi thất bại một cách im lặng, hạn chế khả năng người dùng phát hiện hoạt động bất thường.
Phân tích Stage-2: “Setup.exe” – Downloader Stage-3
Tệp Setup.exe là một .NET assembly 32-bit, được đóng gói bằng SmartAssembly phiên bản 8.4.0.6650. Đây là công cụ obfuscation thương mại, được sử dụng nhằm làm phức tạp quá trình dịch ngược và gây khó khăn cho hoạt động phân tích mã nguồn tĩnh.
Sau khi thực hiện unpack lớp bảo vệ SmartAssembly, NCS Threat Intelligence thu được mã nguồn đã được giải mã, tạo cơ sở cho việc phân tích chi tiết các chức năng và hành vi của mã độc ở giai đoạn tiếp theo.

Payload Setup.exe (Stage-2) là một .NET assembly đóng vai trò downloader, chịu trách nhiệm tải xuống và thực thi thành phần mã độc ở giai đoạn tiếp theo (Stage-3).
Khi được kích hoạt, mã độc lần lượt kiểm tra danh sách URL dự phòng, cùng trỏ đến một tài nguyên nhưng được lưu trữ trên nhiều nền tảng hợp pháp khác nhau, bao gồm Cloudflare Pages, GitHub, GitLab, Neocities và một số dịch vụ hosting khác.
Việc tận dụng các nền tảng có độ tin cậy cao để lưu trữ payload giúp mã độc gia tăng khả năng vượt qua các cơ chế lọc dựa trên uy tín (reputation-based filtering), đồng thời duy trì khả năng tải xuống thành phần tiếp theo ngay cả khi một hoặc nhiều nguồn lưu trữ bị gỡ bỏ hoặc không còn khả dụng.

Trong quá trình kết nối, mã độc thiết lập TLS 1.2 và ghi đè ServerCertificateValidationCallback để chấp nhận mọi chứng chỉ, đồng thời giả mạo User-Agent trình duyệt nhằm ngụy trang lưu lượng. URL đầu tiên trả về nội dung hợp lệ sẽ được chọn làm nguồn tải; dữ liệu nhận về ở dạng Base64 được giải mã thành tệp thực thi và ghi xuống đường dẫn %APPDATA%\Microsoft\Windows\Templates\ với tên coreinitx64.exe

Để duy trì sự tồn tại, mã độc ghi một khóa Run trong registry HKCU\Software\Microsoft\Windows\CurrentVersion\Run với tên “Windows Core Service” trỏ tới payload, sau đó thực thi tệp qua Process.Start với cơ chế thử lại tối đa 5 lần và kiểm tra tiến trình có thoát quá sớm hay không nhằm đảm bảo thực thi thành công. Toàn bộ quá trình được bao bọc trong các khối xử lý lỗi rỗng, giúp mã độc thất bại hoàn toàn im lặng và không để lại dấu hiệu cho người dùng.

Phân tích stage-3: coreinitx64.exe – Thiết lập môi trường và downloader stage-4
“CoreInitx64.exe” là thành phần trung tâm của chuỗi lây nhiễm, đảm nhận vai trò chuẩn bị môi trường trước khi tải payload chính thức. Cũng chính vì đây là thành phần trung tâm của chuỗi lây nhiễm, mã độc được bảo vệ bằng Net Reactor. Khác với stage-2 vốn chỉ là downloader đơn giản, stage-3 tập trung vào vô hiệu hoá cơ chế phòng vệ và leo thang đặc quyền. Mã độc tự nhân bản vào thư mục hệ thống, phân nhánh xử lý theo quyền hạn hiện có, thêm ngoại lệ cho Windows Defender và thực hiện UAC bypass khi cần. Cuối cùng sau khi đã thực hiện đầy đủ các hành động trên, mã độc thực hiện tải và thực thi thành phần ở giai đoạn tiếp theo. Sau đây là phân tích chi tiết chức năng của mã độc stage-3.
Đầu tiên về chức năng tự nhân bản, mã độc sao chép chính nó vào đường dẫn “%APPDATA%\Microsoft\Windows\Templates” và thiết lập thuộc tính Hidden kết hợp System nhằm ẩn hoàn toàn khỏi người dùng thông thường, đồng thời giả mạo vị trí thư mục hệ thống của Windows. Việc đặt payload trong thư mục %APPDATA% cho phép mã độc hoạt động mà không bắt buộc quyền quản trị.

Tiếp đến về phân nhánh theo đặc quyền, mã độc phân biệt giữa việc tài khoản hiện tại có thuộc nhóm Administrators hay không và việc tiến trình có đang thực sự chạy với quyền nâng cao hay không. Dựa trên kết quả này, mã độc quyết định luồng xử lý tương ứng:
Cách phân nhánh có chủ đích giúp mã độc hạn chế gây lỗi và giảm dấu hiệu bất thường trên các môi trường không đủ điều kiện.

Về chức năng vô hiệu hoá Windows Defender, mã độc thêm một loạt đường dẫn vào danh sách ngoại lệ của Windows Defender (Exclusions\Paths) nhằm ngăn các payload đặt trong những vị trí này bị quét. Cơ chế được thực hiện theo hai hướng:


Danh sách ngoại lệ bao gồm nhiều tên tệp giả mạo tiến trình hệ thống hợp pháp như explorer.exe, svchost.exe, Cortana.exe, OneDrive.exe và msedge.exe. Đáng chú ý, nhiều tên tệp trong danh sách được chèn các ký tự vô hình (zero-width characters) ở giữa, và mã độc sử dụng một hàm chuyên loại bỏ các ký tự này khi so sánh, kỹ thuật vừa gây khó khăn cho việc phát hiện dựa trên chữ ký tĩnh, vừa tạo ra các tên tệp “gần giống” tiến trình hệ thống nhưng thực chất khác biệt.

Chức năng khi phần mềm chưa có đủ quyền là thực hiện leo thang đặc quyền UAC bypass. Khi cần nâng quyền, mã độc tạo một thư mục tạm mang tên RunasAdmin_<random> và giải nén ra nhiều tệp hỗ trợ, bao gồm script .vbs, .ps1, .cs và một tệp thực thi version.exe được nhúng sẵn trong resource. Trong trường hợp UAC đang bật, mã độc thực thi thông qua wscript.exe với tệp .vbs trung gian. Nếu UAC đã tắt, mã độc chạy version.exe trực tiếp với tham số runas. Sau khi thực hiện, mã độc giám sát tiến trình version và tiến hành xóa toàn bộ thư mục tạm nhằm xóa dấu vết, nhằm mục tiêu phòng chống điều tra.

Tương tự Stage-2, mã độc sử dụng danh sách nhiều URL dự phòng được lưu trữ trên các nền tảng hợp pháp để tải payload ở giai đoạn tiếp theo, với tài nguyên có tên exp40.txt.
Tuy nhiên, điểm khác biệt nằm ở cơ chế kiểm tra nguồn tải. Thay vì lần lượt truy vấn từng URL, Stage-3 sử dụng ThreadPool để gửi yêu cầu đồng thời đến nhiều nguồn và lựa chọn nguồn đầu tiên phản hồi hợp lệ. Cách tiếp cận đa luồng này giúp rút ngắn thời gian tải xuống, đồng thời tăng khả năng duy trì hoạt động khi một số nguồn không khả dụng.
Bên cạnh đó, mã độc sử dụng phương thức HEAD để kiểm tra khả năng phản hồi của máy chủ trước khi chuyển sang GET nếu máy chủ không hỗ trợ. Các yêu cầu HTTP được bổ sung thông tin User-Agent và Referer giả mạo nhằm ngụy trang lưu lượng mạng, khiến hoạt động liên lạc của mã độc khó bị nhận diện hơn.
Payload tải về được mã hóa dưới dạng Base64, sau đó giải mã thành tệp thực thi và ghi xuống thư mục %APPDATA%\Microsoft\Windows với tên giả mạo explorer.exe. Tệp được thiết lập thuộc tính Hidden nhằm hạn chế khả năng bị phát hiện thông qua kiểm tra thông thường.
Cuối cùng, mã độc thực thi tệp này ở chế độ ẩn và triển khai cơ chế thử lại tối đa 5 lần nếu quá trình khởi chạy không thành công.

Cuối cùng thực hiện persistence, mã độc có chức năng ghi khóa Run trong registry HKCU\Software\Microsoft\Windows\CurrentVersion\Run với tên giá trị “Windows Explorer” trỏ tới payload nhằm duy trì sự tồn tại qua các lần khởi động lại.

Phân tích Stage-4: Explorer.exe – Kiểm tra môi trường và Process Injection
Stage 4 là một file .Net PE32 có tên “explorer.exe”, được obfuscate bằng SmartAssembly và giả danh Windows Explorer. Nhiệm vụ chính của nó là giải mã payload cuối cùng và inject vào tiến trình hợp lệ.
Trước khi thực thi bất kỳ logic nào, mã độc kiểm tra tính toàn vẹn của chính nó thông qua StrongNameSignatureVerificationEx(). Nếu chữ ký không hợp lệ hoặc public key token không khớp giá trị gốc, mã độc vào luồng ngoại lệ và dừng ngay. Sau khi vượt qua kiểm tra, các tham số mã hóa được khởi tạo: AES key 32 bytes, IV 16 bytes, đường dẫn self-copy trong %AppData%, và lock object cho thread synchronization khi inject payload.

Tiếp đến, mã độc triển khai bốn lớp phát hiện môi trường phân tích, hoạt động theo cơ chế OR, chỉ cần một lớp phát hiện thành công là chương trình dừng. Lớp đầu tiên resolve IsDebuggerPresent động qua GetProcAddress với tên hàm xây từ mảng ký tự để tránh string detection, phát hiện các user-mode debugger như OllyDbg hay dnSpy.

Lớp thứ hai gọi NtQueryInformationProcess với ProcessDebugPort để phát hiện cả debugger kernel-level mà lớp trước bỏ sót. Lớp thứ ba kiểm tra Debugger.IsAttached, phát hiện khi Visual Studio hoặc dnSpy đang attach. Lớp cuối cùng là timing check: sleep ngẫu nhiên 3-7 giây rồi đo thời gian thực tế, nếu chưa tới 2 giây mã độc nhận diện sandbox đang fast-forward hàm Sleep, từ đó xác định đang chạy trong môi trường phân tích tự động.
Tiếp đến, mã độc tìm base address của ntdll.dll qua danh sách process modules, sau đó resolve địa chỉ hàm EtwEventWrite bằng GetProcAddress với tên hàm xây từ mảng ký tự.
Tiếp theo, nó thay đổi quyền truy cập vùng nhớ chứa hàm sang PAGE_EXECUTE_READWRITE và ghi byte 0xC3 vào byte đầu tiên. Từ thời điểm này, mọi lời gọi EtwEventWrite trả về ngay mà không ghi event nào, vô hiệu hóa hoàn toàn hệ thống ETW.
Mã độc mở kết nối tới http://www.gstatic[.]com/generate_204, endpoint Google luôn trả HTTP 204, nhẹ và hiếm khi bị firewall doanh nghiệp chặn. Nếu không có internet, toàn bộ quy trình dừng lại.

Về khả năng Persistence, nếu mã độc không phải chạy từ vị trí ban đầu là %AppData%, nó sẽ tự sao chép bản thân tới %AppData%\Microsoft\Windows\ với tên file là explorer.exe (tên chứa ký tự Zero-Width Joiner để đánh lừa người dùng khi nhìn tên là explorer nhưng thực ra lại là một file khác). Sau đó mã độc thêm giá trị “Windows Explorer” vào registry key Run trỏ tới bản copy trong %AppData%.

Trong mã nguồn của mã độc được nhúng một payload dưới dạng chuỗi Base64 và trải qua chuỗi giải mã lồng nhau Base64 decode cho ra ciphertext, tiếp tục giải mã AES-256-CBC (RijndaelManaged, padding PKCS7) với key 32 bytes và IV 16 bytes, sau đó XOR từng byte với key “MyXorKey123” theo modulo, cuối cùng giải nén GZIP để cho ra một file PE32.NET assembly là RAT payload hoàn chỉnh với khả năng keylog, chụp màn hình, webcam, quản lý file và kết nối tới C2.

Payload sau khi được giải mã sẽ được inject vào RegAsm.exe bằng kỹ thuật Process Hollowing. RegAsm được chọn vì là binary hợp lệ có chữ ký của Microsoft trong .Net Framework giúp RAT hoạt động như một tiến trình đáng tin cậy.

Phân tích stage-5: “MergedApp.exe” – RAT
Sau khi được stage 4 giải mã và inject vào “RegAsm.exe” qua Process Hollowing, RAT thiết lập kết nối TCP thô tới C2 server, nhận lệnh điều khiển từ xa bao gồm chụp màn hình, tải và thực thi file tuỳ ý, tự cập nhật, nạp plugin mở rộng, và thu thập thông tin hệ thống. RAT sử dụng kiến trúc Dead Drop Resolver với 8 URL phân tán trên nhiều nền tảng để resolve địa chỉ C2 thực, giúp duy trì kết nối ổn định ngay cả khi C2 server thay đổi IP hoặc bị takedown. Sau đây là các chức năng chính của RAT.
Đầu tiên fingerprint & lấy thông tin nạn nhân. Sau khi kết nối C2 thành công RAT gửi gói thông tin nhận dạng bao gồm: tên máy tính, tên user đang đăng nhập, volume serial number ổ cứng hệ thống, phiên bản OS kèm Service Pack và kiến trúc (x86/x64), thời gian biên dịch file, tiêu đề cửa sổ đang active, kết quả kiểm tra webcam, và danh sách plugin đã cài trong registry. Tên nạn nhân mặc định là chuỗi base64 “SGFjS2Vk”,decode ra “HacKed”, ghép với volume serial tạo thành ID duy nhất cho mỗi máy bị nhiễm. RAT cũng phát hiện Windows 11 qua registry key CurrentBuild >= 22000 để điều chỉnh buffer size và timeout cho phù hợp.

RAT không lưu cố định địa chỉ IP của máy chủ C2 trong mã nguồn mà sử dụng một danh sách gồm 8 URL trên các nền tảng khác nhau, cùng trỏ đến đường dẫn /bachkhoahn/ads.txt. Nội dung tệp này chứa thông tin máy chủ C2, bao gồm hostname và port ở dạng văn bản thuần (plaintext).
Khi cần xác định địa chỉ C2, RAT xáo trộn ngẫu nhiên thứ tự danh sách URL, sau đó gửi các yêu cầu đồng thời thông qua ThreadPool. URL đầu tiên trả về dữ liệu hợp lệ sẽ được lựa chọn làm nguồn cung cấp thông tin kết nối, trong khi các yêu cầu còn lại bị hủy bỏ.
Trước khi chấp nhận endpoint mới, RAT thực hiện kiểm tra kết nối TCP (TCP probe) với thời gian chờ (timeout) có thể điều chỉnh để xác minh máy chủ C2 thực sự đang lắng nghe và sẵn sàng tiếp nhận kết nối.
Đáng chú ý, endpoint sau khi được xác định sẽ được lưu vào Registry để tái sử dụng trong những lần kết nối tiếp theo, tránh phải thực hiện lại quá trình phân giải địa chỉ C2.
Ngoài ra, RAT vô hiệu hóa hoàn toàn cơ chế xác thực chứng chỉ TLS thông qua callback luôn trả về true. Điều này khiến kết nối không kiểm tra tính hợp lệ của chứng chỉ máy chủ, cho phép mã độc tiếp tục hoạt động ngay cả trong môi trường có proxy thực hiện kiểm tra hoặc can thiệp lưu lượng theo cơ chế Man-in-the-Middle (MITM).

Bộ xử lý lệnh hỗ trợ các nhóm chức năng sau:
RAT còn có cơ chế bảo Process, gọi NtSetInformationProcess với ProcessInformationClass = 29, đánh dấu process hiện tại là critical. Khi một process critical bị terminate (ví dụ user kill trong Task Manager), Windows sẽ trigger BSOD tạo ra tình huống: user không thể tắt malware mà không crash hệ thống. Flag này chỉ được gỡ khi RAT tự uninstall theo lệnh từ C2 (gọi NtSetInformationProcess với giá trị 0).
Mã độc sử dụng chuỗi tấn công đa giai đoạn (multi-stage) gồm 5 giai đoạn, bắt đầu từ một tệp Microsoft Excel hỗ trợ macro, được ngụy trang dưới dạng công cụ quản lý dữ liệu. Dựa trên các comment tiếng Việt trong mã nguồn, đường dẫn C2 chứa chuỗi “bachkhoahn” và việc nhắm mục tiêu vào người dùng tại Việt Nam, NCS Threat Intelligence nhận định tác nhân đứng sau nhiều khả năng có khả năng sử dụng tiếng Việt. Tuy nhiên, đây mới là những dấu hiệu mang tính suy luận, chưa đủ cơ sở để xác định chính xác danh tính hoặc nguồn gốc của tác nhân.
Chuỗi lây nhiễm được thiết kế theo mô hình phân tầng, trong đó mỗi giai đoạn đảm nhiệm một chức năng riêng:
Một số điểm đáng chú ý về mặt kỹ thuật của mã độc:
Từ kết quả phân tích mã độc, NCS đưa ra một số khuyến nghị nhằm giúp người dùng và tổ chức chủ động phòng ngừa, phát hiện sớm và giảm thiểu rủi ro từ các chiến dịch mã độc sử dụng macro Office và chuỗi lây nhiễm đa giai đoạn tương tự.
Đối với người dùng:
Đối với tổ chức:
MITRE ATT&CK
| Tactic | Technique ID | Tên kỹ thuật | Mô tả áp dụng |
| Resource Development | T1583.006 | Acquire Infrastructure: Web Services | Lạm dụng Cloudflare Pages, GitHub, GitLab, Neocities, Blogspot, clan.su, edgeone.dev làm nơi lưu trữ payload và file resolve C2 (ads.txt) |
| Initial Access | T1566.001 | Phishing: Spearphishing Attachment | Phân phối file Excel macro-enabled (TTS US NAMVU 2.xlsm) giả dạng công cụ quản lý dữ liệu. |
| Execution | T1204.002 | User Execution: Malicious File | Người dùng mở file Excel và cho phép chạy macro → kích hoạt Workbook_Open |
| T1059.005 | Command and Scripting Interpreter: Visual Basic | Macro VBA đọc payload Base64 từ ô Z34, giải mã, ghi svc_<random>.exe vào %TEMP%; wscript.exe + .vbs trung gian cho UAC bypass | |
| T1059.001 | Command and Scripting Interpreter: PowerShell | Stage-3 dùng PowerShell -ExecutionPolicy Bypass chạy Add-MpPreference -ExclusionPath và Get-MpPreference | |
| T1106 | Native API | Gọi NtSetInformationProcess (đánh dấu critical process → BSOD khi kill), NtQueryInformationProcess, GetProcAddress, StrongNameSignatureVerificationEx | |
| Persistence | T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys | Key Run trong HKCU\…\CurrentVersion\Run: “Windows Core Service” → coreinitx64.exe, “Windows Explorer” → explorer.exe |
| Privilege Escalation | T1548.002 | Abuse Elevation Control Mechanism: Bypass UAC | Stage-3: UAC bật → wscript.exe + .vbs trung gian; UAC tắt → version.exe với runas |
| Defense Impairment | T1685 | Disable or Modify Tools | Thêm ngoại lệ Windows Defender qua registry (HKLM\…\Exclusions\Paths) VÀ PowerShell Add-MpPreference; Patch ETW — ghi 0xC3 (RET) vào EtwEventWrite trong ntdll.dll, vô hiệu hóa hoàn toàn Event Tracing for Windows |
| Stealth | T1027.002 | Obfuscated Files or Information: Software Packing | Smart Assembly v8.4.0.6650 (Stage-2, Stage-4) và .NET Reactor (Stage-3); VBA project bảo vệ bằng mật khẩu |
| T1027.018 | Obfuscated Files or Information: Invisible Unicode | Chèn ký tự zero-width (Zero-Width Joiner) vào tên file payload (explorer.exe, svchost.exe…) để tránh signature detection, tên hiển thị giống tiến trình hệ thống nhưng thực tế khác biệt | |
| T1140 | Deobfuscate/Decode Files or Information | Chuỗi giải mã 4 lớp: Base64 → AES-256-CBC (PKCS7) → XOR (“MyXorKey123”) → GZIP; Stage-1 Base64 decode từ ô Z34 | |
| T1036.005 | Masquerading: Match Legitimate Resource Name or Location | Đặt tên file giả mạo tiến trình hệ thống (explorer.exe, svchost.exe, Cortana.exe, OneDrive.exe, msedge.exe); payload đặt trong %APPDATA%\Microsoft\Windows\ giả mạo đường dẫn hệ thống | |
| T1564.001 | Hide Artifacts: Hidden Files and Directories | Thuộc tính Hidden + System cho thư mục và file payload trong %APPDATA%\Microsoft\Windows\Templates\ | |
| T1622 | Debugger Evasion | 3 lớp anti-debugs: IsDebuggerPresent (resolve dynamic qua GetProcAddress), NtQueryInformationProcess (ProcessDebugPort), Debugger.IsAttached | |
| T1497.003 | Virtualization/Sandbox Evasion: Time Based Checks | Sleep 3-7s rồi đo thời gian thực – nếu <2s → sandbox fast-forward; Stage-1 chèn delay xen kẽ khi ghi payload | |
| T1055.012 | Process Injection: Process Hollowing | Inject RAT vào RegAsm.exe – binary .NET Framework hợp lệ có chữ ký Microsoft | |
| Discovery | T1082 | System Information Discovery | RAT thu thập: hostname, username, volume serial, OS version + SP + arch, CurrentBuild (≥22000 = Win11), webcam |
| T1016 | System Network Configuration Discovery | Kiểm tra Internet qua http://gstatic[.]com/generate_204 (HTTP 204) trước khi thực thi | |
| Collection | T1113 | Screen Capture | RAT chụp màn hình + vị trí con trỏ, resize, nén JPEG, MD5 mỗi frame |
| T1125 | Video Capture | RAT kiểm tra và truy cập webcam nạn nhân | |
| Command and Control | T1102.001 | Web Service: Dead Drop Resolver | URL trên nhiều nền tảng → /bachkhoahn/ads.txt chứa host:port C2 (bachkhoahn.kozow.com) |
| T1071.001 | Application Layer Protocol: Web Protocols | Giả mạo User-Agent + Referer; HTTPS download payload; bypass TLS cert validation | |
| T1095 | Non-Application Layer Protocol | RAT kết nối TCP thô (raw TCP) tới C2 server | |
| T1105 | Ingress Tool Transfer | Tải payload qua nhiều URL dự phòng: coreinitx64.exe (Stage-2), explorer.exe/exp40.txt (Stage-3), plugin + update (RAT) | |
| T1219 | Remote Access Tools | RAT (MergedApp.exe): điều khiển từ xa toàn diện — screen capture, file exec, self-update, plugin system, registry control, uninstall từ xa |
| SHA-256 | SHA-1 |
| e885fd62995b3302894a343cfc02d5a73af2b0426d02555b8bea9eada87d1cb3 | fd86b2b951fd51d6067674a5277c67b264a01a9f |
| e7071b4a526059a4c8898bf6c0a44dc7083662e9d888b9cec15af823d75fa269 | 48d3a407947c7d1a1f4efcc8a109fdf7e05a6ace |
| 4fe56faef5947023281e29c75913279efee324ff025a51fd222ce1b4e7fa5e74 | 359cab5d0748096b1a2a09118b08395825bfe9b8 |
| b73c4735556f8b43d6bed880a089a85823e27183792b19e08bd10f86eb9eb879 | ece4f1ffffc0b6239efa007f07b11368f1243948 |
| fbd4db896bb05fdd2e25a28e7c19885d4f559268f0fef0c944739c255c7455bb | 39b77786ee0c381f60502e2fe1f90992369c0566 |
| 94996736d6917702bae5aa7ce888ee896be94fa6e620c0b155e9f3c7bbe5a369 | 84ef04fab3713c847101ed3ec69aa4058f308e1c |
Network Indicators
https://24-09-2026[.]pages[.]dev/bachkhoahn/ads[.]txt
https://24-09-2026[.]edgeone[.]dev/bachkhoahn/ads[.]txt
https://raw[.]githubusercontent[.]com/mekong20252026/24-09-2026/refs/heads/main/bachkhoahn/ads[.]txt
https://24-09-2026[.]neocities[.]org/bachkhoahn/ads[.]txt
https://bachkhoahn1111[.]blogspot[.]com/ads[.]txt
http://proxycheap[.]for[.]ru/uploads/28916/13237/bachkhoahn/ads[.]txt
https://24-09-2026[.]clan[.]su/bachkhoahn/ads[.]txt
https://gitlab[.]com/24-09-2026-group1/24-09-2026/-/raw/main/bachkhoahn/ads[.]txt
https://24-09-2026[.]pages[.]dev/bachkhoahn/core40[.]txt
https://24-09-2026[.]edgeone[.]dev/bachkhoahn/core40[.]txt
https://raw[.]githubusercontent[.]com/mekong20252026/24-09-2026/refs/heads/main/bachkhoahn/core40[.]txt
https://24-09-2026[.]neocities[.]org/bachkhoahn/core40[.]txt
http://proxycheap[.]for[.]ru/uploads/28916/13237/bachkhoahn/core40[.]txt
https://24-09-2026[.]clan[.]su/bachkhoahn/core40[.]txt
https://gitlab[.]com/24-09-2026-group1/24-09-2026/-/raw/main/bachkhoahn/core40[.]txt
https://24-09-2026[.]pages[.]dev/bachkhoahn/exp40[.]txt
https://24-09-2026[.]edgeone[.]dev/bachkhoahn/exp40[.]txt
https://raw[.]githubusercontent[.]com/mekong20252026/24-09-2026/refs/heads/main/bachkhoahn/exp40[.]txt
https://24-09-2026[.]neocities[.]org/bachkhoahn/exp40[.]txt
http://proxycheap[.]for[.]ru/uploads/28916/13237/bachkhoahn/exp40[.]txt
https://24-09-2026[.]clan[.]su/bachkhoahn/exp40[.]txt
https://gitlab[.]com/24-09-2026-group1/24-09-2026/-/raw/main/bachkhoahn/exp40[.]txt
bachkhoahn[.]kozow[.]com
Tác giả: TheWantedX