18/09/2018, 15:51

Phân tích, phát hiện và gỡ bỏ mã độc Practical Malware Analysis Lab06-04

Ở bài viết lần trước bạn đọc đã được tìm hiểu về mã độc Practical Malware Analysis Lab06-03. Trong bài viết này, SecurityBox sẽ hướng dẫn các bạn phân tích, phát hiện, gỡ bỏ mã độc Practical Malware Analysis Lab06-04 Phân tích mã độc Lab06-04 trong cuốn Practical Malware Analysis ...

lab643

Ở bài viết lần trước bạn đọc đã được tìm hiểu về mã độc Practical Malware Analysis Lab06-03. Trong bài viết này, SecurityBox sẽ hướng dẫn các bạn phân tích, phát hiện, gỡ bỏ mã độc Practical Malware Analysis Lab06-04

Phân tích mã độc Lab06-04 trong cuốn Practical Malware Analysis của Andrew Honig và Michael Sikorski (https://nostarch.com/malware)

Mẫu mã độc của Lab06-04 có thể tải về từ: https://github.com/mikesiko/PracticalMalwareAnalysis-Labs

Phân tích

Lab06-04.exe thực hiện các hành vi:

  • Kiểm tra kết nối Internet trên hệ thống. Nếu có kết nối Internet, in ra màn hình kết quả “Success: Internet Connection”; nếu không có kết nối Internet, in ra màn hình kết quả “Error 1.1: No Internet” và kết thúc thực thi
  • Nếu hệ thống có kết nối Internet, thực hiện truy vấn tới URL “http://www.practicalmalwareanalysis.com/cc.htm” với UA là “Internet Explorer 7.5/pma[D]” với [D] là một số int nhỏ hơn 1440.

lab641

  • Mã độc sử dụng một biến đếm tăng dần trong 1440 vòng lặp. Như vậy, mỗi lần request tới URL, mã độc sử dụng một UA khác nhau. Nếu request tới URL trên không thành công, in ra màn hình kết quả “Error 2.1: Fail to OpenUrl” và kết thúc thực thi. Tại thời điểm phân tích, file cc.htm không còn tồn tại trên máy chủ practicalmalwareanalysis.com nên thực thi mã độc chỉ trả về Error 2.1.

lab642

  • Nếu kết nối URL thành công, đọc 200 byte đầu tiên của file cc.htm. Nếu lỗi đọc file, in ra màn hình kết quả “Error 2.2: Fail to ReadFile” và kết thúc thực thi.
  • So sánh 4 byte đầu tiên trong dữ liệu đọc được với chuỗi “<!–”, nếu không trùng khớp, in ra màn hình kết quả “Error 2.3: Fail to get command” và kết thúc thực thi.
  • Nếu 4 byte đầu tiên trong dữ liệu đọc từ file cc.htm trùng với chuỗi “<!–” (mở đầu HTML comment), in ra màn hình thông báo “Success: Parsed command is ” và ký tự đầu tiên trong HTML comment
  • So sánh kết quả phép trừ kí tự đầu tiên lấy được từ HTML comment cho 61h (so sánh kí tự đầu tiên của HTML comment với kí tự ASCII ‘a’ -> ‘e’) và lấy kết quả trên làm điều kiện nhảy tới switch case tương ứng:

              + Case 0: Tạo thư mục C:Temp

              + Case 1: Copy file thực thi của Lab06-04.exe vào thư mục C:Temp, đặt tên mới cho file vừa copy là cc.exe (C:Tempcc.exe)

              + Case 2: Xóa file C:Tempcc.exe

              + Case 3: Mở subkey tại SoftwareMicrosoftWindowsCurrentVersionRun, thêm một value mới là “Malware” và đặt giá trị cho key đó là “C:Tempcc.exe”.

              + Case 4: Sleep 100 giây

              + Default: Báo lỗi “Error 3.2: Not a valid command provided”

              + Các đường dẫn và registry value trên đều được hard-coded

lab643

  • Sleep 60s và thực hiện lại vòng lặp. Nếu biến đếm bằng 1440, kết thúc thực thi.
  • 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ì, mã độc mất khoảng 1440 phút (24 giờ) để hoàn tất thực thi.

Phát hiện

  • Lab06-04.exe có thể phát hiện bằng signature:
  • 20 byte tính từ fileoffset 4352, là đoạn code so sánh 4 byte dữ liệu đọc từ cc.htm với chuỗi mở đầu HTML comment (“<!–”)

lab644

  • 20 byte tính từ fileoffset 4763, là đoạn cuối vòng lặp for (1440 vòng lặp) trong hàm main

lab645

Gỡ bỏ

  • Lấy tên và xóa bỏ file thực thi của mã độc
  • Cố gắng xóa registry value HKLMSoftwareMicrosoftWindowsCurrentVersionRunMalware
  • Cố gắng xóa file C:Tempcc.exe
  • Đường dẫn file và registry value trên đều được hard-coded

lab646

Đọc toàn bộ những phân tích về mã độc của chuyên gia an ninh mạng SecurityBox Tại Đây

0