Cùng chuyên gia an ninh mang SecurityBox Phân tích, phát hiện và gỡ bỏ mã độc Practical Malware Analysis Lab12-01 qua bài viết dưới đây.
Phân tích mã độc Lab12-01 trong cuốn Practical Malware Analysis của Andrew Honig và Michael Sikorski (https://nostarch.com/malware)
Mẫu mã độc của Lab12-01 có thể tải về từ: https://github.com/mikesiko/PracticalMalwareAnalysis-Labs
Phân tích
Lab12-01 gồm các file cần phân tích: Lab12-01.exe và Lab12-01.dll
Khi thực thi, Lab12-01.exe hiện một message box định kỳ mỗi phút với windows title là “Practical Malware Analysis [n]“(n là số lần hiện message box từ khi mã độc được thực thi), thông báo “Press OK to reboot” và nút OK. Khi click vào nút OK, message box chỉ được đóng lại mà không có hiện tượng nào khác xảy ra.
Sử dụng các công cụ theo dõi tiến trình như ProcMon và Process Explorer không thu thập được thông tin gì hữu ích về mã độc.
Phân tích file thực thi bằng IDA Pro, tại đầu hàm _main, mã độc lưu địa chỉ hàm của các hàm EnumProcessModules, GetModuleBaseNameA và EnumProcesses của thư viện psapi.dll vào các con trỏ hàm, sau đó gọi hàm EnumProcesses để lấy PID của mọi tiến trình đang được thực thi trong hệ thống.
Với danh sách các PID vừa lấy được, mã độc thực hiện dịch tên tiến trình từ PID thông qua hàm GetModuleBaseNameA và so sánh với string “explorer.exe”. Như vậy, đầu tiên, mã độc thực hiện tìm kiếm tiến trình explorer.exe trong bộ nhớ.
Khi tìm được tiến trình explorer.exe, mã độc thực hiện ghi một buffer vào vùng nhớ của tiến trình explorer.exe. Buffer trước đó đã được gán giá trị là đường dẫn tới file Lab12-01.dll trong cùng thư mục với file thực thi của mã độc. Mã độc tạo một thread explorer.exe mới nạp Lab12-01.dll và kết thúc thực thi. Như vậy, kết luận Lab12-01.exe thực hiện DLL injection ép tiến trình explorer.exe nạp thư viện Lab12-01.dll nằm trong cùng thư mục với file thực thi mã độc.
Phân tích Lab12-01.dll. Mã độc lặp vô tận thao tác tạo thread hiện message box với tiêu đề và nội dung như đã quan sát được tại bước quan sát thực thi ban đầu. Sau mỗi lần tạo message box, mã độc ngủ 60s và lặp lại thao tác trên.
Phát hiện
Lab12-01.exe có thể phát hiện bằng signature:
- 20 byte từ fileoffset 4245, là đoạn tìm kiếm process explorer.exe theo tên
- 20 byte từ fileoffset 4826, là đoạn code thực hiện process injection trên explorer.exe
Lab12-01.dll có thể phát hiện bằng signature:
- 20 byte từ fileoffset 4114, là đoạn code thực hiện in thông báo “Press OK to reboot”
- 20 byte từ fileoffset 4195, là đoạn tạo thread mới hiển thị thông báo spam và ngủ 60s
Gỡ bỏ
Đối với Lab12-01.exe, chỉ cần xóa bỏ file thực thi và thêm file Lab12-01.dll trong cùng thư mục như là mã độc liên quan.
Đối với Lab12-01.dll, xóa file Lab12-01.dll và restart tiến trình explorer.exe.
Tổng hợp phân tích mã độc Lab11 TẠI ĐÂY