Evasive Panda tái xuất: Phân tích chiến dịch DNS Poisoning nhằm triển khai mã độc MgBot

07:36 | 23/02/2026

Nhóm tin tặc APT Evasive Panda (còn được biết đến với tên Bronze Highland, Daggerfly và StormBamboo) đã hoạt động từ năm 2012, nhắm mục tiêu vào nhiều ngành công nghiệp với các chiến thuật tinh vi và không ngừng phát triển. Nghiên cứu mới đây của Kaspersky cho thấy các tin tặc này đã tiến hành các chiến dịch nhắm mục tiêu cao độ, bắt đầu từ tháng 11/2022 và kéo dài đến tháng 11/2024, chúng chủ yếu thực hiện các cuộc tấn công AitM nhắm vào các nạn nhân. Các kỹ thuật này bao gồm việc cài đặt mã độc vào các vị trí cụ thể và lưu trữ các phần mã hóa của phần mềm độc hại trên các máy chủ do kẻ tấn công kiểm soát, được giải mã khi nhận được yêu cầu DNS từ các trang web khác nhau.

Đáng chú ý, Evasive Panda đã phát triển một phần mềm độc hại mới có khả năng né tránh sự phát hiện khi lây nhiễm vào mục tiêu, thậm chí còn sử dụng các phương pháp mã hóa lai để làm phức tạp quá trình phân tích và tạo ra các phần mềm độc hại riêng biệt cho từng nạn nhân.

Hơn nữa, nhóm này cũng phát triển một công cụ injector cho phép chúng thực thi phần mềm độc hại MgBot trong bộ nhớ, bằng cách chèn nó vào các tiến trình hợp pháp - nằm trong không gian bộ nhớ của một tệp thực thi đã được ký số từ hơn một thập kỷ trước với kỹ thuật DLL sideloading từ bên ngoài, đồng thời cho phép chúng duy trì sự hiện diện bí mật trong các hệ thống bị xâm nhập trong thời gian dài.

PHÂN TÍCH KỸ THUẬT

Vectơ lây nhiễm ban đầu

Kẻ tấn công thường sử dụng các chiêu trò ngụy trang dưới dạng các bản cập nhật mới cho các ứng dụng bên thứ ba quen thuộc hoặc các ứng dụng hệ thống phổ biến được hàng trăm người dùng tin dùng trong nhiều năm.

Trong chiến dịch này, tin tặc sử dụng một tệp tin thực thi được ngụy trang thành gói cập nhật cho SohuVA, một ứng dụng phát trực tuyến do Sohu Inc. - một công ty Internet Trung Quốc phát triển. Gói độc hại có tên sohuva_update_10.2.29.1-lup-s-tp.exe, rõ ràng giả mạo bản cập nhật SohuVA thực để phát tán phần mềm độc hại từ nguồn sau: “http://p2p.hd.sohu.com[.]cn/foxd/gz?file=sohunewplayer_7.0.22.1_03_29_13_13_union.exe&new=/66/157/ovztb0wktdmakeszwh2eha.exe”.

Có khả năng tin tặc sử dụng tấn công DNS Poisoning để thay đổi phản hồi DNS p2p.hd.sohu.com[.]cn tới địa chỉ IP của máy chủ do tin tặc kiểm soát, trong khi mô-đun update của ứng dụng SohuVA đang cố gắng cập nhật các tệp nhị phân của nó nằm trong thư mục appdata\roaming\shapp\7.0.18.0\package. Mặc dù không thể xác minh điều này tại thời điểm phân tích, nhưng các nhà nghiên cứu có thể đưa ra một phỏng đoán dựa trên cơ sở khoa học, vì hiện vẫn chưa rõ điều gì đã kích hoạt cơ chế cập nhật.

Hơn nữa, phân tích về quá trình lây nhiễm đã xác định được một số chiến dịch khác do cùng một nhóm tin tặc thực hiện. Ví dụ, chúng sử dụng một trình cập nhật giả mạo cho ứng dụng iQIYI Video, một nền tảng phổ biến để phát trực tuyến nội dung đa phương tiện châu Á tương tự như SohuVA. Trình cập nhật giả mạo này được đưa vào thư mục cài đặt của ứng dụng và thực thi bởi dịch vụ hợp pháp qiyiservice.exe. Sau đó, trình cập nhật khởi động hoạt động độc hại trên hệ thống của nạn nhân. Theo các nhà nghiên cứu, đây là phương pháp tương tự được sử dụng cho các ứng dụng IObit Smart Defrag và Tencent QQ.

