TỔNG QUAN
HijackLoader là trình tải mới mà nhóm nghiên cứu phần mềm nhúng ThreatLabz đến từ công ty an ninh mạng Zscaler đã phát hiện lần đầu tiên vào tháng 7/2023. Trình tải này đang được sử dụng để tải các dòng phần mềm độc hại khác nhau như Danabot, SystemBC và RedLine Stealer, làm tăng thêm mối đe dọa tiềm tàng của nó.
HijackLoader sử dụng lời gọi (system call - cách làm cho chương trình thực hiện một tương tác với hệ điều hành) để trốn tránh sự giám sát từ các giải pháp bảo mật, phát hiện các quy trình cụ thể dựa trên danh sách chặn được nhúng và trì hoãn việc thực thi mã ở các giai đoạn khác nhau.
Phần mềm độc hại này sử dụng các module nhúng cung cấp khả năng thực thi và tiêm mã (code injection), một tính năng không phổ biến ở các trình tải thông thường. Thiết kế module của HijackLoader cho phép nó hoạt động linh hoạt, thích ứng với nhiều hành động khác nhau và tránh bị phát hiện hiệu quả hơn.
TRÌNH TẢI GIAI ĐOẠN ĐẦU TIÊN
Giai đoạn khởi tạo
Sau khi được kích hoạt, HijackLoader bắt đầu bằng cách thực thi một chức năng đã sửa đổi của Windows C Runtime (CRT). Trong giai đoạn khởi tạo, trình tải xác định xem payload cuối cùng đã được nhúng vào tệp nhị phân hay nó cần tải xuống từ máy chủ bên ngoài. Để đạt được điều này, HijackLoader bao gồm một cấu hình được , lưu trữ thông tin, ví dụ như:
Khối cấu hình (block) ở trên được phát hiện bằng cách sử dụng các offset được mã hóa cứng (hardcode) và sau đó được giải mã bằng phép XOR hoặc ADD theo bit.
Chống phân tích
Giai đoạn đầu tiên bao gồm một số kỹ thuật nhằm chống sự phân tích của các bảo mật:
Bảng 1. Danh sách chặn các tiến trình của HijackLoader
TRÌNH TẢI GIAI ĐOẠN HAI
HijackLoader định vị payload của giai đoạn thứ hai (tức là module “ti”) bằng cách thực hiện theo các bước sau:
1. Phân tích khối cấu hình được giải mã, được lấy từ giai đoạn khởi tạo. Sau đó, HijackLoader định vị URL payload được mã hóa và giải mã nó bằng phép XOR theo bit.
2. Payload tải xuống và xác thực nó bằng cách kiểm tra sự hiện diện của ký số (có trong khối cấu hình) trong dữ liệu của nó. Nếu quá trình thành công, nó sẽ ghi nó vào ổ đĩa.
3. Tìm kiếm các BLOB được mã hóa bằng điểm đánh dấu thứ hai. Mỗi điểm đánh dấu thể hiện sự bắt đầu của một BLOB được mã hóa cùng với kích thước của BLOB (được lưu trữ trước mỗi lần xuất hiện). Hơn nữa, khóa XOR nằm sau offset của BLOB được mã hóa đầu tiên.
4. Khi tất cả các BLOB được mã hóa đã được trích xuất, chúng sẽ được nối với nhau và được giải mã bằng khóa XOR.
5. Cuối cùng, payload được giải mã sẽ giải nén bằng thuật toán LZNT1.
Hình 1. Mã giai đoạn thứ hai của HijackLoader để tải xuống và thực thi payload
Quy trình tương tự được thực hiện khi payload được tải từ ổ đĩa. Sự khác biệt duy nhất là HijackLoader sử dụng một mẫu bổ sung (từ khối cấu hình) để tìm offset đầu của payload được nhúng (Hình 2).
Hình 2. Thực thi payload giai đoạn hai của HijackLoader từ một tệp cục bộ
Payload được giải mã bao gồm hai thành phần:
- Bảng module: Bảng này bao gồm các module HijackLoader cùng với cài đặt của chúng và payload cuối cùng (ví dụ: SystemBC).
- Shellcode và cài đặt chính hoặc danh sách các tệp tùy chọn được sử dụng để chiếm quyền điều khiển DLL.
Tiếp theo, giai đoạn đầu tiên cần tải và thực hiện giai đoạn tiếp theo. Điều này được thực hiện bằng cách lấy đường dẫn tệp của DLL để vá (ví dụ: “mshtml.dll”) và một bảng cho các module của HijackLoader được bao gồm trong payload được giải mã.
Sau đó, HijackLoader tải DLL được chỉ định và định vị giai đoạn tiếp theo (module “ti”) sau khi tìm kiếm hàm băm của nó (có trong khối cấu hình) trong bảng module. Cuối cùng, nó sao chép dữ liệu của module vào phần mã của DLL hợp pháp và thực thi nó. Chú ý, đường dẫn tệp và tên của các tệp được HijackLoader ghi vào đĩa được tạo dựa trên tên người dùng của máy chủ bị xâm nhập.
MODULE
Các module của HijackLoader hỗ trợ quá trình thực thi và chèn mã của payload cuối cùng. Bảng 2 hiển thị một số module được ThreatLabz xác định, cùng với các giá trị và chức năng CRC32 tương ứng.
Bảng 2. Một số module HijackLoader được ThreatLabz quan sát
Hơn nữa, mỗi module có cấu trúc chứa thông tin như: tên module; offset module trong bảng; kích thước module. Do chất lượng của mã và phần còn lại của các trường cấu trúc không được sử dụng nên các nhà nghiên cứu không thể xác định mục đích của các thành viên cấu trúc còn lại.
Tuy nhiên, ThreatLabz đánh giá rằng các thông tin sau cũng có thể được đưa vào như: dấu thời gian của module; tên nội bộ (ví dụ: “rLdr64” cho module “rshell”).
Từ các module được đề cập ở trên, phân tích của các nhà nghiên cứu tập trung vào “ti” và các module shellcode thiết bị chính, vì hai module này triển khai phần lớn chức năng chính cho HijackLoader.
Module “ti”
Các kỹ thuật chống phân tích cũng giống như được trình bày trong phần trước, nhưng có hai điểm khác biệt đáng chú ý:
Vai trò chính của module này là đưa module “Main instrumentation” vào, chịu trách nhiệm tải giai đoạn cuối cùng. Module “ti” thực hiện giai đoạn tiếp theo bằng cách sử dụng một trong các phương pháp sau:
Module “Main instrumentation”
Module này chứa chức năng chính để tải và thực thi giai đoạn cuối cùng của chuỗi lây nhiễm.
Các kỹ thuật chống phân tích vẫn được giữ nguyên với các giai đoạn nói trên. Tuy nhiên, một điểm khác biệt chính là việc triển khai module “AVDATA”. Module này chứa một tập hợp các tên tiến trình và nếu phát hiện bất kỳ tên nào trong số đó thì hành vi mã có thể thay đổi.
Tải trọng nhúng được giải mã bằng phép XOR theo bit với khóa được lấy từ 200 byte đầu tiên. Shellcode của HijackLoader sau đó tiến hành chèn hoặc thực thi trực tiếp payload được giải mã. Kỹ thuật mà shellcode sử dụng phụ thuộc vào một số yếu tố khác nhau, chẳng hạn như loại tệp của payload và cờ, được lưu trữ trong cài đặt và cho biết phương pháp chèn sẽ sử dụng.
KẾT LUẬN
HijackLoader là một trình tải module với các kỹ thuật lẩn tránh và chống phân tích, cung cấp nhiều tùy chọn tải cho các payload . Mức độ phổ biến ngày càng tăng của HijackLoader cho thấy các tác nhân đe dọa có thể ngày càng áp dụng nó trong việc triển khai tải các dòng phần mềm độc hại khác nhau. Vì thế, cá nhân người dùng cuối, các cơ quan, đơn vị cần phải luôn cảnh giác và cập nhật thường xuyên về các mối đe dọa nguy hiểm này, từ đó có phương án chủ động phòng tránh kịp thời.
Hồng Đạt
16:00 | 30/05/2024
10:00 | 28/08/2023
07:00 | 03/11/2023
12:00 | 14/08/2023
09:00 | 27/10/2023
10:00 | 16/02/2023
13:00 | 31/10/2023
10:00 | 18/10/2024
GitLab đã phát hành bản cập nhật bảo mật cho Community Edition (CE) và Enterprise Edition (EE) để giải quyết 08 lỗ hổng bảo mật, bao gồm một lỗ hổng nghiêm trọng có thể cho phép thực thi các CI/CD Pipeline tùy ý.
07:00 | 17/10/2024
Các tin tặc Triều Tiên mới đây đã bị phát hiện đang phân phối một Trojan truy cập từ xa (RAT) và backdoor chưa từng được ghi nhận trước đây có tên là VeilShell, như một phần của chiến dịch tấn công mạng nhắm vào các cơ quan, tổ chức tại Campuchia và các quốc gia Đông Nam Á khác.
16:00 | 31/08/2024
Theo Entropia Intel, từ ngày 26/8, loạt trang web liên quan đến chính phủ Pháp đã ngừng hoạt động do bị tấn công từ chối dịch vụ (DDoS). Sự việc diễn ra sau khi Pháp bắt CEO Telegram Pavel Durov hôm 24/8.
10:00 | 16/08/2024
Vào tháng 5/2024, các nhà nghiên cứu của hãng bảo mật Kaspersky đã phát hiện ra một mối đe dọa APT mới nhắm vào các thực thể Chính phủ Nga. Được gọi là CloudSorcerer, đây là một công cụ gián điệp mạng tinh vi được sử dụng để theo dõi lén lút, thu thập dữ liệu và đánh cắp thông tin thông qua cơ sở hạ tầng đám mây Microsoft Graph, Yandex Cloud và Dropbox. Phần mềm độc hại này tận dụng các tài nguyên đám mây và GitHub làm máy chủ điều khiển và ra lệnh (C2), truy cập chúng thông qua API bằng mã thông báo xác thực. Bài viết này sẽ tiến hành phân tích và giải mã về công cụ gián điệp mạng này, dựa trên báo cáo mới đây của Kaspersky.
Một lỗ hổng bảo mật hiện đã được vá trong ứng dụng ChatGPT của OpenAI dành cho macOS có thể cho phép kẻ tấn công cài phần mềm gián điệp vào bộ nhớ của công cụ trí tuệ nhân tạo (AI).
11:00 | 24/10/2024