TỔNG QUAN VỀ LU0BOT
Lu0bot ban đầu xuất hiện vào tháng 2/2021 dưới dạng payload giai đoạn hai trong các cuộc tấn công GCleaner. Hiện tại thì nó hoạt động như một bot, chờ lệnh từ máy chủ điều khiển và kiểm soát (C2) và gửi thông tin hệ thống cơ bản được mã hóa trở lại máy chủ đó.
Thông thường, loại phần mềm độc hại này sử dụng kỹ thuật che giấu nhiều lớp bằng JavaScript. Nó kết hợp các đặc điểm của các phần mềm độc hại truyền thống với công nghệ web khiến Lu0Bot trở thành một thách thức đặc biệt trong việc phát hiện và phân tích.
PHÂN TÍCH TĨNH
Những phát hiện chính từ quá trình kiểm tra phân tích mẫu Lu0Bot gần đây được một nhóm các nhà nghiên cứu trên AnyRun đã tiết lộ việc sử dụng trình đóng gói SFX, đây là một kho lưu trữ tự giải nén chứa các tệp được khám phá riêng lẻ. Tệp BAT được nhúng, cùng với tệp EXE chứa nhiều tệp bao gồm trình thông dịch Node, là một phần của gói này. Ngoài ra, nó còn bao gồm một số tệp “.dat”, mỗi tệp đóng vai trò cụ thể.
Tệp BAT
Hình 1. Nội dung của tập tin BAT
Dòng đầu tiên chứa một nhận xét (comment), nhưng ý nghĩa của nó vẫn chưa rõ ràng. Tiếp theo, nhiều tệp được gói thành một tệp EXE, cụ thể là trình thông dịch Node có tên là “fjlpexyjauf.exe”.
Sau đó, trình thông dịch nhận được một tệp và một tham số (%1% trong Hình 1) có thể dùng làm khóa mã hóa cho tệp.
Tệp eqnyiodbs.dat
Tệp này được chia thành các khối byte khác nhau. Các khối này sau đó được kết hợp để tạo thành trình thông dịch Node.
Hình 2. Nội dung của tập tin eqnyiodbs.dat
Tệp tin lknidtnqmg.dat
Tệp này chứa byte được mã hóa trong Base64. Nó có thể được giải mã bằng cách sử dụng số được cung cấp làm đầu vào.
Hình 3. Nội dung của tệp lknidtnqmg.dat
Tệp tin gyvdcniwvlu.dat
Đây là trình điều khiển được thiết kế để cho phép các chương trình 32 bit trên hệ thống x64 chuyển đổi mã quét khóa thành ký tự Unicode, có thể sẽ kích hoạt chức năng keylogging.
PHÂN TÍCH ĐỘNG
Phân tích tĩnh chỉ ra tệp EXE và lknidtnqmg.dat là đáng chú ý. Bước tiếp theo là kiểm tra hành vi động và cố gắng giải mã các byte hoặc tìm chúng được giải mã trong bộ nhớ tiến trình. Các nhà nghiên cứu sử dụng sandbox phân tích phần mềm độc hại ANY.RUN để thực hiện phân tích động.
Hình 4. Cây tiến trình
Hình 4 thể hiện cây tiến trình trong quá trình thực hiện mẫu. Phân tích cho thấy rằng, khi thực thi, tiến trình chính đã khởi động tệp BAT để khởi chạy tệp EXE. Mã này chấp nhận đầu vào JS được mã hóa và thu thập dữ liệu hệ thống bằng WMIC, bao gồm thông tin về vị trí thực thi tiến trình, phù hợp với kỹ thuật T1047 MITER.
Hình 5. Thư mục Startup
Các nhà nghiên cứu phát hiện ra rằng trình thông dịch đã được sao chép vào thư mục Startup. Kết nối với tên miền vẫn tiếp tục sau khi hệ thống khởi động lại, cho phép bot tiếp tục hoạt động. Ngoài ra, phần mềm độc hại còn thể hiện một cách tiếp cận độc đáo để kết nối tên miền bằng cách tập hợp nhiều phần khác nhau thành một thực thể duy nhất trong mã JS.
Hình 6. Request DNS
PHÂN TÍCH KỸ THUẬT BẰNG TRÌNH DỊCH NGƯỢC VÀ GỠ LỖI
Để truy cập mã JS chính, các nhà nghiên cứu đã giải nén kho lưu trữ SFX; Chạy lệnh để thu thập tệp Node.js; Chạy fjlpexyjauf.exe trong x32dbg, nhập dữ liệu đến vào dòng lệnh command line; Thực thi mã JS; Định vị mã trong bộ nhớ và lưu trích xuất.
Phân tích mã JS
Mã JavaScript khá phức tạp đã được làm các nhà nghiên cứu làm rõ bằng cách loại bỏ các byte không cần thiết và sử dụng trình giải mã JavaScript. Sau khi chuyển đổi, kết quả như Hình 7.
Hình 7. Kết quả chuyển đổi mã
Mã bắt đầu bằng một mảng chứa các chuỗi được mã hóa. Ngay sau đó, các phần tử cụ thể được chuyển đến cuối mảng. Tiếp theo, có một hàm đã được triển khai để giải mã các chuỗi bằng cách sử dụng dạng thay thế BASE64 (T1132.002), tiếp theo là mã hóa/giải mã URL và cuối cùng là RC4.
Hàm này được gọi với hai biến: biến đầu tiên là một phần tử trong mảng và biến thứ hai là khóa RC4. Để đơn giản hóa nhiệm vụ phân tích cú pháp mã này, các nhà nghiên cứu đã viết một tập lệnh nhỏ tự động giải mã những dòng này, tiết lộ rằng các phần của tên miền đã được mã hóa cứng vào mẫu.
Hình 8. Trước quá trình giải mã
Hình 9. Sau khi giải mã
Sau đó, phần mã chịu trách nhiệm tập hợp tên miền đã được phát hiện.
Hình 10. Xây dựng tên miền
Gỡ lỗi mã JavaScript
Để gỡ lỗi, các nhà nghiên cứu đã sử dụng Node.js với tham số kiểm tra “-brk”, đặt điểm breakpoint trên từ khóa “var” và quan sát đầu ra do mỗi dòng tạo ra. Hàm đầu tiên là “ginf”, xử lý việc thu thập thông tin. Nó xuất ra một mảng có 15 phần tử, tất cả đều là thông tin chi tiết về hệ thống.
Hình 11. Một mảng chứa đầu ra của hàm ginf
Hàm thứ hai “hwco” đã sử dụng mảng 15 phần tử từ hàm ginf làm đầu vào, tạo đầu ra bao gồm phần cuối của miền cho đến dấu chấm. Phân tích sâu hơn cho thấy rằng kết quả đầu ra này là một bản băm của dữ liệu hệ thống được thu thập.
Hình 12. Đầu ra chuỗi từ hàm hwco
Tiếp theo, các phần tử như cổng (port), số (number) và phân đoạn tên miền (domain segment) theo dấu chấm được trích xuất từ mảng “acc” và gán cho các biến.
Hình 13. Trích xuất các phần tử từ mảng acc
Một số ngẫu nhiên đã được thêm vào phân đoạn tên miền sau dấu chấm. Dòng tiếp theo sẽ chọn một tên miền thay thế nếu đáp ứng được một số điều kiện nhất định.
Hình 14. Chọn tên miền
Sau một số thao tác khác, tên miền đã được tập hợp hoàn chỉnh và tất cả các phần tử cần thiết đã được đóng gói vào một đối tượng JSON.
Sau khi thực thi, phần mềm độc hại liên tục cố gắng xác định địa chỉ để truyền dữ liệu. Khi lưu lượng truy cập đến máy chủ thành công, quá trình trao đổi dữ liệu sẽ diễn ra, liên quan đến việc máy chủ C2 gửi mã JS.
Phát hiện Lu0Bot
Là một phần trong nỗ lực của mình, các nhà nghiên cứu đã cố gắng khám phá vô số thông tin tình báo và IOC, cũng như viết ra các quy tắc (rule) YARA, Sigma và Suricata. Tất cả các phát hiện đã được tích hợp vào ANY.RUN, cho phép dịch vụ nhanh chóng xác định bất kỳ mẫu Lu0Bot nào và tiết lộ các tên miền C2 sau khi giải mã chuỗi.
Hình 15. Ví dụ về quy tắc Sigma
KẾT LUẬN
Lu0bot là một phần mềm độc hại bất thường kết hợp Node.js và mã JS thực thi. Nó sở hữu cấu trúc tên miền duy nhất và sử dụng các phương thức mã hóa tùy chỉnh cho chuỗi. Mặc dù hiện tại phần mềm độc hại này có mức độ hoạt động thấp nhưng Lu0bot vẫn có thể gây ra rủi ro đáng kể nếu chiến dịch của nó mở rộng quy mô và máy chủ C2 bắt đầu phản hồi tích cực.
Hồng Đạt
13:00 | 09/10/2023
15:00 | 06/10/2023
07:00 | 19/06/2023
09:00 | 03/02/2025
Mã độc tống tiền (Ransomware) là một loại mã độc mã hóa, được xem là mối đe dọa mạng nguy hiểm nhất. Nó được phát triển với mục đích mã hóa dữ liệu và nạn nhân phải trả một số tiền nhất định để lấy lại dữ liệu hoặc ngăn dữ liệu của mình không bị rao bán trên mạng. Trong bài báo này sẽ giới thiệu lịch sử phát triển của ransomware cũng như thực trạng hiện tại của ransomware và các kỹ thuật được sử dụng để từ đó đưa ra các biện pháp giảm thiểu nguy cơ.
22:00 | 30/01/2025
Kênh truyền thông đa phương tiện Fox News tại Mỹ đưa ra cảnh báo về phương thức lừa đảo trực tuyến mới thông qua tin nhắn email giả mạo dịch vụ an ninh và bảo mật của Windows. Mục đích của kẻ tấn công là chiếm quyền điều khiển máy tính của nạn nhân thông qua phần mềm điều khiển từ xa để đánh cắp dữ liệu.
09:00 | 30/12/2024
Năm 2024, các cuộc tấn công mạng diễn ra trên mọi lĩnh vực, từ y tế đến tài chính, ngân hàng.... Tin tặc không chỉ đánh cắp dữ liệu cá nhân, mà còn thực hiện các cuộc tấn công ransomware tinh vi, đe dọa trực tiếp đến sự hoạt động của các cơ sở y tế. Nguy hiểm hơn là sự tinh vi và quy mô ngày càng tăng của các cuộc tấn công gián điệp của tin tặc Trung Quốc nhằm vào Hoa Kỳ và các đồng minh. Các chuyên gia tin rằng đây là một động thái chiến lược của Bắc Kinh nhằm có khả năng phá vỡ hoặc phá hủy các dịch vụ quan trọng trong trường hợp căng thẳng địa chính trị leo thang hoặc xung đột quân sự.
09:00 | 13/12/2024
Các nhà nghiên cứu an ninh mạng đang cảnh báo về các chiến dịch tấn công email độc hại lợi dụng bộ công cụ lừa đảo dưới dạng dịch vụ (PhaaS) có tên là Rockstar 2FA, nhằm mục đích đánh cắp thông tin đăng nhập tài khoản Microsoft 365.
Google đã kịp thời khắc phục một lỗ hổng bảo mật nghiêm trọng trên thiết bị USB, giúp hơn một tỷ thiết bị Android thoát khỏi nguy cơ bị tấn công.
11:00 | 11/03/2025