PHÂN TÍCH MÃ ĐỘC – LAB 06 – PRACTICAL MALWARE ANALYSIS (Phần 4)
Kết thúc chuyên đề Phân tích mã độc Lab 06, chuyên gia an ninh mạng Bùi Đình Cường sẽ gửi đến bạn đọc phần cuối với bài viết phân tích cấu trúc 4 trong mã độc Lab 06. Kiểm tra bằng PEiD, chương trình không bị packed. Kiểm tra thông tin Import table tương tự Lab06-03.exe Kiểm tra ...
Kết thúc chuyên đề Phân tích mã độc Lab 06, chuyên gia an ninh mạng Bùi Đình Cường sẽ gửi đến bạn đọc phần cuối với bài viết phân tích cấu trúc 4 trong mã độc Lab 06.
Kiểm tra bằng PEiD, chương trình không bị packed.
Kiểm tra thông tin Import table tương tự Lab06-03.exe
Kiểm tra strings
XEM THÊM: PHÂN TÍCH MÃ ĐỘC – LAB 06 – PRACTICAL MALWARE ANALYSIS cấu trúc 3
- Có sự khác biệt nào giữa các lời gọi hàm từ hàm main giữa lab 6 – 3 và 6 – 4?
Hàm main gọi tới các hàm:
- sub_401000: Kiểm tra kết nối Internet
- sub_401040: Kết nối và download trang web tại URL: http://www.practicalmalwareanalysis.com/cc.htm , kiểm tra và lấy giá trị ký tự đầu tiên của HTML comment.
- sub_4012B5: In thông báo ra màn hình
- sub_401150: Chứa khối lệnh switch case thực hiện các chức năng độc hại.
- ds:Sleep: Là hàm Sleep của WinAPI
- Cấu trúc mã nguồn mới nào được thêm vào hàm main?
Các thành phần chính của hàm main tương tự như Lab06-03.exe nhưng thêm một vòng lặp for với biến đếm bắt đầu bằng 0 và tăng dần cho tới khi lớn hơn hoặc bằng 1440.
- Sự khác biệt giữa gì so với các Lab trước trong hàm phân tích HTML?
Chương trình kết nối tới hard-coded URL qua hàm WinAPI InternetOpenA, sử dụng UA là “Internet Explorer 7.50/pma%d” =>
- Chương trình chạy trong bao lâu nếu giả sử được kết nối Internet?
Giả sử các lệnh được thực thi tức thì và các kết nối Internet thành công tức thì, chương trình mất khoảng 1440 phút (24 giờ) để hoàn tất thực thi (1440 vòng lặp, mỗi vòng lặp sleep(60000)).
- Có thông số liên quan tới mạng trong chương trình này?
Trong hàm main, sau mỗi vòng lặp, giá trị biến đếm được lưu trong var_C đồng thời được đẩy vào hàm sub_401040 như một đối số (mov ecx, [ebp+var_C] và push ecx tại dòng 0x401263 và 0x401266).
Hàm sub_401040 sử dụng đối số arg_0 (giá trị của biến đếm được push từ main) để nối vào User-Agent theo mẫu “Internet Explorer 7.50/pma%d” (dòng 0x401049 tới 0x40104D).
Ví dụ tại vòng lặp 134, UA sẽ là “Internet Explorer 7.50/pma134”.
Vậy, dấu hiệu mạng của mã độc này là UA có dạng “Internet Explorer 7.50/pmaXXX” thay đổi với 3 ký tự cuối là một số nhỏ hơn 1440.
- Mục đích của mã độc này là gì?
Mã độc thực hiện kiểm tra kết nối Internet, thực hiện kết nối tới địa chỉ http://www.practicalmalwareanalysis.com/cc.htm , kiểm tra và lấy giá trị ký tự đầu tiên trong HTML comment, sử dụng giá trị ký tự đó làm điều kiện thực hiện khối lệnh switch-case bao gồm các thao tác:
- Tạo thư mục mới nếu nó chưa tồn tại
- Copy file thực thi vào thư mục và đổi tên với tên mới là cc.exe
- Xóa file cc.exe, tạo cặp registry key mới và giá trị tương ứng cho phép mã độc tự động chạy sau mỗi lần system boot
- Sleep trong 1 phút; thông báo lỗi khi ký tự nhận được không hợp lệ để thực hiện switch-case.
Các thao tác trên được thực hiện lặp mỗi phút một lần trong khoảng 1 ngày. Với mỗi vòng lặp, mã độc sẽ sử dụng một User-Agent mới để thực hiện kết nối Internet.
Như vậy, tôi đã mô tả phân tích sơ lược cấu trúc chương trình từ Lab 6 – 1 tới 6 – 4, hy vọng các bạn có thể nắm bắt được phương pháp và cách thức thực hiện, áp dụng cho quá trình phân tích mã độc thực tế.
XEM THÊM: Phân Tích Mã Độc Sử Dụng IDA PRO