Chiến dịch mới sử dụng Cobalt Strike tấn công vào Việt Nam

Sorry anh em, sau series gồm 2 phần viết về chiến dịch APT32 tôi đã hứa sẽ viết tiếp phần 3. Tuy nhiên vì 1 số lý do cá nhân mà tôi không tiếp tục nữa. Nếu có ae nào quan tâm về samples có thể contact với tôi qua email sp1d3r.bk@gmail.com nhé.

Hôm nay thời tiết nóng nực, sẵn gặp khá nhiều mẫu APT attack vào Việt Nam sử dụng Cobalt Strike ngứa ngáy quá nên muốn viết lách tí.

Thông tin mẫu:

Url: https://app.any.run/tasks/21c5c248-035d-41e4-88a6-efc178bd039e

Nguồn: twitter @honkone_k

FileName: Mau cam ket danh cho Dang vien.doc — Tên file nhạy cảm phết nhỉ :))

MD5 Hash: 509f196af156f4bd6c9ced1d6fee93a0

Mẫu được save lần cuối vào 23/04/2019 10:40AM

Về cơ bản mẫu này là file doc có chứa VBA Macro, tôi extract Macro code ra xem thế nào:

Đoạn code macro sau khi được decode, download file Mau2.hta từ C&C 144.202.54.86 về và thực thi bằng WMI của windows:

File Mau2.hta (MD5 hash: 36541C0C3ACA511F0C64F2138EDD144B) là 1 đoạn VBScript (Attacker đặt tên file khá là Việt Nam — Tôi có thử với url: hxxp://144[.]202[.]54[.]86:80/download/Mau1.hta thì cũng có nội dung gần như tương tự :D):

Tiếp tục loại bỏ các comment rác để dễ đọc code :)

Chúng ta có thể thấy đoạn code này khi thực thi sẽ thực hiện những nhiệm vụ sau:

  • Tạo file %temp%\cp13.bat với nội dung: cmd /c echo cmd.exe /c copy /y %windir%\system32\certutil.exe ““%temp%\windows.cpl””
  • Thực thi file %temp%\cp13.bat với mục đích copy file certutil.exe của windows vào thư mục %temp%\windows.cpl
  • Download file Mau cam ket danh cho Dang vien.docx (MD5 hash: 9A47F5E6303E5913D1034A7B120B730E)vào thư mục %temp% và mở file lên: File docx này attacker dùng để hiển thị nội dung giả mạo lên để tạo giao diện lừa người dùng.

Xem lại file Mau1.hta, attacker lại sử dụng để download file Mau cam ket danh cho Chua Dang vien.docx (MD5 hash: 2C20CFE31791231BE5B9769706D1C61D) có lẽ Mau1.hta được sử dụng khi attacker gửi file doc thử nhất chứa macro cho victim và tôi nghĩ nó sẽ có tên tương ứng là “Mau cam ket danh cho Chua Dang vien.doc”. Tôi mới thử download Mau3.hta hay Mau4.hta đều chưa thấy có nên tôi nghĩ chắc attacker mới chỉ chuẩn bị 02 cases mã độc để đi attacker :D

  • Download file hxxp://144[.]202[.]54[.]86/download/0423.dat về và dùng CertUtil giải mã thành file %temp%\windat.ps1 để thực thi mã powershell trên máy người dùng.

Sau khi tôi giải mã file 0423.dat (MD5 hash: 87D9422228775F5BDAA76A3358537256), được nội dung mã powershell như bên dưới:

Tiếp tục giải mã Base64 cho đoạn encode string được 1 đoạn mã powershell khác:

Nhìn qua đoạn Base64 string “TVqQAAMAAAAEAAAA//8AALgAAAAAAA” tôi biết đây là Base64 encode của 1 file PE -> Decode nó ra để xem nó làm gì thôi:

File PE được nhúng trong mã powershell là 1 file DLL được viết bằng .Net (MD5 Hash: 89F5FADB33DC3302A1B6CBD196A70022), để decompiler file PE này tôi sử dụng công cụ dnSpy quen thuộc thôi:

Hàm Unistall được gọi để thực thi code tại hàm oJvbOi.Exec(), hàm Exec trong class oJvbOi thực hiện nhiệm vụ giải mã đoạn shellcode đang được base64 encode, alloc 1 vùng nhớ trên memory bằng hàm VirtualAlloc -> CreateThread đoạn shellcode để thực thi shellcode trên memory:

Tôi tiếp tục phân tích đoạn shellcode này với OllyDebug:

Attacker sử dụng kỹ thuật xor với 0x15 khá đơn giản để giải mã đoạn code của mã độc và thực thi:

  • Connect tới C&C cũ: 144.202.54.86
  • Download file hxxps://144[.]202[.]54[.]86/qYM0:

Tôi gặp khá nhiều mẫu shellcode được encrypt khá đơn giả bằng phương pháp xor nên thường nhìn một đoạn shellcode tôi hay để ý mấy chỗ bytes giống nhau liên tiếp, bởi trong code nó sẽ là 0x00 liên tiếp và sau khi xor với cùng 1 giá trị sẽ ra các giá trị giống nhau liên tiếp. Trong trường hợp này giá trị liên tiếp mà tôi thấy là 0x15 -> Vậy đơn giản dùng 010 Editor để xor với 0x15 thôi:

Sau khi xor đoạn data của shellcode được giải mã ra nhiều plaintext, trong đó có cả thông tin C&C và payload mã độc sẽ download về:

Thực ra cách này để tìm nhanh C&C trong trường hợp sếp thúc vào ass và bắt lấy nhanh C&C thôi, cũng hên xui anh em ạ.

File qYM0 (MD5 hash: 1197FD558A07F1DD45471CD98E7C8A55)được download về cũng là 01 shellcode, tiếp tục debug shellcode này:

Đoạn data trong shellcode tiếp tục được giải mã lên memory -> chúng ta có thể thấy đoạn data trong shellcode sau khi giải mã chính là 1 file PE:

File PE được giải mã là 1 DLL, load vào IDA tôi nhận thấy phong cách code này khá quen thuộc -> Đây là code của mã đôc Cobalt Strike :) , 0x200 bytes data được xor đơn giản với 0x69 để ra được các thông tin cần thiết:

Dump 0x200 bytes này về và giải mã thôi:

Sử dụng công cụ 010 Editor để giải mã config của Cobalt Strike

Sau khi giải mã, thông tin C&C cho thấy C&C vẫn như cũ, tôi không tiếp tục phân tích nữa vì cơ bản đến đây cũng ra được hết các thông tin cần thiết rồi :D Đơn giản nó tạo kênh backdoor để connect về C&C nhận lệnh điều khiển!

Một số mẫu nữa tôi cũng tìm thấy nó tương tự như ở tweets của anh bạn blackorbird bên China của tôi:

Thời gian mẫu được tạo khá sát với thời gian mẫu tôi phân tích và có cùng tên file

02 mẫu mà blackorbird tìm thấy đều có kĩ thuật tương tự và kết nối đến C&C tương tự. Payload của thằng này download vềtheo url: hxxps://144[.]202[.]54[.]86/vkt2 cũng chính là thằng qYM0 được phân tích ở trên.

Với việc tên file và cách thức thực thi giống hệt nhau nên tôi chắc chắn rằng nó được tạo ra bởi cùng 1 attacker và đang tấn công vào một hoặc nhiều cơ quan tổ chức nào đó ở Việt Nam.

Thử tìm hiểu thêm các thông tin của C&C 144.202.54.86:

Thông tin Virustotal trả về có Communicating Files: test2.exe

https://www.virustotal.com/gui/file/54e98495320b1844c3cd4a5362303c00373d4a648c4aac82bbe618659e0f7fef/detection

May mắn nhờ có anh bạn tốt blackorbird lấy file giúp (tôi không đủ tiền để mua account VTI), thấy có thông tin khá hay khi kéo vào PDB:

User tên Việt Nam: Pham Kim Cuong???

Mẫu này cũng kết nối đến C&C để download payload về thực thi: hxxps://144\.202\.54\.86/vkt2

Thông tin IoCs:

File — MD5 Hash:

  • Mau cam ket danh cho Dang vien.doc — 509f196af156f4bd6c9ced1d6fee93a0
  • Mau1.hta — 6094761FA2D4A1A5501432F6A1B643CE
  • Mau2.hta — 36541C0C3ACA511F0C64F2138EDD144B
  • vhD5–1197FD558A07F1DD45471CD98E7C8A55
  • qYM0–1197FD558A07F1DD45471CD98E7C8A55
  • 0423.dat — 87D9422228775F5BDAA76A3358537256

C&C: 144\.202\.54\.86

Urls:

  • hxxps://144\.202\.54\.86/vkt2
  • hxxps://144\.202\.54\.86/qYM0
  • hxxps://144\.202\.54\.86/0423.dat
  • hxxps://144\.202\.54\.86/Mau1.hta
  • hxxps://144\.202\.54\.86/Mau2.hta

Trên là phân tích của tôi cơ bản về 1 chiến dịch APT sử dụng Cobalt Strike để tấn công vào Việt Nam. Có thể lời lẽ không chau chuốt và kĩ thuật phân tích còn kém, anh em cứ gạch đá nhé.

Many thanks blackorbird for help me download sample and Hoàng Cường send me some good info!

Sp1d3r.BK — Tổ chức X!