Trình tải ban đầu được phát triển bằng C++ sử dụng Windows Template Library (WTL). Mã của nó có nhiều điểm tương đồng với Wizard97Test, một ứng dụng mẫu WTL được lưu trữ trên GitHub của Microsoft. Có vẻ như những kẻ tấn công đã nhúng mã độc vào dự án này để che giấu hiệu quả ý định xấu của chúng.

Trước tiên, trình tải sẽ giải mã bộ đệm cấu hình bằng cách sử dụng thuật toán dựa trên phép toán XOR. Tiếp đó, nó giải nén bộ đệm và toàn bộ cấu hình được hiển thị, bao gồm một số thành phần sau:

- Đường dẫn cài đặt phần mềm độc hại: %ProgramData%\Microsoft\MF.

- Tên miền:http://www.dictionary.com/.

- Nguồn URI: image?id=115832434703699686&product=dict-homepage.png.

- Cấu hình mã hóa MgBot.

Phần mềm độc hại cũng kiểm tra tên người dùng đã đăng nhập vào hệ thống và thực hiện các hành động tương ứng. Nếu tên là SYSTEM, mã độc sẽ tự sao chép với một tên khác bằng cách thêm hậu tố ext.exe vào thư mục làm việc hiện tại. Sau đó, sử dụng API ShellExecuteW để thực thi phiên bản mới được tạo. Đáng chú ý, tất cả các chuỗi quan trọng trong phần mềm độc hại, chẳng hạn như SYSTEM và ext.exe, đều được mã hóa và trình tải sẽ giải mã chúng bằng một thuật toán XOR cụ thể.

Quy trình giải mã chuỗi ký tự đã mã hóa

Mặt khác, nếu tên người dùng không phải là SYSTEM, phần mềm độc hại sẽ sao chép explorer.exe vào %TEMP%, đặt tên cho bản sao là tmpX.tmp (trong đó X là một số thập phân được tăng dần) và xóa tệp gốc. Mục đích của hoạt động này không rõ ràng, nhưng nó tiêu tốn nhiều tài nguyên hệ thống. Tiếp theo, trình tải giải mã các chuỗi kernel32.dllvà VirtualProtect để lấy địa chỉ cơ sở của chúng bằng cách gọi API GetProcAddress.

Tiếp theo, mã độc sử dụng khóa XOR một byte để giải mã shellcode, dài 9556 byte và lưu trữ nó tại cùng một địa chỉ trong .data. Vì section này không có quyền thực thi, phần mềm độc hại sử dụng API VirtualProtect để thiết lập quyền cho section. Điều này cho phép shellcode đã giải mã được thực thi mà không có cảnh báo từ các sản phẩm bảo mật, bằng cách phân bổ các khối bộ nhớ mới. Trước khi thực thi shellcode, phần mềm độc hại chuẩn bị một cấu trúc tham số dài 16 byte chứa một số mục, trong đó quan trọng nhất là địa chỉ của bộ đệm cấu hình MgBot được mã hóa.

Thực thi shellcode nhiều giai đoạn

Như đã đề cập ở trên, trình tải tuân theo một sơ đồ phân phối độc đáo, bao gồm ít nhất hai giai đoạn payload. Shellcode sử dụng thuật toán băm được gọi là PJW để xử lý các hàm API của Windows trong thời gian chạy (runtime) một cách bí mật.

Shellcode trước tiên tìm kiếm một tệp DAT cụ thể trong thư mục cài đặt chính của phần mềm độc hại. Nếu phát hiện, shellcode giải mã tệp đó bằng API CryptUnprotectData, đồng thời đảm bảo rằng dữ liệu chỉ có thể được giải mã trên máy tính cụ thể đó. Sau bước này, shellcode sẽ xóa tệp để tránh để lại bất kỳ dấu vết nào của phần quan trọng trong chuỗi tấn công.

