Trước tần suất và mức độ nguy hiểm ngày càng tăng của các vụ tấn công APT, việc nghiên cứu về các nhóm APT trở thành một nhiệm vụ quan trọng nhằm xác định phương thức, thủ đoạn, công cụ tấn công; từ đó chuẩn bị phương án giám sát, ngăn chặn, giảm thiểu các mối đe dọa đối với hệ thống. Đó là một trong các nhiệm vụ mà đội nghiên cứu Threat Intelligence của NCS thực hiện. Trong báo cáo này, chúng tôi trình bày tóm tắt hoạt động của nhóm APT Mustang Panda trong năm 2020 và quý I/2021. Đây là một nhóm APT nổi tiếng thế giới và có khá nhiều “ân oán” với Việt Nam.
- Hồ sơ Mustang Panda
1.1. Quốc gia
Mustang Panda được cho là nhóm tin tặc có trụ sở hoạt động tại Trung Quốc
1.2. Các tên gọi khác
Mustang Panda (CrowdStrike)
Bronze President (SecureWorks)
TEMP.Hex (FireEye)
HoneyMyte (Kaspersky)
Red Lich (PWC)
1.3. Hoạt động chính
First seen: 2014
Vào tháng 4 năm 2017, CrowdStrike Falcon Intelligence đã quan sát thấy một nhóm tấn công chưa được phát hiện trước đây có mối quan hệ với Trung Quốc đang nhắm mục tiêu vào một think tank có trụ sở tại Hoa Kỳ. Phân tích sâu hơn cho thấy một chiến dịch tấn công rộng lớn với các TTP độc đáo. Kẻ tấn công nhắm mục tiêu vào các tổ chức phi chính phủ (NGO) nói chung, nhưng sử dụng chủ đề và mồi nhử ngôn ngữ Mông Cổ, cho thấy họ có trọng tâm cụ thể là thu thập thông tin tình báo về Mông Cổ. Các chiến dịch này liên quan đến việc sử dụng mã độc được chia sẻ như Poison Ivy hoặc PlugX.
Gần đây, Falcon Intelligence đã quan sát các hoạt động mới từ Mustang Panda, nhận thấy họ đang sử dụng một chuỗi lây nhiễm riêng để nhắm mục tiêu vào các nạn nhân có khả năng là người Mông Cổ. Hoạt động mới được quan sát này sử dụng một loạt redirection và fileless, triển khai mã độc với các công cụ hợp pháp để truy cập vào các hệ thống được nhắm mục tiêu. Ngoài ra, các tác nhân Mustang Panda đã sử dụng lại các miền hợp pháp đã quan sát trước đó để lưu trữ file.
1.4. Lĩnh vực và quốc gia
Lĩnh vực: Hàng không, Chính phủ, Tổ chức phi chính phủ, Think Tank.
Quốc gia: Úc, Bangladesh, Bỉ, Trung Quốc, Ethiopia, Đức, Hồng Kông, Ấn Độ, Mông Cổ, Myanmar, Nepal, Pakistan, Singapore, Hàn Quốc, Đài Loan, Anh, Mỹ, Việt Nam và LHQ.
1.5. Công cụ sử dụng
Nhóm này thường sử dụng các công cụ sau: PlugX Trojan, Poison Ivy, Cobalt Strike
1.6. Phương pháp tấn công
Các phương pháp tấn công tiêu biểu của Mustang Panda:
* Sử dụng nhiều phiên bản mã độc PlugX và Poison Ivy được chia sẻ giữa các nhóm tin tặc Trung Quốc
* Sử dụng chuỗi lây nhiễm phân phối các file .zip chứa các file Windows Shortcut (.lnk), các file này sẽ thực thi mã độc dẫn đến việc cài đặt PlugX hoặc Cobalt Strike
* Sử dụng chiến thuật DLL-Sideloading để cài mã độc
Chuỗi lây nhiễm của Mustang Panda thường được thực hiện qua các bước sau:
* Chuỗi lây nhiễm được bắt đầu bằng một weaponized link tới một thư mục Google Drive, được che giấu bằng dịch vụ rút gọn liên kết goo.gl.
* Khi được kết nối, liên kết Google Drive sẽ truy xuất một file zip, trong đó có một file .lnk bị che giấu dưới định dạng .pdf bằng thủ thuật double extension.
* File này yêu cầu mục tiêu cố gắng mở file .lnk, chuyển hướng người dùng đến một file Windows Scripting Component (.wsc), được lưu trữ trên microblogging page do đối phương kiểm soát. Mustang Panda trước đây đã sử dụng microblogging site để lưu trữ các script PowerShell độc hại và tài liệu Microsoft Office trong các cuộc tấn công có chủ đích đến các tổ chức phi chính phủ (tập trung vào Mông Cổ).
1.7. Các cuộc tấn công đáng chú ý trước đây
Theo thống kê của Trung tâm Ứng cứu khẩn cấp máy tính Thái Lan (ThaiCERT), dưới đây là những chiến dịch tấn công đáng chú ý được cho là do Mustang Panda thực hiện.
Bảng 1. Các cuộc tấn công đáng chú ý của Mustang Panda được ghi nhận
* File .lnk sử dụng thành phần VBScript được nhúng để truy xuất file PDF mồi nhử và script PowerShell từ trang web do đối phương kiểm soát.
* Script PowerShell tạo ra một payload Cobalt Strike. Script PowerShell này cũng truy xuất một payload Cobalt Strike beacon được mã hóa XOR từ miền do đối phương kiểm soát.
* Mạng lưới Cobalt Strike Beacon báo hiệu đến C2 IP Address, được sử dụng để điều khiển mạng lưới từ xa.
- Các chiến dịch của Mustang Panda năm 2020 và quý 1 năm 2021
Dưới đây là timeline các cuộc tấn công của Mustang Panda được ghi nhận trong năm 2020 và quý 1/2021
2.1. Biến thể PlugX mới nhắm mục tiêu Hồng Kông, Việt Nam
Vào tháng 01/2020, nhóm Avira’s Advanced Threat Research đã phát hiện ra một phiên bản PlugX mới được Mustang Panda sử dụng để do thám một số mục tiêu ở Hồng Kông và Việt Nam.
PlugX thực thi DLL hijacking với các ứng dụng lành tính như ESET antivirus, Adobe Update, v.v. Tuy nhiên, cách loader PlugX khởi chạy payload khác với các phiên bản trước. Ngoài ra, PlugX mà Mustang Panda sử dụng có một số tính năng bổ sung, bao gồm lây lan qua USB, thu thập thông tin và lấy cắp tài liệu trong các air-gaped network thông qua USB.
Mustang Panda sử dụng một package các binary để tải payload và nó được thiết kế theo cách này để vượt qua file scanner và sandbox. PlugX chứa 3 file: file EXE lành tính cho DLL hijacking, file DLL (chỉ là loader để thực thi payload) và payload được mã hóa (thường có phần mở rộng “.dat”). Nhóm Avira’s Advanced Threat Research đã tìm thấy các loại loader PlugX khác nhau, sẽ được thảo luận chi tiết hơn ở bên dưới. Rõ ràng, file scanner hay sandbox không thể phát hiện payload PlugX mà không có file DAT được mã hóa.
Giai đoạn đầu: Loader
Loader là một file DLL nhỏ, payload là một file DAT được mã hóa.
DLL chịu trách nhiệm giải mã file DAT và thực thi nó giống như một mã shellcode trong bộ nhớ. Nó đọc payload được mã hóa từ disk bằng cách gọi các API CreateFile và ReadFile, sau đó cấp phát bộ nhớ qua VirtualAlloc. Sau khi giải mã, nó thay đổi protection thông qua VirtualProtect và cuối cùng thực thi nó thông qua lệnh call trực tiếp.
DLL sử dụng các junk code và một obfuscation đơn giản để ẩn các lệnh call API qua stackstring và tải chúng một cách động.
File DAT chứa khóa giải mã (decryption key) bên trong chính nó. Kích thước của khóa có thể khác nhau. Loader đọc offset zero của file DAT được mã hóa cho đến khi nó đạt đến giá trị null và lấy đó làm khóa XOR để giải mã phần còn lại của file.
Hình 1: quy trình giải mã loader
Một số loader có hardcoded time bên trong file binary và chúng chỉ đơn giản là giải mã và thực thi payload trong một khoảng thời gian cụ thể.
Payload
Như đã trình bày ở trước, payload được thực thi giống như một mã shellcode nhưng đặc biệt ở chỗ nó là một file full PE binary. Loader sẽ bắt đầu payload từ offset zero của payload, có nghĩa là từ MZ. Hình dưới đây cho thấy một mã shellcode rất nhỏ được tạo thủ công để gọi entrypoint.
Payload được giải mã chỉ được tải vào bộ nhớ và không có footprint trên disk. Đây là phiên bản tùy chỉnh của PlugX với obfuscation đơn giản để vượt qua static detection và ẩn các chuỗi.
Hình 2: shellcode thủ công để gọi entrypoint
Payload là DLL có một hàm xuất được gọi là “Loader”. Phần đầu shellcode gọi hàm xuất “Loader”.
Hàm xuất thực hiện công việc của loader Windows để tải DLL một cách chính xác và sau đó thực thi entrypoint. Payload sử dụng hàm wrapper cho mọi lệnh gọi API để ẩn cơ chế gọi API.
Nó có thể được thực thi theo 3 cách khác nhau:
Argument | Description |
no argument | Đặt registry key để duy trì và tạo thư mục cho các file và chạy lại mã độc với -app |
-app |
|
-net |
|
Bảng 3. Cơ chế lệnh gọi API
Để duy trì, nó sử dụng registry run key:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
Nó tạo thư mục %appdata%\Intel cho các mô-đun bổ sung và thông tin bị đánh cắp.
Nó sử dụng một tập hợp các registry key để lưu trữ dữ liệu:
“System\CurrentControlSet\Control\Network\Version” → trạng thái truy cập internet
“Software\CLASSES\ms-pu\PROXY” → Phiên bản máy chủ C&C
Tên giá trị PlugX TLS trong binary:
Thread name | Functionality |
CXOnline::OlStartProc | starts CXOnline::OlStartProcPipe
Initializes C&C communication |
CXOnline::OlStartProcPipe | Initializes pipe communication objects
Parses C&C commands |
CXFuncShell::ShellT1
CXFuncShell::ShellT2 |
Remote Shell |
CXSalvation::SalExceptionHandler | Global exception handler for logging in SS.LOG file |
CXSoHttp::SoWorkProc | Sends requests to the C&C server |
Bảng 4. Giá trị PlugX TLS trong binary
USB infection
Một trong những tính năng giúp phân biệt biến thể này với các biến thể PlugX khác là khả năng lây lan qua USB.
Sau khi phát hiện USB volume drive di động, biến thể PlugX tạo một thư mục ẩn có tên “RECYCLE.BIN” và sao chép file EXE, DLL loader và file DAT được mã hóa. Sau đó, nó ẩn tất cả các thư mục trong thư mục gốc và tạo LNK cho mỗi thư mục để đánh lừa nạn nhân nhấp vào các file LNK.
Air gap network
PlugX kiểm tra xem có quyền truy cập internet không, sau đó cố gắng tìm thẻ USB và tạo file BAT theo đường dẫn sau: <usb volume>\RECYCLE.BIN\<plugX clsid>\tmp.bat và thực thi nó. Cuối cùng, nó sẽ xóa file BAT.
Bằng cách chạy file BAT này, nó thu thập thông tin cục bộ và mạng về hệ thống bị nhiễm và cố gắng gửi nó ra ngoài qua USB.
cmd.exe /c systeminfo > <usb volume>\RECYCLE.BIN\<plugX clsid>\sys.info
cmd.exe /c ipconfig /all >> <usb volume>\RECYCLE.BIN\<plugX clsid>\sys.info
cmd.exe /c netstat -ano >> <usb volume>\RECYCLE.BIN\<plugX clsid>\sys.info
cmd.exe /c arp -a >> <usb volume>\RECYCLE.BIN\<plugX clsid>\sys.info
cmd.exe /c tasklist /v >> <usb volume>\RECYCLE.BIN\<plugX clsid>\sys.info
Hình 3: chạy file BAT để thu thập thông tin
Nó tìm kiếm toàn bộ hệ thống với các phần mở rộng file sau: .doc, .docx, .ppt, .pptx, .xls, .xlsx, .pdf
Nó mã hóa các tài liệu được đề cập một cách nhanh chóng qua RC4, sau đó sao chép chúng vào thư mục cụ thể trong usb: “<usb volume>\RECYCLE.BIN\<plugX clsid>”.
Khóa RC4 được mã hóa cứng (hardcode) trong payload binary.
Từ dữ liệu của mình, nhóm nghiên cứu đã tìm thấy một cách đánh cắp tài liệu khác, đó là lợi dụng RAR để tìm kiếm các file tài liệu và nén chúng cục bộ để gửi đến máy chủ CNC.
Dòng lệnh như sau:
Rar.exe a -r -ed -m3 -dh -tk -hp<password> -v100m -ta<file modified date after> -n*.doc* -n*.xls* -n*.pdf <compressed file path> <searching directory>
Như có thể thấy, kẻ tấn công đang tìm một ngày cụ thể để nén các phần mở rộng .xls* và .pdf. Họ cũng sử dụng một mật khẩu để mã hóa dữ liệu và tiêu đề file.
Cấu hình
Cấu hình có thể được mã hóa hoặc là bản rõ trong binary. Nếu dữ liệu cấu hình bắt đầu bằng “XXXXXXXX”, điều đó có nghĩa là cấu hình không được mã hóa.
Nếu cấu hình được mã hóa, dữ liệu cấu hình sẽ được giải mã qua XORring với hardcoded key bên trong binary. Trong các payload khác được tìm thấy, key là “123456789”.
Hình 4: Kiểm tra dữ liệu cấu hình trước khi giải mã
Hình 5: hardcoded key để giải mã cấu hình
Hình 6: quy trình giải mã cấu hình
Bên trong cấu hình, có thông tin về tên thư mục cho mô-đun PlugX, tên mutex, địa chỉ IP và miền C&C, số cổng.
Nhóm nghiên cứu đã tìm thấy 17 mẫu dữ liệu cấu hình. Dưới đây là thông tin trích xuất được:
C&C domains
www.apple-net.com
www.mmfhlele.com
www.olk4.com
update.olk4.com
infosecvn.com
aridndvn.ccom
www.freesmadav.com
update.freesmadav.com
www.lameers.com
Địa chỉ IP C&C
154.223.150.105
43.251.182.114
185.239.226.61
167.88.180.132
45.251.240.55
Folder Name
ESET Malware ProtectionrYF
ESET Malware ProtectionWgM
ESET Malware ProtectionTCp
ESET Malware ProtectionOWT
ESET Malware Protectionmld
Microsoft Malware ProtectionGCg
Microsoft Malware Protectionfpx
Microsoft Malware ProtectionwSA
Microsoft Malware ProtectionpiW
Microsoft Malware ProtectionSaG
Microsoft Malware ProtectionDQA
Microsoft Malware ProtectioncdB
Microsoft Malware ProtectionNSP
Microsoft Malware ProtectionGHQ
Adobe Update HelpereQU
Adobe Update HelperzGI
Adobe Update HelperatX
Mutex name
VVubPDixKeBURoQIIyfb
ypFRoazKbRHpMwnXoLtW
XUzeONpJmKCaBUtvnRGB
NNOFQoZIxAphdklhtaWw
GRNtLeLPnuJGPsTxTilb
C&C Communication
Biến thể PlugX sử dụng một cách mới để giao tiếp với máy chủ C&C nhưng nó cũng hỗ trợ cơ chế giao tiếp cũ. Vì vậy, khi khởi tạo kết nối và nhận được phiên bản C&C, nó có thể quyết định cách giao tiếp.
Các lệnh CNC trong biến thể PlugX này tương tự như các phiên bản khác với một số khác biệt nhỏ.
Nó có 2 nhóm lệnh khác nhau: group IDs 0x1001 và 0x1002. Sau khi nhận được group ID C&C, nó sẽ quyết định cách phản hồi các lệnh.
Cơ chế giao tiếp cũ
Nó sử dụng yêu cầu HTTP post để bắt đầu giao tiếp. URL mà nó sử dụng để gửi yêu cầu đến máy chủ là “/update?wd=<random 8 digit number>”
Nó sử dụng hardcoded user-agent dưới đây:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1;
Nó thêm các tham số sau vào HTTP request header:
x-debug
x-request
x-content
x-storage
Cơ chế giao tiếp mới
PlugX gửi một ID ngẫu nhiên được mã hóa để khởi tạo kết nối qua raw TCP và sau đó nhận phản hồi từ máy chủ.
16 byte đầu tiên là header:
- 4 byte đầu tiên là khóa mã hóa.
- 4 byte thứ hai là mã lệnh CNC (bit thứ 29 cho biết dữ liệu có được nén hay không và bit thứ 30 cho biết dữ liệu đã được mã hóa hay chưa).
- 2 byte tiếp theo hiển thị kích thước của dữ liệu
- Header cũng được mã hóa với DWORD đầu tiên do máy chủ gửi.
Hình 7: cấu trúc C&C communication header
Thuật toán mã hóa được sử dụng để giao tiếp là XOR nhưng thêm một hardcoded value vào khóa cho mỗi vòng mã hóa. Hardcoded value cho binary được tìm thấy là “6666”.
Hình 8: quy trình giải mã cho dữ liệu truyền thông
IoCs
c90cae0a4365cb31f171b051520f6c8053dd0c3e798c59b2ae418bf99ddad02c
14f9278f3515fae71ccb8073cfaf73bdcc00eab3888d8cee6fb43a4f51c9e699
6fc8c2e28dfa39b20154ecb3339eb784a025ea1a7c79e15e0930f679280bb63e
f331eb3d7f6789e48f2e3bfb1a87595561722f45aaec150df537488587024096
b9f3cf9d63d2e3ce1821f2e3eb5acd6e374ea801f9c212eebfa734bd649bec7a
8be6c10e9e150d01601f77485444e409667ba905100982f57743e01d20a26121
6b23a388ddb3b697004fdd37a0d393455ae5702040c2b694f9158112698c2ec1
6924581b5fee4699a1ce0182cdf8462d5fcb5389985ec129d554dd6ca45d0c9f
MITRE ATT&CK Technique Mapping
Tactic | Techniques |
Initial Access | • T1091 | Replication Through Removable Media |
Persistence | • T1574.001 | DLL Search Order Hijacking |
Privilege Escalation | • T1547.001| Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder |
Exfiltration | · T1052.001 | Exfiltration Over Physical Medium: Exfiltration over USB |
Command and Control | • T1001.001 | Data Obfuscation: Junk Data |
Bảng 5. Chiến thuật và kỹ thuật của chiến dịch khi ánh xạ với MITRE ATT&CK Matric
2.2. Chiến dịch phát tán email giả mạo chỉ thị của Thủ tướng Việt Nam về đợt bùng phát virus corona
Lợi dụng tình hình diễn biến phức tạp của dịch COVID-19, nhiều nhóm tin tặc đã và đang âm thầm thực hiện các chiến dịch APT nhắm vào các cá nhân và tổ chức nhằm trục lợi. Tại Việt Nam cũng không ngoại lệ. Vào tháng 3/2020, VinCSS đã ghi nhận mẫu mã độc (nghi ngờ từ nhóm Mustang Panda) giả mạo chị thị của thủ tướng Nguyễn Xuân Phúc về phòng tránh dịch COVID-19.
Thông tin về sample
File name: Chi Thi cua thu tuong nguyen xuan phuc.rar
File Hash (SHA-256): bbbeb1a937274825b0434414fa2d9ec629ba846b1e3e33a59c613b54d375e4d2
File Size: 172 KB
File type: RAR
File Timestamps: 2020:03:03 14:46:12
Archived File Name: Chi Thi cua thu tuong nguyen xuan phuc\Chi Thi cua thu tuong nguyen xuan phuc.lnk
Hình 9: Nội dung của tài liệu xuất hiện khi mã độc thực thi
Phân tích mã độc
Phân tích hành vi của mã độc
Theo thông tin ở trên, mã độc gửi kèm email phishing là một file nén. Trong file nén này chứa một file Chi Thi cua thu tuong nguyen xuan phuc.lnk có kích thước 712 KB:
Hình 10: Nội dung trong file nén
File .lnk đơn giản là một shorcut được Windows sử dụng làm tham chiếu đến file gốc. Các file này thường sử dụng cùng một biểu tượng với file gốc, nhưng thêm một mũi tên cuộn tròn nhỏ để cho biết nó trỏ đến một vị trí khác. Khi người dùng vô tình mở file .lnk trong file nén trên, hành vi của mã độc sẽ diễn ra theo trình tự:
– Khởi chạy cmd.exe, mục đích để gọi mshta.exe với tham số truyền vào là file .lnk đã được giải nén tạm ở thư mục %Temp%
– mshta.exe có nhiệm vụ phân tích file, tìm kiếm và thực thi script được nhúng trong file. Từ đây, thực hiện các hành động sau:
+ Tạo các file 3.exe, http_dll.dll, http_dll.dat, Chi Thi cua thu tuong nguyen xuan phuc.doc trong thư mục %LocalAppData%\Temp.
+ Khởi chạy 3.exe, tiến trình này sẽ tạo các file unsecapp.exe, http_dll.dll, http_dll.dat trong thư mục %AllUsersProfile%\Microsoft Malware Protectionydy.
+ Thiết lập run key Microsoft Malware Protectionydy trong Registry (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run & HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Microsoft Malware Protectionydy) trỏ tới file unsecapp.exe đã tạo ở trên.
+ Gọi WINWORD.EXE để mở tài liệu %Temp%\Chi Thi cua thu tuong nguyen xuan phuc.doc với nội dung như ở Hình 1 nhằm đánh lừa người dùng.
+ Tiến trình unsecapp.exe sau khi thực thi sẽ kết nối tới C2 là vietnam[.]zing[.]photos. Hai file 3.exe và unsecapp.exe thực chất là cùng là một file và có Certificate nhằm qua mặt các phần mềm Antivirus.
Phân tích chi tiết file lnk và VBScript
Như mô tả ở phần trên, khi người dùng mở file Chi Thi cua thu tuong nguyen xuan phuc.lnk trong Chi Thi cua thu tuong nguyen xuan phuc.rar, mshta.exe sẽ được gọi để thực thi script. Như vậy, nội dung của script này phải được nhúng sẵn trong file .lnk. Sử dụng 010 Editor để mở file .lnk và tìm kiếm chuỗi <script, kết quả có được thông tin về đoạn VBScript được nhúng trong file:
Trích xuất toàn bộ nội dung của script. Nội dung của script như sau:
Hình 11: Nội dung của script nhúng trong file
– Khai báo các biến CAwyFTsgCQ, yilJSYTMMh, TPDgWjZcyJ và gán lần lượt nội dung của 3.exe, http_dll.dll, http_dll.dat cho từng biến:
+ Tạo lập đường dẫn cho các files và gọi hàm vSWGUThohAGJ để tạo files:
+ Thực thi file 3.exe đã tạo, tạo tài liệu Chi Thi cua thu tuong nguyen xuan phuc.doc và mở tài liệu này để đánh lừa người dùng.
Phân tích chi tiết các payload
Phân tích unsecapp.exe
Như đã đề cập ở trên, mã độc sau khi thực thi thành công sẽ thiết lập run key Microsoft Malware Protectionydy trong Registry (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) trỏ tới file unsecapp.exe. File này bản chất là EHttpSrv.exe (ESET HTTP Server Service) thuộc sản phẩm Eset Smart Security của hãng ESET. Kẻ tấn công đã lợi dụng file này để thực hiện kĩ thuật DLL side-loading nhằm tải và thực thi mã độc nằm trong thư viện http_dll.dll.
Phân tích http_dll.dl
http_dll.dll sau khi được nạp sẽ thực thi code tại DllMain, tại đây mã độc gọi hàm thực hiện công việc sau:
– Lấy địa chỉ thuộc unsecapp.exe tính từ base address + 0x157A.
– Gọi hàm VirtualProtect để thay đổi 16 bytes từ địa chí tính toán ở trên thành PAGE_EXECUTE_READWRITE.
– Patch code tại địa chỉ đó thông qua kĩ thuật push – ret để nhảy tới hàm thực hiện nhiệm vụ giải mã mà thực thi Shellcode.
– Tại hàm DecryptShellCodeAndExcecute (0x10001230), mã độc tiếp tục thực hiện.
– Cấu thành đường dẫn tới http_dll.dat, file này chứa payload đã bị mã hóa.
– Gọi hàm FileReadAll (0x10001030), đọc toàn bộ nội dung của http_dll.dat vào vùng nhớ đã cấp phát
-Trích xuất key giải mã (10 bytes đầu của http_dll.dat), cấp phát vùng nhớ và copy toàn bộ dữ liệu của http_dll.dat vào vùng nhớ đã được cấp phát. Gọi hàm XorDecrypt (0x100014B0) để giải mã payload mới trên bộ nhớ
– Cuối cùng gọi hàm VirtualProtect để thay đổi vùng nhớ của payload mới thành PAGE_EXECUTE_READWRITE và gọi thẳng tới payload này để thực thi. Payload cuối cùng này sẽ làm nhiệm vụ giải mã cấu hình có thông tin về thư mục “Microsoft Malware Protectionydy” dùng để lưu các payload, thông tin về C2 như đã đề cập ở trên và thực hiện nhiệm vụ kết nối tới C2.
Bằng thông tin phân tích được ở trên, có thể giải mã và thu được payload mới mà không cần debug Payload có được là một dll (HT.dll)
IOCs
Dropped file:
%LocalAppData%\Temp
- 3.exe [SHA256: c3159d4f85ceb84c4a0f7ea9208928e729a30ddda4fead7ec6257c7dd1984763]
- http_dll.dll [SHA256: 79375c0c05243354f8ba2735bcd086dc8b53af709d87da02f9206685095bb035]
- http_dll.dat [SHA256: b62d35d8edae874a994fff12ec085a0bf879c66b3c97fd13fe0a335b497342e5]
- Chi Thi cua thu tuong nguyen xuan phuc.doc [SHA256: e3556d6ba5e705b85599b70422928165c8d4130074029a8dcd04a33f4d1aa858]
%AllUsersProfile%\Microsoft Malware Protectionydy
- unsecapp.exe
- http_dll.dll [SHA256: 79375c0c05243354f8ba2735bcd086dc8b53af709d87da02f9206685095bb035]
- http_dll.dat [SHA256: b62d35d8edae874a994fff12ec085a0bf879c66b3c97fd13fe0a335b497342e5]
Persistence Registry:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Microsoft Malware Protectionydy = C:\ProgramData\Microsoft Malware Protectionydy\unsecapp.exe”
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Microsoft Malware Protectionydy = C:\ProgramData\Microsoft Malware Protectionydy\unsecapp.exe”
C2:
Domain: vietnam[.]zing[.]photos
IP: 104.160.44.85
MITRE ATT&CK Technique Mapping
Tactic | Techniques |
Initial Access | • T1566 | Phishing |
Execution | • T1204.002 | User Execution: Malicious File |
Persistence | • T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder
• T1574.001 | Hijack Execution Flow: DLL Search Order Hijacking |
Bảng 6. Chiến thuật và kỹ thuật của chiến dịch khi ánh xạ với MITRE ATT&CK Matric
2.3. Chiến dịch lợi dụng dịch Covid-19 nhắm mục tiêu vào Đài Loan
Các tác nhân đe dọa đang lợi dụng sự lây lan của Covid-19 để thực hiện các hành vi độc hại. Theo Anomali Threat Research (ATR), Mustang Panda đang sử dụng các chiêu trò lợi dụng Covid-19 trong chiến dịch của mình.
Thông tin từ các nguồn công khai cho thấy các tác nhân sử dụng COVID-19 như một phần của các chiến dịch lừa đảo, cả trong chủ đề email và nội dung cũng như file đính kèm. Các chiến dịch theo chủ đề này bắt đầu gần như ngay lập tức sau khi 41 trường hợp nhiễm COVID-19 được Tổ chức Y tế Thế giới báo cáo vào ngày 31 tháng 12 năm 2019. Đến tháng 1 và tháng 2 năm 2020, mồi nhử theo chủ đề Coronavirus đã phổ biến rộng rãi với sự hỗ trợ của mạng botnet Emotet. Mã độc được sử dụng trong các chiến dịch này có thể khác nhau.
Hoạt động APT
ATR đã quan sát thấy một chiến dịch bắt đầu từ cuối tháng Hai đến giữa tháng Ba năm 2020, mà được tin rằng đang được thực hiện bởi nhóm Mustang Panda. Nhóm này đang sử dụng các tài liệu mồi nhử liên quan đến COVID-19 để nhắm vào Đài Loan. Mustang Panda đang tiếp tục sử dụng Cobalt Strike và PlugX RAT làm final payload của họ. Hoạt động này phù hợp với các TTP của Mustang Panda đã được ATR xác định trước đó.
Tài liệu giả mạo
Tiêu đề tài liệu – 02-21-1.docx
Hash – 6d994c64c17ce50cbb333c8b4bcbd8e0
Hình 12: Thảo luận trên Facebook của Chen Chien-jen
File tài liệu trên mô tả một bài đăng trên Facebook được viết bởi Chen Chien-jen, Phó Chủ tịch đương nhiệm của Trung Hoa Dân Quốc và cựu Phó Chủ tịch của cơ quan nghiên cứu Đài Loan, Academia Sinica. Bài đăng thảo luận về quá trình lây lan cộng đồng [của Coronavirus] và danh sách của Trung tâm Kiểm soát Dịch bệnh (CDC) Hoa Kỳ về các quốc gia bị lây nhiễm, cụ thể là Đài Loan. Bộ Ngoại giao Đài Loan sau đó đã yêu cầu ra khỏi danh sách nói trên.
Tiêu đề tài liệu – 03-01-1.docx
Hash – 7f0a1bdde14ea1f3085b43bdadcfb146
Hình 13: Câu hỏi về Covid-19
Hình 13 chứa văn bản được dịch sang tiếng Anh, có thể là từ tiếng Trung do Mustang Panda thực hiện, vì các lỗi chính tả và ngữ pháp mà người bản ngữ không gặp phải. Văn bản đặt ra câu hỏi về việc vô hiệu hóa COVID-19 với các mức độ phức tạp khác nhau.
Phân tích kỹ thuật
Hai file RAR (file nén) được đề cập ở trên, mỗi file chứa một file Windows Shortcut (.lnk). Các file .lnk đang được Mustang Panda sử dụng thường chứa file HTA được nhúng với VBscript, sau khi được thực thi, sẽ drop và mở tài liệu mồi nhử trong khi chạy hoạt động độc hại của payload trong nền. ATR quan sát thấy PlugX và Cobalt Strike được phân phối như những payload chính trong suốt chiến dịch.
File .lnk
FileMD5 | LinkModifiedDate | FileSize | NameString | CommandLineArgs | NetBios Name | MAC Address |
FC00964131A8C9407
BA77484E724FC9D |
7/14/2009 1:14 | 301568 | 02-21-1.lnk | /c f%windir:~-3,1%%PUBLIC:~-9,1% %x in (%temp%=%cd%) do f%windir:~-3,1%%PUBLIC:~-9,1% /f delims==” %i in (‘dir “%x-21-1.lnk” /s /b’) do start %TEMP:~-2 | win-67od36i8f4c | 00:0C:29:50:2D:E6 |
0F794D6C6646A2605
58E9D638AE060C9 |
7/14/2009 1:14 | 301568 | 03-01-1.lnk | /c f%windir:~-3,1%%PUBLIC:~-9,1% %x in (%temp%=%cd%) do f%windir:~-3,1%%PUBLIC:~-9,1% /f delims==” %i in (‘dir “%x-01-1.lnk” /s /b’) do start %TEMP:~-2 | cia-at28–planc | 00:0C:29:50:2D:E6 |
Bảng 7. lnk file metadata
Phân tích Payload
Mustang Panda đã sử dụng Cobalt Strike làm final payload cho các mẫu 02-21-1.lnk và 03-01-1.lnk. Nhóm đã sử dụng tính năng Command and Control (C2) trong Cobalt Strike để che giấu lưu lượng độc hại sau yêu cầu DNS hợp pháp tới code.jquery.com. Các mẫu được đề cập ở trên sử dụng 123.51.185.75 làm final C2.
Hai thay đổi đáng chú ý từ các chiến dịch trước của Mustang Panda được ATR xác định là:
- Thay đổi trong thư mục C:UsersPublicMusic nơi payload được drop.
- Sử dụng tencentsoso.exe thực thi hợp pháp cho DLL side loading.
ATR quy hoạt động này cho Mustang Panda dựa trên TTP, các quốc gia được nhắm mục tiêu và việc sử dụng các họ mã độc mà trước đây tất cả đều được quy cho nhóm.
MITRE ATT&CK Technique Mapping
Tactic | Techniques |
Initial Access | • T1566 | Phishing |
Execution | • T1204.002 | User Execution: Malicious File |
Bảng 8. Chiến thuật và kỹ thuật của chiến dịch khi ánh xạ với MITRE ATT&CK Matric
2.4. Chiến dịch Dll-Sideloading trojan với máy chủ C2 tạm thời
Vào tháng 5/2020, nhóm nghiên cứu của Lab52 đã phát hiện một mẫu mã độc, sử dụng kỹ thuật Dll-Sideloading với một file binary hợp pháp, để tải một threat.
Sample cụ thể này có một DLL rất nhỏ sẽ tải một file được mã hóa, file này sau khi được giải mã chứa một mẫu của PlugX Trojan.
Sample được đề cập được tải xuống từ liên kết sau “http://miandfish.]store/player/install_flash_player.exe” và được lưu trữ dưới tên có hàm băm “c56ac01b3af452fedc0447d9e0fe184d093d3fd3c6631aa8182de570c7531aa ” (ở thời điểm phát hiện).
Binary bao gồm một installer, nằm trong thư mục “C:\ProgramData\AAM Updatesnnk”, file binary hợp pháp dễ bị tấn công bởi dll-sideloading, file dll nhỏ hoạt động như loader cho final threat và file binary chứa sample PlugX được mã hóa.
Hình 14. Cấu trúc của binary
Sau khi triển khai ba file này, installer chạy file binary hợp pháp, khiến final PlugX threat được tải.
Hình 15. Final PlugX threat được tải
Trong trường hợp này, file binary dễ bị tấn công hợp pháp là một phần của Adobe’s Swite, sẽ tải bất kỳ thư viện nào có tên “hex.dll” bên cạnh file thực thi.
Thư viện Hex.dll đó, trong trường hợp này là một loader rất đơn giản và tương đối nhỏ.
Hình 16. Thư viện Hex.dll
Nó có 4 export trả về 0 mà không làm gì cả, mặt khác, hàm Main của thư viện gọi một hàm kiểm tra sự tồn tại của file .dat được mã hóa cứng (hardcode, trong trường hợp này là adobeupdate.dat), tải nó, trích xuất chuỗi đầu tiên của file binary và sử dụng nó làm khóa XOR để giải mã phần còn lại của file, bao gồm final threat.
Khi giải mã xong, nó sẽ tải mã độc vào bộ nhớ, tạo ra một “Memprotect” để nó có thể thực thi và khởi chạy logic từ byte 0 của binary.
Đây là một PE chức năng, vì vậy sẽ không hoạt động vì nó bắt đầu bằng tiêu đề “MZ” của một file binary thông thường.
Hình 17. PE chức năng bắt đầu bằng tiêu đề MZ
Nhưng trong trường hợp này, kẻ tấn công sử dụng một kỹ thuật đã được thấy trước đây trong các công cụ như Cobalt Strike Beacon mà bằng cách sửa đổi một số byte của tiêu đề MZ, nó sẽ trở thành mã thực thi có ý nghĩa.
Nếu chúng ta mở file binary dưới dạng mã shell (giải mã từ byte 0), chúng ta sẽ thấy cách chúng đã sửa đổi các byte đầu tiên thành một quy trình chuyển đến vùng mã, bao gồm PE loader
Hình 18. Các byte đầu tiên của file binary bị sửa đổi
Sau khi tải IAT và để mọi thứ hoạt động như một file thực thi bình thường, threat này sẽ giải mã cấu hình riêng của nó, được mã hóa bằng XOR trong phần .data của file binary. Lần này, khóa giải mã được mã hóa cứng (hardcode) trong hệ binary và là chuỗi “123456789”.
Sau khi giải mã cấu hình, nó chứa thư mục nơi mã binary phải được cài đặt, một khóa XOR sẽ sử dụng để mã hóa traffic của nó và một danh sách chứa tối đa 4 miền hoặc địa chỉ IP của các máy chủ C&C cùng với cổng sẽ được sử dụng. Nói chung 4 phần tử C2 bao gồm cùng một miền được lặp lại 4 lần hoặc 2 miền lặp lại hai lần mỗi miền.
Sau khi phân tích, cả loader ở định dạng DLL và final encrypted threat (sau khi giải mã) được so sánh với các mẫu chiến dịch khác nhau của các nhóm được biết là sử dụng kỹ thuật dll sideload này. Nó có thể xác định được loader và final threat trùng khớp tỷ lệ cao với các mẫu của nhóm “Mustang Panda” được phân tích trong các báo cáo trước đó. Trên thực tế, loader của chiến dịch này có thể tải và chạy các mẫu của các chiến dịch được phân tích trong các báo cáo trước đó và final threat sử dụng cùng một khóa XOR để giải mã cấu hình của nó giống như các mẫu trong các báo cáo trước đó. Do đó, xác suất rất cao rằng đây là một chiến dịch từ Mustang Panda.
Mẫu cụ thể này có các miền “www.destroy2013.com” và “www.fitehook.com” làm máy chủ c2 và nhóm nghiên cứu thấy rằng chúng có một hành vi rất đặc trưng, vì hầu hết thời gian trong ngày phân giải thành 127.0.0.1, nhưng từ 1-3 giờ sáng (UTC) đến 8-9 giờ sáng (UTC), nó phân giải thành IP “107.150.112.250, ngoại trừ những ngày cuối tuần, nó phân giải liên tục thành 127.0.0.1, điều này có thể chỉ ra chiến dịch tập trung vào các múi giờ làm việc.
IoCs
IP: 81.16.28.30
IP: 107.150.112.250
DOMAIN: www.destroy2013.]com
DOMAIN: www.fitehook.]com
DOMAIN: miandfish.]store
SHA256: c56ac01b3af452fedc0447d9e0fe184d093d3fd3c6631aa8182c752463de570c
SHA256: 9c0f6f54e5ab9a86955f1a4beffd6f57c553e34b548a9d93f4207e6a7a6c8135
MITRE ATT&CK Technique Mapping
Tactic | Techniques |
Persistence | • T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder |
Bảng 9. Chiến thuật và kỹ thuật của chiến dịch khi ánh xạ với MITRE ATT&CK Matric
2.5. Chiến dịch tấn công Vatican và các nhóm ngoại giao mục tiêu sử dụng biến thể Golang mới của loader PlugX
Sau kỳ nghỉ lễ Quốc khánh Trung Quốc vào tháng 9/2020, các nhà nghiên cứu Proofpoint đã quan sát thấy nhóm Mustang Panda tiếp tục hoạt động, nhắm mục tiêu các tổ chức có liên quan đến quan hệ ngoại giao giữa Đảng Cộng sản Trung Quốc và Vatican, cũng như các cơ quan ở Myanmar. Ngoài ra, nhóm nghiên cứu cũng quan sát thấy mục tiêu là các cơ quan ngoại giao ở châu Phi. Proofpoint đã xác định được các cập nhật với bộ công cụ được sử dụng để phân phối payload mã độc PlugX. Cụ thể, họ đã xác định được một biến thể Golang mới của loader PlugX và xác định việc sử dụng mã độc PlugX nhất quán trong các chiến dịch nhắm mục tiêu. Những thay đổi cơ bản đối với payload khiến việc phát hiện và thực thi tự động các thành phần mã độc trong chuỗi lây nhiễm trở nên khó khăn hơn đối với các nhà nghiên cứu.
Tiếp tục hoạt động Phishing
Sau một thời gian dài không hoạt động, Proofpoint xác định được bằng chứng về việc tiếp tục hoạt động phishing của Mustang Panda. Nhóm này tiếp tục sử dụng các chiêu trò social engineering liên quan đến thỏa thuận tạm thời được gia hạn gần đây giữa Tòa thánh Vatican và Đảng Cộng sản Trung Quốc. Ngoài ra, tiêu đề email giả mạo đã được quan sát có vẻ bắt chước các nhà báo từ Union of Catholic Asia News. Sự kết hợp của nội dung social engineering theo chủ đề này cho thấy sự tập trung liên tục vào các vấn đề liên quan đến mối quan hệ đang phát triển giữa Vatican và ĐCSTQ.
Phân tích mã độc PlugX
Các nhà nghiên cứu Proofpoint đã xác định được hai kho lưu trữ RAR đóng vai trò là PlugX malware dropper. Một trong những file này được tìm thấy là kho lưu trữ RAR tự giải nén. Mặc dù không thể xác định được vectơ phân phối ban đầu (initial delivery vector) của các kho lưu trữ RAR này. Tuy nhiên, như đã quan sát trước đây, Mustang Panda sử dụng các URL Google Drive và Dropbox trong các email lừa đảo cung cấp các bản lưu trữ chứa mã độc PlugX và các thành phần liên quan. Khi kho lưu trữ RAR được giải nén, bốn file được cài đặt trên máy chủ lưu trữ và file Adobelm.exe có thể thực thi tự động được thực thi. Các file đã cài đặt bao gồm:
- Adobelm.exe|0459e62c5444896d5be404c559c834ba455fa5cae1689c70fc8c61bc15468681
Một file thực thi Adobe hợp pháp được sử dụng trong DLL Side-Loading của Hex.dll.
- Adobehelp.exe|e3e3c28f7a96906e6c30f56e8e6b013e42b5113967d6fb054c32885501dfd1b7
Một file binary không sử dụng đã được quan sát trước đây trong các kho lưu trữ RAR độc hại được liên kết với Mustang Panda.
- hex.dll|235752f22f1a21e18e0833fc26e1cdb4834a56ee53ec7acb8a402129329c0cdd
Một file binary Golang giải mã và tải adobeupdate.dat (payload PlugX).
- adobeupdate.dat|afa06df5a2c33dc0bdf80bbe09dade421b3e8b5990a56246e0d7053d5668d91
Payload mã độc PlugX được mã hóa.
Hình 19. Sơ đồ thực thi mã độc PlugX
Sau khi trích xuất RAR, một PE hợp pháp được sử dụng cho DLL side-loading của hex.dll là Adobelm.exe được thực thi. Nó gọi một hàm xuất PE của hex.dll có tên CEFProcessForkHandlerEx. Trước đây, các chiến dịch Mustang Panda đã sử dụng tên file hex.dll và cùng một tên xuất PE để DLL side-loading cho Microsoft Windows PE DLL. Các file này đóng vai trò là loader và giải mã cho các payload mã độc PlugX được mã hóa. File sẽ đọc, tải, giải mã và thực thi payload mã độc PlugX (thường được đặt tên là adobeupdate.dat, như trong trường hợp này).
Loader mã độc PlugX được tìm thấy trong trường hợp này được xác định là file binary Golang. Proofpoint trước đây đã không quan sát thấy loại file này được Mustang Panda sử dụng. Cả hai kho lưu trữ RAR được xác định đều bị phát hiện drop ra cùng một file mã độc PlugX được mã hóa và các mẫu loader Golang. Mặc dù loại file của loader PlugX thay đổi, phần lớn chức năng vẫn giống nhau. Nó đọc file adobeupdate.dat, truy xuất khóa XOR bắt đầu tại offset x00 và tiếp tục cho đến khi đọc một byte rỗng. Sau đó, nó giải mã payload và cuối cùng thực thi adobeupdate.dat đã được giải mã. Điều này dẫn đến việc thực thi payload mã độc PlugX mà cuối cùng sẽ gọi đến C&C IP 45.248.87[.] 162. Registry key sau cũng được tạo trong quá trình này, nó chạy khi bắt đầu thiết lập duy trì mã độc. Đáng chú ý là mẫu sử dụng thư mục cài đặt file riêng biệt “AdobelmdyU”.
Registry Key | Data |
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\
Microsoft\Windows\CurrentVersion\Run\AdobelmdyU |
“C:\ProgramData\Adobe\AdobelmdyU\Adobelm.exe” 402 |
Hình 20: Registry key PlugX được thiết lập để duy trì mã độc.
Cơ sở hạ tầng C&C
C&C communication được quan sát bởi các mẫu mã độc PlugX này nhất quán với các phiên bản đã được ghi nhận trước đó. Dưới đây là các IP và URL C&C communication đã được xác định:
45.248.87[.]162
hxxp://45.248.87[.]162/756d1598
hxxp://45.248.87[.]162/9f86852b
Nghiên cứu sâu hơn về IP C&C đã chỉ ra rằng nó được lưu trữ bởi Nhà cung cấp dịch vụ Internet Trung Quốc Anchnet Asia Limited. Nó dường như đang hoạt động và được sử dụng như một máy chủ C&C ít nhất từ ngày 24 tháng 8 năm 2020 đến ngày 28 tháng 9 năm 2020. Đáng chú ý là khoảng thời gian này trước thời gian không hoạt động của Mustang Panda. Ngoài ra, máy chủ được ngừng sử dụng trong thời gian này có thể cho thấy một cuộc đại tu cơ sở hạ tầng của các tác nhân.
Hoạt động liên tục của Mustang Panda cho thấy đây là một kẻ thù dai dẳng đang thực hiện những thay đổi đáng kể đối với các bộ công cụ trước đây để duy trì hiệu quả của các chiến dịch gián điệp. Việc triển khai loader Golang PlugX cùng với các nỗ lực mã hóa đối với payload PlugX cho thấy nhóm đang hướng đến việc tăng khả năng phát hiện cho các công cụ và sự thích ứng với các chiến dịch. Những điều chỉnh công cụ này kết hợp với nâng cấp cơ sở hạ tầng C&C cho thấy Mustang Panda sẽ tiếp tục nhắm mục tiêu vào các tổ chức ngoại giao và tôn giáo. Mặc dù các công cụ và thủ thuật đã được nâng cấp, nhưng có vẻ động lực và các lĩnh vực mục tiêu vẫn không thay đổi.
IOCs
IOC | IOC Type | Description |
930b7a798e3279b7460e30ce2f3a2deccbc252f
3ca213cb022f5b7e6a25a0867 |
SHA256 | AdobelmdyU.exe RAR Archive Containing PlugX |
6a5b0cfdaf402e94f892f66a0f53e347d427be41
05ab22c1a9f259238c272b60 |
SHA256 | Adobel.exeSelf Extracting RAR Archive Containing PlugX |
0459e62c5444896d5be404c559c834ba455fa5c
ae1689c70fc8c61bc15468681 |
SHA256 | Adobelm.exeLegitimate PE that loads Golang PlugX Loader |
235752f22f1a21e18e0833fc26e1cdb4834a56ee
53ec7acb8a402129329c0cdd |
SHA256 | hex.dll Golang binary PlugX Loader |
e3e3c28f7a96906e6c30f56e8e6b013e42b51139
67d6fb054c32885501dfd1b7 |
SHA256 | AdobeHelp.exeUnused PE File |
afa06df5a2c33dc0bdf80bbe09dade421b3e8b59
90a56246e0d7053d5668d917 |
SHA256 | adobeupdate.dat Encrypted PlugX Payload |
45.248.87[.]162 | C2 IP | Command and control IP |
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432
Node\Microsoft\Windows\CurrentVersion\Run\ AdobelmdyU |
RegKey | Registry Key that establishes PlugX malware persistence. |
Bảng 10: Danh sách IOC
MITRE ATT&CK Technique Mapping
Tactic | Techniques |
Initial Access | • T1566 | Phishing |
Persistence | • T1574.001 | Hijack Execution Flow: DLL Search Order Hijacking |
Bảng 11. Chiến thuật và kỹ thuật của chiến dịch khi ánh xạ với MITRE ATT&CK Matric
2.6. Chiến dịch tấn công các hãng viễn thông nhằm đánh cắp bí mật 5G
Vào tháng 3/2021, các chuyên gia bảo mật của McAfee đã thông tin về chiến dịch gián điệp mạng đang diễn ra nhằm vào doanh nghiệp viễn thông toàn cầu.
Chiến dịch sử dụng mã độc để đánh cắp dữ liệu nhạy cảm – bao gồm bí mật 5G – từ các nạn nhân. Theo các chuyên gia của McAfee, đối tượng của vụ tấn công là các nhà mạng Đông Nam Á, châu Âu và Mỹ. Họ đặt tên cho chiến dịch là Operation Diànxùn.
McAfee nghi ngờ đây là tác phẩm của nhóm tin tặc Mustang Panda hay RedDelta, có lịch sử tấn công và gián điệp nhằm vào nhiều tổ chức trên thế giới. Ít nhất 23 nhà cung cấp dịch vụ viễn thông là mục tiêu trong chiến dịch từ tháng 8/2020. Hãng bảo mật không tiết lộ có bao nhiêu mục tiêu đã bị xâm phạm thành công.
Nạn nhân được chuyển hướng đến tên miền phishing dưới sự kiểm soát của hacker, dùng để gửi mã độc. Theo các nhà nghiên cứu, nó ngụy trang như website tuyển dụng của Huawei (“hxxp:\\update.careerhuawei.net”), rất khó phân biệt với trang chính thức. Huawei không liên quan tới chiến dịch. Khi người dùng truy cập trang web giả, nó gửi ứng dụng Flash độc hại để cài backdoor Cobalt Strike lên máy tính, cho phép hacker đột nhập, thu thập và đánh cắp thông tin nhạy cảm.
Sơ đồ dưới đây thể hiện tổng quan quy trình lây nhiễm:
Hình 21. Sơ đồ thể hiện quy trình lây nhiễm.
Giai đoạn 1: Giả mạo ứng dụng Flash
Giai đoạn đầu tiên là giả mạo ứng dụng Flash. Một trang lừa đảo đã được tạo bằng cách sử dụng giao diện giống hệt như trang web gốc.
Hình 22. Trang web hợp pháp: Flash.cn
Hình 23. Trang web độc hại: Flach.cn
Mẫu được phát hiện:
File type: PE32+ executable (GUI) x86-64, for MS Windows
File name: flashplayer_install_cn.exe
File size: 920576B
Compile time: 2020-08-17 13:17:10
Import Hash: 5f7ca61a772049e7c494c6c74d69484c
Hash SHA256: 9ccb4ed133be5c9c554027347ad8b722f0b4c3f14bfd947edfe75a015bf085e5
Mẫu này hoạt động như một trình tải xuống (downloader).
Hình 24. Mẫu được phát hiện giả mạo ứng dụng Flash
Đầu tiên, mẫu sẽ kiểm tra thời gian và định vị địa lý của máy bị nhiễm thông qua một yêu cầu tới http://worldclockapi.com/api/json/est/now.
Hình 25. Mẫu sẽ kiểm tra thời gian và định vị địa lý của máy bị nhiễm
Sau đó, nó đăng ký máy bị nhiễm với một hardcoded token.
Hình 26. Đăng ký máy bị nhiễm với một hardcoded token
Yêu cầu sau thể hiện máy đăng ký đến c2 bằng hardcoded token “zheshiyigetoken23333333333”.
Hình 27. Gửi yêu cầu đến c2
Sau đó, mẫu kiểm tra xem Dotnet framework 2.0 hoặc 4.0 đã được cài đặt chưa và tải xuống giai đoạn thứ hai tương ứng
Hình 28. Kiểm tra Dotnet framework 2.0/ 4.0 đã được cài đặt chưa
Hình 29. Tải xuống giai đoạn thứ hai
Giai đoạn 2: Tiện ích DotNet
Trong giai đoạn hai, được thực thi. Payload này có một số chức năng và hoạt động như một tiện ích để tiếp tục xâm nhập máy tính. Đây là một công cụ quản lý, tải các backdoor về máy và cấu hình persistence
File type: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows
File name: DotNetLoader20.exe
File size: 36352B
Compile time: 2098-06-18 21:19:52
Import Hash: f34d5f2d4577ed6d9ceec516c1f5a744
Hash SHA2: 480a8c883006232361c5812af85de9799b1182f1b52145ccfced4fa21b6daafa
File type: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows
File name: DotNetLoader40.exe
File size: 36352B
Compile time: 2072-02-12 03:42:09
Import Hash: f34d5f2d4577ed6d9ceec516c1f5a744
Hash SHA2: 7ea7c6406c5a80d3c15511c4d97ec1e45813e9c58431f386710d0486c4898b98
Dưới đây là tóm tắt các chức năng của DotNet payload:
■ Nó kiểm tra xem tiến trình 360tray.exe (360 AV) có đang chạy hay không.
■ Nó có thể tải lại giai đoạn đầu tiên từ hxxp://update.flach.cn/download.php?raw=1.
■ Nó tạo một tác vụ theo lịch trình (scheduled task) để chạy cmd.exe /c với payload đã được tải xuống trước và tạo registry key SOFTWARE\\Microsoft\\Windows. NT\\CurrentVersion\\ AppCompatFlags\\TelemetryController\\Levint
■ Nó có thể tải xuống một Cobalt Strike payload base64 được mã hóa và lưu trữ trên một địa chỉ từ xa (remote address). Nếu tùy chọn này được chọn, payload sẽ được sao chép trong thư mục TEMP với tên FlashUpdate.exe.
■ Nó kiểm tra xem tác vụ “WpsUpdataTask_” có xuất hiện hay không và tải xuống một tiện ích bổ sung từ hxxp://159.138.84.217:81/c0c00c0c/AddTaskPlanDllVerson.dll.
■ Nó kiểm tra xem tác vụ “FlashUpdate” có trong hệ thống hay không và nếu không thì có thể tạo ra.
■ Nó có thể thêm một backdoor WMI bằng cách tạo một filter cố định để duy trì persistent trong máy bị nhiễm.
■ Nó có khả năng inject một shellcode vào clipboard bằng kỹ thuật sau: https://search.unprotect.it/technique/clipbrdwndclass/.
DLL trung gian để thêm Scheduled Task
Hiện tại vẫn chưa rõ DLL này được tạo ra với mục đích chính xác nào.
Theo các chuyên gia, mẫu này có khả năng tạo một Scheduled Task, cũng như tiện ích DotNet.
File type: PE32+ executable (DLL) (GUI) x86-64, for MS Windows
File name: AddTaskPlanDllVerson.dll
File size: 23552B
Compile time: 2020-08-14 11:19:44
Import Hash: 0f275d628096389203c13780013332e4
Hash SHA2: 2779937398506e8ad207f5b291ae53d8af82b9f2739b0508ae3e0cfc40ced092
Mẫu chỉ chứa một export có tên là “GO”, được gọi khi thực thi
Hình 30. Export của mẫu
Mục đích chính của công cụ này là kiểm tra xem tệp “flashupdate_exe” có sẵn trong thư mục temp hay không (nghĩa là giai đoạn đầu tiên đã thành công)
Hình 31. Kiểm tra tệp “flashupdate_exe” có sẵn không
Sau đó, nó tạo ra một scheduled task có tên là “WpsUpdataTask_” để chạy mẫu trong máy bị nhiễm.
Hình 32. Tạo scheduled task “WpsUpdataTask_”
Giai đoạn 3: Cobalt Strike Payload
Giai đoạn tiếp theo của cuộc tấn công là một Cobalt Strike beacon payload. Payload này được tải xuống bằng tiện ích DotNet từ địa chỉ “mobile.flach.cn”. Payload là một tệp gzip được mã hóa base64 sau đó giải nén và inject.
Ảnh sau đây được trích xuất từ tiện ích DotNet, hiển thị mã được sử dụng để giải nén và thực thi payload từ xa.
Hình 33. Trích xuất tiện ích DotNet
Cobalt Strike payload có các thông tin sau:
File type: PE32+ executable (DLL) (GUI) x86-64, for MS Windows
File name: beacon.bin
File size: 267264B
Compile time: 2019-05-04 01:01:46
Import Hash: 5d58634383b49de64bde0ee76012a61a
Hash SHA2: 4ae0a22033f03813645a0f9363eb44d8220119c94967b8188cb3c22de33027f0
Phân tích kiến trúc
Sơ đồ dưới đây cho thấy kiến trúc được sử dụng bởi những kẻ tấn công, cũng như kết nối giữa các miền khác nhau
Hình 34. Kiến trúc tổng quan của cuộc tấn công
Bằng cách xem xét cơ sở hạ tầng được sử dụng bởi những kẻ tấn công, chúng ta thấy các IP của các chiến dịch trước đây đã được Mustang Panda sử dụng để drop các phần mềm gián đoạn và Cobalt Strike payload liên quan đến các chiến dịch trước đó.
MITRE ATT&CK Matrix
Tactic | Technique | Observable | IOCs |
Resource Development | Acquire Infrastructure: Domains (T1583.001) | Kẻ tấn công mua tên miền để phát triển cuộc tấn công lừa đảo | “flach.cn” “careerhuawei.net” |
Develop capabilities: Malware (T1587.001) | Kẻ tấn công đã xây dựng các thành phần độc hại để tiến hành cuộc tấn công. | Fake Flash Utility Downloader AddTaskPlanDllVersion.dll |
|
Obtain capabilities: Tool (T1588.002) | Kẻ tấn công có các công cụ red team để tiến hành cuộc tấn công. | Cobalt Strike | |
Initial Access | Spear phishing Link (T1566.002) | ||
Execution | User Execution (T1204.001) | Người dùng được chuyển hướng đến trang web Fake Flash để tải xuống giai đoạn đầu. | |
Persistence | Scheduled Task/Job: Scheduled Task (T1053.005) | Tiện ích DotNet tạo một scheduled task để chạy cmd.exe /c với payload đã được tải xuống trước đó và tạo registry key. | “SOFTWARE\\Microsoft\\Windows NT\\ CurrentVersion\\AppCompatFlags\\ TelemetryController\\Levint” |
Create or Modify System Process: Windows Service (T1543.003) |
Tiện ích DotNet có thể thêm một backdoor WMI bằng cách tạo một filter cố định để duy trì persistent trong máy bị nhiễm. | ||
Defense Evasion | Process Injection (T1055) | Tiện ích DotNet có khả năng inject shellcode vào clipboard. | |
Command And Control | Application Layer Protocol: Web Protocols (T1071.001) |
- IoCs:
- Giai đoạn 1: Fake Flash
- 422e3b16e431daa07bae951eed08429a0c4ccf8e37746c733be512f1a5a160a3
- 8489ee84e810b5ed337f8496330e69d6840e7c8e228b245f6e28ac6905c19f4a
- c0331d4dee56ef0a8bb8e3d31bdfd3381bafc6ee80b85b338cee4001f7fb3d8c
- 89a1f947b96b39bfd1fffd8d0d670dddd2c4d96f9fdae96f435f2363a483c0e1
- b3fd750484fca838813e814db7d6491fea36abe889787fb7cf3fb29d9d9f5429
- 9ccb4ed133be5c9c554027347ad8b722f0b4c3f14bfd947edfe75a015bf085e5
- 4e7fc846be8932a9df07f6c5c9cbbd1721620a85c6363f51fa52d8feac68ff47
- 0f2e16690fb2ef2b5b4c58b343314fc32603364a312a6b230ab7b4b963160382
- db36ad77875bbf622d96ae8086f44924c37034dd95e9eb6d6369cc6accd2a40d
- 8bd55ecb27b94b10cb9b36ab40c7ea954cf602761202546f9b9e163de1dde8eb
- 7de56f65ee98a8cd305faefcac66d918565f596405020178aee47a3bd9abd63c
- 9d4b4c39106f8e2fd036e798fc67bbd7b98284121724c0f845bca0a6d2ae3999
- ac88a65345b247ea3d0cfb4d2fb1e97afd88460463a4fc5ac25d3569aea42597
- 37643f752302a8a3d6bb6cc31f67b8107e6bbbb0e1a725b7cebed2b79812941f
- d0dd9c624bb2b33de96c29b0ccb5aa5b43ce83a54e2842f1643247811487f8d9
- 260ebbf392498d00d767a5c5ba695e1a124057c1c01fff2ae76db7853fe4255b
- e784e95fb5b0188f0c7c82add9a3c89c5bc379eaf356a4d3876d9493a986e343
- a95909413a9a72f69d3c102448d37a17659e46630999b25e7f213ec761db9e81
- b7f36159aec7f3512e00bfa8aa189cbb97f9cc4752a635bc272c7a5ac1710e0b
- 4332f0740b3b6c7f9b438ef3caa995a40ce53b3348033b381b4ff11b4cae23bd
- Giai đoạn 1: Other
- a8029680a25fb0144c20fe7637492bcab3c3b320b824735bb02d10babed9c938
- Giai đoạn 2: Downloader Utility
- 2779937398506e8ad207f5b291ae53d8af82b9f2739b0508ae3e0cfc40ced092
- 30b2bbce0ca4cb066721c94a64e2c37b7825dd72fc19c20eb0ab156bea0f8efc
- 42ed73b1d5cc49e09136ec05befabe0860002c97eb94e9bad145e4ea5b8be2e2
- cf65cc6e4b2b0c3f602b16398c8c30c277b8cfaed689fe7cb61b92560d4e5b1b
- a325bbd32985c1b586486df7d92521224b8b155d464c88d11b1d0068399100c2
- 740992d40b84b10aa9640214a4a490e989ea7b869cea27dbbdef544bb33b1048
- 4b53a550854cfa65a800d8fb86aab726ca44610dad04325abf5c59f4832d7555
- 7ea7c6406c5a80d3c15511c4d97ec1e45813e9c58431f386710d0486c4898b98
- cf4bf26b2d6f1c6055534bbe9decb579ef0180e0f8c467c1a26e2ead7567058a
- 05f7fbb63d42bc2e73ef2b935cb6b3c919b7020dc1b80ed58f60484dcbd667a9
- 4ccd825cf4a9fdfbea08fb4e4b3ab08e846bc2efb05ccac794e786ec4335cbb4
- 8097a623dbcdbd8f880a294fa80c8ea152707f0acd75ab4de158f3abfd4715a3
- 0d7d4dc173c88c4f72c8f9f419ae8473d044f4b3e8f32e4a0f34fe4bbc698776
- 42ed73b1d5cc49e09136ec05befabe0860002c97eb94e9bad145e4ea5b8be2e2
- AddTaskPlanDllVerson.dll
- 2779937398506e8ad207f5b291ae53d8af82b9f2739b0508ae3e0cfc40ced092
- 75b30164a31d305f47f2c3c2121432e6d7b316cfb3deb6b39f78180168bc9472
- a8ef63238100c3837d097671c8e8d2cb4102e137055568fd04613747ba632fdc
- Giai đoạn 3: Cobalt Strike Beacon
- a11b6e2b02ae6531dfa85e0e1733a79816b54d2c91fed6526e43b8d07c63020a
- 9c9cd78e2d6dc150b98b14c8dc53ab683c0ebd52a438f97b5be3bfd66a309652
- 3be627980f2bd07be7ff961637eb73865955760f0039ebf9d440064c54a9034e
- d2642d3731508b52efa34adf57701f18e2f8b70addf31e33e445e75b9a909822
- URLs
- update.flach.cn/flach.php
- mobile.flach.cn/flach.php
- www.flach.cn/download.php
- update.flach.cn/callback.php
- download.flach.cn
- info.flach.cn
- forum.flach.cn
- m.flach.cn
- terminal.flach.cn
- update.careerhuawei.net
- careerhuawei.net
- info.careerhuawei.net
- hr.careerhuawei.net
- flash-update.buyonebuy.top
- 159.138.84.217:81/c0c00c0c/AddTaskPlanDllVerson.dll
- update.huaweiyuncdn.com.
- update.huaweiyuncdn.com/download.php
- cdn1.update.huaweiyuncdn.com
- cdn.update.huaweiyuncdn.com
- infoadmin.update.huaweiyuncdn.com
- Cobalt Strike Malleable C2
- update1.bootcdn.org/s/ref=nb _ sb _ noss _ 1/264-84198498-9827145/field-keywords=woman
- update1.jscachecdn.com/s/ref=nb _ sb _ noss _ 1/264-84198498-9827145/field-keywords=woman
- 2.7. Kết luận
- Dựa trên những phân tích đã có, bảng thống kê dưới đây tiến hành liệt kê những chiến thuật và kĩ thuật (TTPs) (theo MITRE ATT&CK) điển hình mà nhóm tấn công Mustang Panda đã sử dụng trong năm 2020 và quý 1/2021, đồng thời đối chiếu với cơ sở dữ liệu về các TTPs mà Mustang Panda sử dụng trước đó để xác định các TTPs mới xuất hiện trong năm 2020 và quý 1/2021 (được thể hiện ở cột “Mới”)
# | Tactics | Technique | Mới |
1 | Resource Development | T1583.001 | Acquire Infrastructure: Domains | |
T1587.001 | Develop capabilities: Malware | |||
T1588.002 | Obtain capabilities: Tool | |||
2 | Initial Acces | T1091 | Replication Through Removable Media | + |
T1566 | Phishing | |||
3 | Execution | T1204.002 | User Execution: Malicious File | |
4 | Persistence | T1574.001 | Hijack Execution Flow: DLL Search Order Hijacking | |
T1053.005 | Scheduled Task/Job: Scheduled Task | |||
T1543.003 | Create or Modify System Process: Windows Service | |||
5 | Privilege Escalation | T1547.001| Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | |
6 | Defense Evasion | T1055 | Process Injection | |
7 | Exfiltration | T1052.001 | Exfiltration Over Physical Medium: Exfiltration over USB | + |
8 | Command and Control | T1001.001 | Data Obfuscation: Junk Data | |
T1071.001 | Application Layer Protocol: Web Protocols |
- Bảng 12. Tổng hợp các TTPs của Mustang Panda trong năm 2020 và quý 1/2021
- 3. Tài liệu tham khảo
- [1] CMC Cyber Security, 10/2020, “CMC Cyber Security cảnh báo: Chiến dịch APT tấn công vào các cơ quan hành chính nhà nước Việt Nam”, Available: https://cmccybersecurity.com/cmc-cyber-security-canh-bao-chien-dich-apt-tan-cong-vao-cac-co-quan-hanh-chinh-nha-nuoc-viet-nam/
- [2] VinCSS, 03/2020, “Phân tích mã độc lợi dụng dịch Covid-19 để phát tán giả mạo “Chỉ thị của thủ tướng Nguyễn Xuân Phúc” – Phần 1” Available: https://blog.vincss.net/2020/03/re012-phan-tich-ma-doc-loi-dung-dich-COVID-19-de-phat-tan-gia-mao-chi-thi-cua-thu-tuong-Nguyen-Xuan-Phuc.html
- [3] ThaiCERT, 01/2021, “APT group: Mustang Panda, Bronze President”, Available: https://apt.thaicert.or.th/cgi-bin/showcard.cgi?g=Mustang%20Panda%2C%20Bronze%20President&n=1
- [4] CrowdStrike, 01/2018, “Meet CrowdStrike’s Adversary of the Month for June: MUSTANG PANDA”, Available: https://www.crowdstrike.com/blog/meet-crowdstrikes-adversary-of-the-month-for-june-mustang-panda/
- [5] JagaimoKawaii, 01/2020, “Mustang Panda Recent Activity: Dll-Sideloading trojans with temporal C2 servers”, Available: https://lab52.io/blog/mustang-panda-recent-activity-dll-sideloading-trojans-with-temporal-c2-servers/
- [6] Shahab Hamzeloofard, 01/2020, New wave of PlugX targets Hong Kong, Available: https://www.avira.com/en/blog/new-wave-of-plugx-targets-hong-kong
- [7] Gage Mele, Parthiban R., and Tara Gould, 03/2020, “The Tactics, Techniques and Procedures (TTPs) Are Known but the Content Is Coronavirus-Themed”, Available: https://www.anomali.com/blog/covid-19-themes-are-being-utilized-by-threat-actors-of-varying-sophistication
- [8] CMC SOC Center, 03/2020, MustangPanda – COVID 19 Malware, Available: https://cmccybersecurity.com/en/mustangpanda-covid-19-malware/
- [9] Proofpoint Threat Research Team, 11/2020, “TA416 Goes to Ground and Returns with a Golang PlugX Malware Loader”, Available: https://www.proofpoint.com/us/blog/threat-insight/ta416-goes-ground-and-returns-golang-plugx-malware-loader
- [10] Catalin Cimpanu, 01/2020, “Chinese state hackers target Hong Kong Catholic Church”, Available: https://www.zdnet.com/article/chinese-state-hackers-target-hong-kong-catholic-church/
- [11] Malpedia, “Mustang Panda”, Available: https://malpedia.caad.fkie.fraunhofer.de/actor/mustang_panda
- [12] Ionut Arghire, 11/2020, “Chinese Threat Actor ‘Mustang Panda’ Updates Tools in Attacks on Vatican”, Available: https://www.securityweek.com/chinese-threat-actor-mustang-panda-updates-tools-attacks-vatican
- [13] ThreatConnect Research Team, 03/2020, “Research Roundup: Mustang Panda and RedDelta PlugX Using Same C2”, Available: https://threatconnect.com/blog/research-roundup-mustang-panda-and-reddelta-plugx-using-same-c2/
- [14] ThreatConnect Research Team, 07/2020, “Research Roundup: Mustang Panda PlugX Variant Samples and Decryption Script”, Available: https://threatconnect.com/blog/research-roundup-mustang-panda-plugx-variant-samples-and-decryption-script/
- [15] McAfee, 03/2021, “Technical Analysis of Operation Diànxùn”, Available: https://www.mcafee.com/enterprise/en-us/assets/reports/rp-operation-dianxun.pdf