Phần 1 của bài viết Phân tích mã độc Trojan-Ransom.Win32.WannaCrypt.AA đang được rất nhiều bạn đọc quan tâm, theo dõi. Tiếp tục đi sâu Phân tích về loại mã độc này cùng đón đọc những phân tích tiếp theo của chuyên gia an ninh mạng của SecurityBox Nguyễn Việt Anh dưới đây nhé.
Phân tích, phát hiện và gỡ bỏ mã độc Trojan-Ransom.Win32.WannaCrypt.AA Phần 1
Vùng nhớ bắt đầu từ địa chỉ 10000000h chính là thành phần mã hóa thực sự của mã độc. Dữ liệu của vùng nhớ này (giải mã từ t.wnry) không nằm trên bất kỳ file nào.
Thực chất, vùng nhớ binary này là một DLL với hàm export duy nhất là TaskStart.
Một số string đáng chú ý:
Giả mã của hàm TaskStart:
Đầu tiên, mã độc tạo một mutex với tên “Global\MsWinZonesCacheCounterMutexA” để đảm bảo tại một thời điểm chỉ có một instance của nó được thực thi trên hệ thống.
Sau đó, mã độc ghi khóa công khai của MS Enhanced RSA – AES vào file 00000000.pky, sử dụng khóa công khai đó để mã hóa một vùng nhớ và ghi vùng nhớ được mã hóa đó vào file 00000000.eky như một khóa bí mật RSA (victim-unique private key).
Mã độc kiểm tra sự tồn tại và ghi một số lệnh mã hóa vào file 00000000.res. Các lệnh này được sử dụng để giao tiếp với C2 server.
Sau đó, mã độc tạo hai thread thực thi các file taskdl.exe và taskse.exe.
Trong thao tác tiếp theo, mã độc copy nội dung file u.wnry vào file @[email protected] và bắt đầu thực hiện chức năng mã hóa.
Tại hàm mã hóa chính, trong khi duyệt tất cả các thư mục trong hệ thống file, mã độc thực hiện các thao tác:
Tạo một shortcut dẫn tới file @[email protected] bằng một .bat script. File .bat này được đặt tên từ một số ngẫu nhiên độ dài 15 và được xóa đi sau khi thực thi xong.
Nội dung file .bat:
Mã độc copy nội dung file r.wnry vào file “@[email protected]”. Sau đó, nó kiểm tra mỗi file trong thư mục hiện tại với tên mở rộng “.WNCYR” và “.WNCRY”.
Nếu một file không có tên mở rộng là một trong hai string trên, sau khi kiểm tra header của file với giá trị “WANACRY!” để chắc chắn rằng file đó chưa được mã hóa, mã độc thực hiện đọc nội dung file vào một buffer, mã hóa buffer đó và ghi vào một file với tên [filename].WNCRYT, “T” có thể được hiểu là “Temp”.
Sau khi ghi hết buffer vào file [filename].WNCRYT, mã độc đổi tên file đó thành [filename].WNCRY.
Các file với phần tên mở rộng sau đây sẽ bị mã hóa: .der .pfx .key .crt .csr .p12 .pem .odt .ott .sxw .stw .uot .3ds .max .3dm .ods .ots .sxc .stc .dif .slk .wb2 .odp .otp .sxd .std .uop .odg .otg .sxm .mml .lay .lay6 .asc .sqlite3 .sqlitedb .sql .accdb .mdb .db .dbf .odb .frm .myd .myi .ibd .mdf .ldf .sln .suo .cs .c .cpp .pas .h .asm .js .cmd .bat .ps1 .vbs .vb .pl .dip .dch .sch .brd .jsp .php .asp .rb .java .jar .class .sh .mp3 .wav .swf .fla .wmv .mpg .vob .mpeg .asf .avi .mov .mp4 .3gp .mkv .3g2 .flv .wma .mid .m3u .m4u .djvu .svg .ai .psd .nef .tiff .tif .cgm .raw .gif .png .bmp .jpg .jpeg .vcd .iso .backup .zip .rar .7z .gz .tgz .tar .bak .tbk .bz2 .PAQ .ARC .aes .gpg .vmx .vmdk .vdi .sldm .sldx .sti .sxi .602 .hwp .snt .onetoc2 .dwg .pdf .wk1 .wks .123 .rtf .csv .txt .vsdx .vsd .edb .eml .msg .ost .pst .potm .potx .ppam .ppsx .ppsm .pps .pot .pptm .pptx .ppt .xltm .xltx .xlc .xlm .xlt .xlw .xlsb .xlsm .xlsx .xls .dotx .dotm .dot .docm .docb .docx .doc
Sau khi duyệt tất cả các thư mục trong hệ thống file và tạo các bản mã hóa cho từng file trong mỗi thư mục,mã độc cập nhật trạng thái mã hóa tống tiền vào file 00000000.res và tạo một process thực thi @[email protected] với tham số dòng lệnh là “cmd.exe /c start /b @[email protected] vs”.
Trong khi thực hiện thao tác mã hóa file, mã độc chọn ngẫu nhiên một số file (tối đa 10 file) được mã hóa với một khóa bí mật RSA nhúng. Đường dẫn tới các file này được ghi trong file f.wnry. @[email protected] sẽ giải mã các file này để chứng minh với nạn nhân về khả năng giải mã file của nó.
Mã độc thực thi file @[email protected] và thêm một registry value tại địa chỉ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\[random_string] với value data được gán với đường dẫn tới file tasksche.exe. Có thể thấy mã độc cố gắng thiết lập khả năng tự động thực thi khi hệ thống khởi động nhưng nó lại sử dụng tên file thực thi được hard-coded là “tasksche.exe”. Nếu file thực thi được đặt bằng một tên khác, autorun registry này trở nên vô nghĩa.
Sau đó, mã độc thực thi taskse.exe. Công cụ này liệt kê các phiên RDP đang hoạt động để đảm bảo cửa sổ của @[email protected] được hiển thị đối với mọi remote user, tức là mọi remote user đều thấy được thông báo đòi tiền chuộc.
Trong thao tác cuối cùng của tiến trình này, mã độc đóng một số tiến trình liên quan đến cơ sở dữ liệu để unlock và mã hóa các cơ sở dữ liệu của chúng.
Sau khi mã độc hoàn tất các thao tác trên, nạn nhân sẽ được thấy hình nền Desktop của mình bị thay đổi, hầu hết các file trên hệ thống bị mã hóa với tên mở rộng .WNCRY và một thông báo đòi tiền chuộc hiển thị liên tục.
Đón đọc thêm nhiều các phân tích về mã độc từ chuyên gia an ninh mạng SecurityBox TẠI ĐÂY nhé.