Tuy nhiên, nếu tệp DAT không tồn tại, shellcode sẽ khởi động quá trình cài đặt shellcode giai đoạn tiếp theo. Quá trình này bao gồm việc truy xuất dữ liệu được mã hóa từ một nguồn web - thực chất là máy chủ do kẻ tấn công kiểm soát, bằng cách sử dụng tấn công DNS Poisoning.

Theo Kaspersky, những kẻ tấn công đã thành công trong việc thu được shellcode trong giai đoạn hai, ngụy trang dưới dạng tệp PNG, từ trang web hợp pháp dictionary[.]com. Tuy nhiên, sau khi điều tra thêm, các nhà nghiên cứu phát hiện địa chỉ IP liên kết với trang web dictionary[.]com đã bị thao túng thông qua kỹ thuật DNS Poisoning. Kết quả là, hệ thống của các nạn nhân đang phân giải trang web thành các địa chỉ IP khác nhau do tin tặc kiểm soát tùy thuộc vào vị trí địa lý và nhà cung cấp dịch vụ Internet của nạn nhân.

Để lấy mã shellcode giai đoạn hai, shellcode giai đoạn đầu tiên sử dụng API RtlGetVersion để lấy số phiên bản Windows hiện tại và sau đó thêm một chuỗi được xác định trước vào tiêu đề HTTP: “sec-ch-ua-platform: windows %d.%d.%d.%d.%d.%d”.

Điều này ngụ ý rằng những kẻ tấn công cần có khả năng kiểm tra các tiêu đề yêu cầu và phản hồi tương ứng. Các nhà nghiên cứu nhận định rằng, việc những kẻ tấn công thu thập số phiên bản Windows và đưa nó vào các tiêu đề yêu cầu phục vụ một mục đích cụ thể, có thể cho phép chúng nhắm mục tiêu vào các phiên bản hệ điều hành, thậm chí điều chỉnh payload của chúng cho các hệ điều hành khác nhau.

Bởi nhóm tin tặc Evasive Panda đã được biết đến là sử dụng các phần mềm độc hại riêng biệt cho Windows (MgBot) và macOS (Macma) trong các chiến dịch trước đây, nên có khả năng mã độc sử dụng chuỗi phiên bản hệ điều hành đã thu thập được để xác định phần mềm độc hại nào cần triển khai. Điều này cho phép tác nhân đe dọa điều chỉnh cuộc tấn công của chúng cho phù hợp với từng hệ điều hành cụ thể của nạn nhân bằng cách đánh giá kết quả ở phía máy chủ.

Tải xuống payload từ trang web

Từ thời điểm này trở đi, shellcode giai đoạn đầu tiên tiến hành giải mã payload đã thu được bằng thuật toán giải mã XOR. Shellcode sử dụng khóa XOR 4 byte, tương tự như khóa đã sử dụng ở các giai đoạn trước nhằm giải mã shellcode mới được lưu trữ trong tệp DAT. Sau đó, nó tạo ra một cấu trúc cho shellcode giai đoạn hai, tương tự như giai đoạn đầu tiên, bao gồm bộ đệm cấu hình được giải mã một phần và các chi tiết liên quan khác.

Tiếp theo, shellcode xử lý API VirtualProtect để thay đổi cờ bảo vệ của bộ đệm shellcode mới, cho phép thực thi với quyền PAGE_EXECUTE_READWRITE. Shellcode giai đoạn này sau đó được thực thi, với cấu trúc được truyền làm đối số. Sau khi hoàn tất quá trình chạy, giá trị trả về của nó được kiểm tra xem có khớp với giá trị mong muốn là 0x9980 hay không. Tùy thuộc vào kết quả, shellcode sẽ chấm dứt tiến trình của chính nó hoặc trả lại quyền điều khiển cho người gọi.

Mặc dù không thể thu hồi được payload giai đoạn hai từ máy chủ web của kẻ tấn công trong quá trình phân tích, nhưng các nhà nghiên cứu đã có thể thu thập và kiểm tra giai đoạn tiếp theo của phần mềm độc hại, giai đoạn này sẽ được thực thi sau đó. Phân tích của Kaspersky cho thấy tin tặc có thể sử dụng API CryptProtectData trong quá trình thực thi shellcode thứ hai để mã hóa toàn bộ shellcode, đồng thời lưu trữ nó dưới dạng tệp DAT trong thư mục cài đặt chính của phần mềm độc hại.

