[email protected] (04) 3795 8282 - (04) 3795 8228 - 1800 556 864
CMC CYBER SECURITY PHÂN TÍCH MẪU MALWARE DẠNG LNK CỦA NHÓM APT PANDA
.31 Th10

CMC CYBER SECURITY PHÂN TÍCH MẪU MALWARE DẠNG LNK CỦA NHÓM APT PANDA

Gần đây, CMC CyberSecurity nhận được một số mẫu mã độc được cho là do nhóm tin tặc Panda phát triển. Nhằm tấn công APT tới các tổ chức chính phủ các nước, trong đó có các tổ chức của Việt Nam.

Các mẫu nhận được sau khi phân tích có thể chia làm 2 loại. Mỗi loại sử dụng 1 cách thực thi payload khác nhau nhưng vẫn có một số đặc điểm chung sau:

  • Sử dụng file shortcut .lnk kèm theo đuôi .doc(ví dụ sample.doc.lnk) để đánh lừa người dùng.
  • File lnk đính kèm theo file hta có thể thực thi được vbscript.
  • Script mở file document đính kèm cho người dùng và ngầm thực thi payload.

Dựa trên nội dung của các file tài liệu được chuẩn bị để đánh lừa người dùng, có thể phỏng đoán rằng mục tiêu mà kẻ tấn công muốn nhắm đến là người dùng thuộc một số đơn vị trong cơ quan nhà nước Việt Nam.

   1.  Phân tích kỹ thuật

  1.1.  Phân tích file lnk loại 1

File LNK

File mẫu là 1 file shortcut có phần mở rộng đuôi là .lnk, thường được đặt tên kèm theo đuôi .doc để đánh lừa người dùng do đuôi .lnk sẽ được Windows ẩn đi. Điểm đáng ngờ là ở phần target của file shortcut. Thông thường, target của shortcut thường trỏ đến 1 thư mục hay 1 file đích. Tuy nhiên, target của các mẫu đều chứa đoạn command có dạng sau:

%comspec% /c for %x in (%temp%=%cd%) do for /f "delims==" %i in ('dir "%x\GIAYMOI.doc.lnk" /s /b') do start m%windir:~-1,1%hta.exe "%i"

Đoạn lệnh trên đã được obfuscate bằng cách sử dụng biến %comspec% để thay cho việc gọi trực tiếp chuỗi “cmd.exe” và chữ “s” trong tên file mshta.exe được lấy bằng cách cắt ký tự cuối cùng của giá trị chứa trong biến “%windir%”(thường là C:\Windows).

Mshta.exe là 1 ứng dụng của microsoft phát triển nhằm tận dụng ưu điểm xây dựng nhanh ứng dụng thông qua html, css, vbscript, javascript. Sử dụng mshta và định dạng file .hta, ta có thể mở 1 trang html như 1 ứng dụng. Định dạng file hta cũng giống như file html. Bằng cách thêm thẻ tag <HTA:APPLICATION/> vào trong thẻ <head> của file html ta đã có file hta có thể được mở thông qua ứng dụng mshta.

<HTA:APPLICATION icon="#" WINDOWSTATE="minimize" SHOWINTASKBAR="no" SYSMENU="no"  CAPTION="no" />

File hta có thể bị chèn thêm vào trước header của nó. Tận dụng điều này,

kẻ tấn công đã chèn vào trước nó 1 file lnk với command mở chính nó bằng mshta.exe để thực thi file hta nhúng kèm. Khi người dùng mở file lnk, sẽ thực thi command trong target của file lnk và thực thi file mshta.exe để mở chính nó.

File HTA

Mặc định, mshta.exe có thể thực thi cả javascript và vbscript nhúng trong file hta nhờ sử dụng các dll liên quan. File hta nhúng kèm khi mở lên sẽ có các thuộc tính: chạy thu nhỏ(minimize), không hiện trên taskbar, không có menu và caption. Nhiệm vụ duy nhất của nó là thực thi đoạn mã vbscript độc hại.

Đoạn mã vbscript đã bị obfuscate(làm rối) để khiến quá trình phân tích gặp khó khăn. Sau khi deobfuscate, có thể thấy đoạn mã chứa 1 data ở dạng binary.

