Cùng chuyên gia an ninh mạng của SecurityBox tìm hiểu về cách phân tích, phát hiện và gỡ bỏ mã độc lab09-01 qua bài viết dưới đây.
Phân tích mã độc Lab09-01 trong cuốn Practical Malware Analysis của Andrew Honig và Michael Sikorski (https://nostarch.com/malware)
Mẫu mã độc của Lab09-01 có thể tải về từ: https://github.com/mikesiko/PracticalMalwareAnalysis-Labs
Phân tích
- Lab09-01.exe chỉ thực thi các hành vi độc hại khi được cấp đúng tham số đầu vào và password. Password là “abcd”. Các tham số đầu vào cơ bản bao gồm “-in”, “-re”, “-c”, “-cc”. Nếu các tham số ban đầu hoặc password cung cấp sai, mã độc tự xóa file thực thi của chính nó sau đó kết thúc thực thi. Ta có thể đặt tên cho file thực thi của mã độc với bất cứ tên gì. Trong bài phân tích, tên file thực thi được giữ nguyên là “Lab09-01.exe”.
Lab09-01.exe -in abcd:
- Các registry key mà mã độc tạo:
+ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \XPS (chú ý ký tự SPACE trong subkey “Microsoft ”) với một value có tên là Configuration chứa dữ liệu là các giá trị string “ups”, “http://www.practicalmalwareanalysis.com”, “80”, “60”
+ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lab09-01 với value DisplayName là “Lab09-01 Manager Service” và ImagePath là “%SYSTEMROOT%\system32\Lab09-01.exe”. Registry key này là kết quả gián tiếp sau khi mã độc thực hiện hàm CreateService, tạo một autostart service.
- Copy file thực thi Lab09-01.exe vào thư mục %SYSTEMROOT%\system32 với tên giữ nguyên
- Copy giá trị FileTime của C:\Windows\system32\kernel32.dll và dùng giá trị FileTime đó set cho C:\Windows\system32\Lab09-01.exe (kỹ thuật timestomping)
- Với tham số đầu vào “-in abcd”, mã độc thực hiện chức năng như một backdoor: Kết nối internet với tham số lấy trong registry value Configuration (host www.practicalmalwareanalysis.com, port 80), lệnh điều khiển lấy từ file ngẫu nhiên xxxx/xxxx.xxx. Các lệnh điều khiển là: SLEEP, UPLOAD, DOWNLOAD, CMD, NOTHING.
Lab09-01.exe -re abcd:
- Mã độc gỡ bỏ autostart service mà nó tạo với tham số đầu vào “-in” bằng cách xóa registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lab09-01.
- Xóa file %SYSTEMROOT%\system32\Lab09-01.exe
- Xóa dữ liệu trong value HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \XPS\Configuration
- Nếu thao tác xóa dữ liệu của registry value trên không thành công, mã độc cố gắng xóa registry key đó.
Lab09-01.exe -c abcd chibi cute meow lovely:
- Với tham số đầu vào “-c”, mã độc yêu cầu các tham số sau đó phải là password và 4 tham số phụ khác (trường hợp này, mã độc sử dụng tổng cộng 7 tham số dòng lệnh), các tham số phụ này đặt tùy ý.
- Gọi hàm phân giải các tham số 3, 4, 5, 6 (chibi, cute, meow, lovely); tạo mới/mở registry value tại HKLM\SOFWARE\Microsoft \XPS\Configuration và set dữ liệu là 4 tham số đầu vào vừa phân giải được, sau đó kết thúc thực thi
Lab09-01.exe -cc abcd:
- Truy vấn giá trị của registry value HKLM\SOFWARE\Microsoft \XPS\Configuration và in kết quả ra màn hình
Phát hiện
Lab09-01.exe có thể phát hiện bằng signature:
- 20 byte tính từ file offset 9525 (2535h), là đoạn kiểm tra password trong tham số đầu vào
- 20 byte tính từ file offset 49225 (C049h), là một phần của giá trị hard-coded string “SOFWARE\Microsoft \XPS\Configuration”
Gỡ bỏ
- Xóa file thực thi của mã độc
- Vì file thực thi có thể được đặt bất cứ tên gì. Ta phải lấy tên file (không tính phần tên mở rộng) ghép vào đường dẫn “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\” và “%SYSTEMROOT%\system32\” để xóa registry key và file thực thi tương ứng.
- Dùng hàm WinAPI GetSystemDirectory() để lấy giá trị đường dẫn %SYSTEMROOT%
- Xóa registry key “HKLM\SOFWARE\Microsoft \XPS”
Xem chuyên đề phân tích mã độc TẠI ĐÂY