Điều này ngụ ý rằng phần mềm độc hại ghi một tệp DAT mã hóa vào ổ đĩa bằng API CryptProtectData, sau đó có thể giải mã và thực thi bởi shellcode giai đoạn đầu tiên. Hơn nữa, dường như kẻ tấn công cố gắng tạo ra một tệp shellcode thứ hai cho mỗi nạn nhân, mà họ nhận định rằng đó là một kỹ thuật khác được sử dụng để né tránh các cơ chế phát hiện và phòng thủ trong chuỗi tấn công.

Trình tải phụ

Các nhà nghiên cứu đã xác định được một trình tải phụ, có tên là libpython2.4.dll, ngụy trang thành một thư viện Windows hợp pháp và được Evasive Panda sử dụng để duy trì cơ chế tải lén lút hơn. Đáng chú ý, trình tải DLL độc hại này dựa vào một tệp thực thi hợp pháp, đã được ký số có tên là evteng.exe(MD5: 1c36452c2dad8da95d460bee3bea365e), đây là một phiên bản cũ hơn của python.exe.

Trình tải phụ truy xuất đường dẫn đầy đủ của mô-đun hiện tại (libpython2.4.dll) và ghi nó vào một tệp có tên status.dat, nằm trong C:\ProgramData\Microsoft\eHome, nhưng với điều kiện khi tệp có cùng tên chưa tồn tại trong thư mục đó. Các nhà nghiên cứu nhận định rằng, hành động này nhằm mục đích cho phép tin tặc có thể cập nhật trình tải phụ trong tương lai.

Phần mềm độc hại tiếp tục giải mã giai đoạn tiếp theo bằng cách đọc toàn bộ nội dung của tệp C:\ProgramData\Microsoft\eHome\perf.dat. Tệp này chứa dữ liệu đã được tải xuống và giải mã bằng thuật toán XOR từ máy chủ do kẻ tấn công kiểm soát, được thu thập thông qua kỹ thuật DNS Poisoning như đề cập. Đáng chú ý, phần mềm độc hại tải xuống payload nhiều lần và di chuyển nó giữa các thư mục bằng cách đổi tên.

Có vẻ như kẻ tấn công đã sử dụng một quy trình phức tạp để thực thi giai đoạn này từ một nguồn tài nguyên, nơi nó ban đầu mã hóa bằng thuật toán XOR. Sau đó, kẻ tấn công giải mã giai đoạn này bằng thuật toán XOR, tiếp tục mã hóa và lưu nó vào perf.dat bằng một thuật toán lai tùy chỉnh giữa DPAPI của Microsoft và thuật toán RC5.

Tổng quan về việc lưu trữ payload trên ổ đĩa bằng cách sử dụng mã hóa lai

Thuật toán mã hóa tùy chỉnh này hoạt động như sau: khóa RC5 mã hóa bằng DPAPI của Microsoft và lưu trữ trong 16 byte đầu tiên của tệp perf.dat. Sau đó, payload được mã hóa RC5 thêm vào cuối tệp. Để giải mã payload, khóa RC5 sẽ được giải mã trước bằng DPAPI, sau đó được sử dụng để giải mã phần nội dung còn lại của tệp perf.dat, chứa payload giai đoạn tiếp theo.

Sau khi hoàn tất quá trình giải mã, trình tải phụ khởi tạo phương pháp chèn mã độc trong thời gian chạy, có thể liên quan đến việc sử dụng một DLL injector tùy chỉnh. Injector này trước tiên gọi điểm vào của DLL và sau đó tìm kiếm một hàm xuất cụ thể có tên là preload. Mặc dù các nhà nghiên cứu không thể xác định mô-đun nào đã được giải mã và thực thi trong bộ nhớ, vì thiếu dữ liệu trên máy chủ do kẻ tấn công kiểm soát, nhưng dữ liệu đo từ xa của Kaspersky cho thấy một biến thể MgBot được chèn vào tiến trình svchost.exe hợp pháp sau khi trình tải phụ được thực thi. Tệp cấu hình được giải mã bằng khóa XOR một byte, 0x58 và điều này sẽ dẫn đến việc lộ toàn bộ cấu hình.