Sau đó, đoạn mã sử dụng ADODB object để lưu lại binary data thành 1 file vào thư mục %temp% với tên là 3.ps1.

Cuối cùng sẽ thực thi file 3.ps1 bằng dòng lệnh

powershell.exe -exec bypass -file & szTempPath, Null, Instance, MWcWurrkfEbtfWdZTY

3.ps1

Đoạn mã powershell tiếp tục bị làm rối bằng các sử dụng base64 để encode toàn bộ nội dung của nó. Sau khi decode toàn bộ nội dung, script sẽ được tiếp tục chạy thông qua hàm iex của powershell.

Nội dung sau khi decode của script cũng bị làm rối để khiến cho nội dung của nó trở nên khó hiểu hơn. Sau khi phân tích, có thể biết được tổng quát nội dung và nhiệm vụ của đoạn mã như sau:

  • Đoạn mã kiểm tra quyền Administrator của user hiện tại và lưu kết quả vào 1 biến.
  • Tiến hành decode file .doc ở dạng base64 và lưu file này vào thư mục %temp%. Sau đó sẽ mở file này lên cho user.
  • Nếu script được chạy với quyền của Administrator, file .dat sẽ được lưu vào trong th thư mục “%windir%\debug”. Nếu không, thư mục %temp% sẽ được dùng để lưu file .dat.
  • Công cụ InstallUtil(v2.0 hoặc 4.0) sẽ được dùng để làm loader thực thi file payload .dat. Khi có quyền Administrator, script sẽ copy 2 file InstallUtil.exe và schtasks.exe của windows vào thư mục %temp%. Riêng file schtasks.exe(tiện ích của microsoft dùng để lên lịch tự động chạy 1 số chương trình, tác vụ 1) sẽ được đổi tên thành “wtask.exe”.
  • Sau đó dùng cmd để thực thi file wtask.exe tự động chạy có mục đích là tải thực thi file loader để chạy file .dat với quyền SYSTEM.
  • Nếu như không có quyền Administrator, loader sẽ được thực thi gián tiếp thông qua vbscript. Đoạn mã cũng kiểm tra và điều chỉnh cách thực thi cho phù hợp khi phát hiện có sản phẩm antivirus cài đặt trên máy tình.
  • Sau khi thực thi tiến trình “wtask.exe” sẽ tạo ra 1 entry trong Task Scheduler để thực thi

Final Payload

InstallUtil.exe khi thực hiện load file payload tmp_FlVnNI.dat sẽ tiếp tục decode 1 đoạn shellcode ở dạng base64 và copy phần giải mã được vào 1 vùng nhớ được cấp phát với thuộc tính PAGE_EXECUTE_READWRITE và tạo ra 1 thread để thực thi shellcode.

Shellcode sẽ tự giải mã 1 phần code của nó bằng thuật toán xor với key là 0x44. Sau khi giải mã 0xcf2 byte, shellcode sẽ thực thi phần được giải mã.

Đây là payload cuối cùng để thực hiện kết nối đến server của attacker. Hiện tại đã không thể kết nối được đến server này.

Phân tích file lnk loại 2

First stage

Tương tự như loại 1, loại 2 cũng là 1 file lnk được nhúng vào trước file hta. Ở giai đoạn thực thi vbscript, script này giải mã và lưu vào thư mục %temp% 3 file binary ở dạng base64 và 1 file document.

File document sau đó sẽ được mở cho user.

Trong khi đó, script sẽ thực thi file 3.exe để thực hiện các hành vi độc hại.

Second stage

File thực thi 3.exe thực  chất là 1 file sạch, nhưng sẽ load 1 file dll đã bị chỉnh sửa chứa mã độc.

Để làm điều này, attacker chỉ cần tìm 1 dll được load bằng hàm LoadLibrary trong file 3.exe(ở trường hợp này là http_dll.dll), sau đó tạo ra 1 file dll độc hại với tên trùng với tham số của hàm LoadLibrary và để cùng thư mục với file 3.exe. Khi gọi LoadLibrary, 3.exe sẽ tìm dll trong cùng thư mục trước và load nó lên.

