Phân Tích Một Biến Thể Của Malware Kriskynote

 

Tản mạn qua các hệ thống thu thập malware,  tôi vô tình phát hiện một mẫu có địa chỉ C2 là “10.10.37.29\hotrokythuat\media\media.php”. Qua các signature của mẫu, đối chiếu với cơ sở dữ liệu của các anti-malware, tôi có thể xác định mẫu malware này thuộc dòng Kriskynote với chức năng chính là tạo backdoor và đánh cắp dữ liệu của người dùng.

 

Thông tin chung

Malware sử dụng kỹ thuật dll side-loading nhằm tải nội dung của bản thân vào tiến trình của phần mềm IBM LotusNotes/Domino.

 

Thông tin mẫu

–          Tên:     MPR.dll

–          Kích thước:     2096KB

–          MD5:   92a4f02a2d09bf7de5ad4d10c8460b12

–          Định dạng: dll

–          Mô tả tập tin: IBM Lotus Notes/Domino

 

Phân tích chi tiết

Hàm DllMain của mã độc được thiết kế để khi bất cứ khi nào có một tiến trình tải dll này lên, nó sẽ khởi tạo một luồng thực thi ở địa chỉ hàm StartAddress với tham số đầu vào của luồng là handle hinstDLL.

Trong luồng thực thi này, malware sẽ kiểm tra tiến trình khởi tạo nó có phải là nsd.exe hay không? Rồi tạo Mutex để trong một thời điểm chỉ có một tiến trình với mã là F8279B61-66AA-461F-AEAD-3D5FE8250109 được thực thi. Sau đó, mẫu tiếp tục tạo một luồng thực thi khác ở địa chỉ 10004BE0 (VA). Luồng này sẽ gọi hàm thực thi chính của malware.

Trong hàm Main thực thi rất nhiều tác vụ sẽ được tóm tắt lại thành các hoạt động chính lần lượt như sau.

Đầu tiên, sau khi hàm main được gọi sẽ tiếp tục khởi tạo một luồng thực thi nữa. Luồng sẽ tìm kiếm hai tiến trình là explorer.exe và winlogon.exe để lấy Token của chúng.

Sau khi lấy được Token của 1 trong hai tiến trình này, luồng sẽ gọi hàm ImpersonateLoggedOnUser, Hàm ImpersonateLoggedOnUser cho phép tạo một luồng mạo danh security context của người dùng đã đăng nhập. Người dùng được đại diện bởi một Token handle.

Ngay sau đó, luồng sẽ kiểm tra thông tin trong registry “InternetSetting” để xác định xem hệ thống có dùng Proxy hay không.

Tiếp theo, Kriskynote sẽ lại quét tất cả tiến trình để tìm tiến trình “nsd.exe”. Sau đó mẫu thực thi một loạt các hoạt. Nhưng do không có mẫu của tệp “nsd.exe” nên không xác định được phần này mẫu làm vậy có mục đích gì.

Khi kết thúc hoạt động quét tiến trình, malware sẽ cắt ghép để được các chuỗi “notestat.tmp”, “mui\kvoopupdate.exe”, “La_Mui.ini”, “\properties\lib\\security\”, …. Mẫu 1 thực hiện việc giải mã dữ liệu trong data section của mình rồi ghi ra file kvoopupdate.exe.

Ngoài ra, mã độc còn tạo một thư mục ở ổ hệ thống với đường dẫn “\properties\lib\security\”.

Việc tiếp theo, Kriskynote gọi hàm WSAStartup để sử dụng WinSock DLL trong tiến trình và gọi các hàm như gethostbyname, inet_ntoa để thu thập thông tin định danh hệ thống.

Nhưng thông tin định danh này sẽ được đặt thành tên file với cấu trúc như sau “[host name]([IP])[LocalTime].rar” và được lưu ở thư mục hể thống vừa được tạo.

Lúc này malware sẽ sử dụng phần mềm kvoopupdate.exe, thực chất là phần mềm winrar, với lệnh như sau:

“\\mui\\kvoopupdate.exe  a -r -taDefault06 -v35m -hp!@#123456 \\properties\\lib\\security\\John-PC(127.0.0.1)2020072652337.rar \”C:\\Users\\John\\\”Desktop\\*.doc* \”C:\\Users\\John\\\”Desktop\\*.xls* \”C:\\Users\\John\\\”Desktop\\*.txt* \”C:\\Users\\John\\\”Desktop\\*.pdf* \”C:\\Users\\John\\\”Desktop\\*.ppt*”

Tóm tắt nhanh ý nghĩa của lệnh này là sử dụng chương trình kvoopupdate thu thập tất cả các tệp office như doc, xls, ppt, pdf, txt. Nén lại vào theo đường dẫn “properties\\lib\\security\\John-PC(127.0.0.1)2020072652337.rar”.

Thêm vào đó tất cả các thông tin cấu hình mạng sẽ được ghi vào tệp notestat.tmp

Khi thực thi lệnh trên tất cả thông tin cấu hình mạng và thông tin hệ thống sẽ được lưu vào file notestat.tmp.

cmd /c ipconfig >>\\icc\notestat.tmp &cmd /c netstat -ano >>\\icc\notestat.tmp &cmd /c systeminfo >>\\icc\notestat.tmp

Cuối cùng sau khi thu thập dữ liệu của người dùng, malware sẽ đóng gói chúng lại chờ vào thời điểm thích hợp để gửi dử liệu lên máy chủ C2 vì gói dữ liệu khá lớn nên nếu gửi vào giờ làm việc của người sẽ rất dễ bị nghi ngờ.

Dữ liệu mà malware đánh cắp được gửi đến địa chỉ “10.100.37.29” sau quá trình thu thập và hoạt động này sẽ lặp đi lặp lại liên tục trong suốt quá trình hoạt động của malware. Tính đến thời điểm hiện tại C2 không còn hoạt động nữa hoặc đây là địa chỉ local trong một hệ thống nào đó nên ta không thu được thông tin gì thêm.

Tổng kết

Qua kết quả phân tích của mẫu, ta có thể kết luận được rằng mẫu malware này được viết lại từ chủng malware Kriskynote với nhiệm vụ chính này là đánh cắp dữ liệu của người dùng. Bằng cách sử dụng kỹ thuật dll side-loading malware ẩn mình trong chương trình IBM Lotus Notes/Domino tránh được sự nghi ngờ của người sử dụng.

 

IOC:

–          Hash MPR.dll: 92a4f02a2d09bf7de5ad4d10c8460b12

–          C&C: 10.100.37.29