Theo Kaspersky cho biết, cấu hình này bao gồm tên chiến dịch, địa chỉ IP máy chủ C2 mã hóa cứng và các byte không xác định, có thể đóng vai trò là khóa mã hóa hoặc giải mã, mặc dù độ tin cậy của đánh giá này còn hạn chế. Điều thú vị là một số địa chỉ máy chủ C2 đã được sử dụng trong nhiều năm, cho thấy khả năng hoạt động lâu dài.

Giải mã cấu hình trên thiết bị mà MgBot được chèn vào

NẠN NHÂN

Các nhà nghiên cứu cho biết, các nạn nhân chủ yếu đến từ Thổ Nhĩ Kỳ, Trung Quốc và Ấn Độ, với một số hệ thống vẫn bị xâm nhập trong hơn một năm. Theo dữ liệu thu thập được, những kẻ tấn công đã thể hiện sự duy trì đáng kể trong hai năm (từ tháng 11/2022 đến tháng 11/2024).

NHẬN ĐỊNH VÀ KẾT LUẬN

Các kỹ thuật, chiến thuật và quy trình (TTP) được sử dụng trong cuộc tấn công này cho thấy nhiều khả năng do các tin tặc Evasive Panda thực hiện. Mặc dù đã phát triển một trình tải mới bổ sung vào kho vũ khí của chúng, phần mềm độc hại MgBot vẫn được xác định ở giai đoạn cuối của cuộc tấn công với các yếu tố mới trong cấu hình của nó. Phù hợp với các nghiên cứu trước đây từ một số hãng bảo mật, nhóm tin tặc Evasive Panda thường sử dụng nhiều kỹ thuật khác nhau, chẳng hạn như xâm nhập chuỗi cung ứng, tấn công AitM và watering-hole, cho phép chúng phân phối phần mềm độc hại mà không gây nghi ngờ.

Evasive Panda một lần nữa đã thể hiện khả năng tinh vi của mình, né tránh các biện pháp bảo mật bằng các kỹ thuật và công cụ mới, đồng thời duy trì sự hiện diện lâu dài trên các hệ thống mục tiêu. Cuộc điều tra của Kaspersky cho thấy tin tặc đang liên tục cải tiến chiến thuật của chúng, đồng thời có khả năng đang tiến hành các chiến dịch khác. Việc giới thiệu các trình tải mới có thể báo trước những bản cập nhật tiếp theo cho kho vũ khí của chúng.

Đối với cuộc tấn công AitM, các nhà nghiên cứu không có bất kỳ nguồn đáng tin cậy nào về cách thức kẻ tấn công phân phối trình tải ban đầu, cũng như quy trình làm sai lệch phản hồi DNS đối với các trang web hợp pháp, chẳng hạn như dictionary[.]com, vẫn chưa rõ. Tuy nhiên, các nhà nghiên cứu đang xem xét hai kịch bản khả thi dựa trên nghiên cứu trước đó và đặc điểm của kẻ tấn công: hoặc các nhà cung cấp dịch vụ Internet (ISP) mà các nạn nhân sử dụng đã bị nhắm mục tiêu có chọn lọc và một loại phần mềm độc hại nào đó đã cài đặt trên các thiết bị đầu cuối, hoặc một trong các thiết bị mạng của nạn nhân, rất có thể là router hoặc thiết bị tường lửa đã bị nhắm mục tiêu cho mục đích này. Tuy nhiên, rất khó để đưa ra một tuyên bố chính xác, vì chiến dịch cần được chú ý hơn nữa về mặt điều tra số, cả đối với các ISP và các nạn nhân.

Nhiều địa chỉ IP máy chủ C2 trong tệp cấu hình cho thấy nỗ lực có chủ đích nhằm duy trì quyền kiểm soát các hệ thống bị nhiễm đang chạy phần mềm độc hại MgBot. Bằng cách sử dụng nhiều máy chủ C2, kẻ tấn công nhằm mục đích đảm bảo sự tồn tại lâu dài và ngăn ngừa việc mất quyền kiểm soát đối với các hệ thống bị xâm nhập, cho thấy một cách tiếp cận chiến lược để duy trì hoạt động của chúng.

Để lại bình luận