http_dll.dll khi được load lên sẽ thực hiện tìm hàm VirtualProtect để chỉnh sửa thuộc tính của 16 byte vùng nhớ của module vừa load nó lên tại RVA là 0x157a thành PAGE_EXECUTE_READWRITE. Trong trường hợp này, vị trí sửa sẽ là lệnh jz 0x401533.

Để thực hiện hành vi độc hại, lệnh jz 0x401533 sẽ được thay thế bằng 3 lệnh push FFFFFFFF, push http_dll.10001230 và lệnh “ret” để chuyển hướng chương trình 3.exe sang hàm sub_10001230 của dll, sau đó chương trình sẽ để cho 3.exe thực thi tiếp.

Tại hàm sub_10001230, mã độc sẽ đọc file http_dll.dat trong cùng thư mục. Nội dung ở phần đầu của file dat này là 1 string có null-terminated và phần data. String này sẽ được sử dụng để là key giải mã cho phần data của file dat.

Sau đó, mã độc sẽ tạo ra 1 vùng nhớ mới để chứa phần giải mã được tiến hành bằng thuật toán xor với key là string trong file dat như trên.

Mã độc tiếp tục thay đổi thuộc tính của vùng nhớ mới này bằng thuộc tính PAGE_EXECUTE_READWRITE và thực thi shellcode tại địa chỉ này.

Nội dung giải mã thu được là 1 file PE dạng RAW, tuy nhiên đã được lồng vào rất khéo 1 shellcode, bắt đầu từ offset 0. Shellcode này có nhiệm vụ như 1 loader, load file PE dạng raw này để có thể thực thi được.

Đầu tiên, shellcode tìm địa chỉ của kernel32.dll sau đó lấy địa chỉ các hàm LoadLibray, GetProcAddress, ZwFlushIntructionCache, VirtualAlloc bằng cách so sánh hash tên của các hàm được kernel32 export.

Sau đó, Loader đọc header của file PE, thực hiện map các section lên các vùng nhớ tương ứng, realloc lại một số địa chỉ và resolve lại Import Address Table của file. Sau khi hoàn tất, luồng thực thi chương trình sẽ được chuyển qua hàm DllMain của file PE này.

Final Payload

Tại đây, mã độc sẽ tiến hành lấy 1 số đường dẫn để sử dụng, sau đó giải mã 1 phần data section để sử dụng.

Kết quả giải mã là 1 số strings bao gồm tên khóa autorun, ip c&c server.

Sau đó, mã độc sẽ thực hiện các hành vi sau:

  • Tạo bản sao của 3 file thực thi vào thư mục profile của user hoặc alluserprofile nếu có đủ quyền administrator.
  • Thêm và khóa autorun để tự kích hoạt file thực thi vừa drop ra khi khởi động lại máy. Đồng thời tự khởi chạy lại nếu đây là lần chạy đầu tiên của nó. Mã độc phân biệt điều này bằng cách chèn thêm 1 tham số nữa cho nó ở các lần chạy tiếp theo.
  • Tạo mutex, kết nối đến server để nhận lệnh từ server.
    • Tạo backdoor cho phép kẻ tấn công thực thi lệnh từ xa.
    • Hỗ trợ nhiều command khác nhau bao gồm upload file, thư mục, list folder, đọc file, lấy thông tin máy tính, user,…

Kết luận

Bằng cách sử dụng nhiều kỹ thuật tấn công khác nhau và làm rối trong khi thực thi cho thấy rằng người đứng sau phát triển mã độc đã đầu tư không ít thời gian để nghiên cứu mục tiêu và phát triển phương pháp tấn công cho phù hợp. APT là một loại tấn công nguy hiểm, được đầu tư kỹ lưỡng nhằm đánh cắp các thông tin quan trọng và gây nhiều thiệt hại cho tổ chức. Để phòng ngừa các cuộc tấn công APT, luôn luôn chuẩn bị các phương án đề phòng và giám sát liên tục mới có thể đảm bảo tính an toàn cho hệ thống của người dùng cũng như cả tổ chức.

C&C ip, domain

185.239.226.19

185.239.226.61

43.254.217.67

167.88.178.24

www.yahoorealtors.com

yahoorealtors.com

web.officeproduces.com

web.officeproduces.com

up.officeproduces.com

we.officeproduces.com

download.officeproduces.com

aridndvn.ccom

Infosecvn.com

Viết một bài

viVietnamese