(CĐ 19) Các nhóm tin tặc Trung Quốc: PUTTER PANDA – ĐƠN VỊ 61486 PLA (Kỳ 6)

09/09/2015 09:00

PUTTER PANDA sử dụng một vài công cụ quản trị từ xa (RAT). Trong số đó, hai công cụ phổ biến nhất, 4HRAT và 3PARA RAT, từng được đưa vào báo cáo CrowdStrike Intelligence trước đây. Mục này sẽ phân tích lại hai công cụ trên cùng với hai công cụ PUTTER PANDA khác là: pngdowner và httpclient. Hai dropper được liên kết với bộ công cụ PUTTER PANDA; cũng được khảo sát dưới đây:

Phân tích kỷ thuật – Mẫu mã MD5 (Kỳ 1)

hacker (2)

4H RAT – MẪU MÃ MD5
A76419A2FCA12427C887895E12A3442B

Công cụ RAT này được phân tích lần đầu tiên bởi CrowdStrike vào tháng 04/2012,
nhưng phân tích trước kia cho thấy 4H RAT từng được sử dụng từ năm 2007 bởi
PUTTER PANDA. Danh sách dữ liệu đặc tả về các mẫu được biết, bao gồm thông tin Điều khiển và Kiểm soát (C2), được thể hiện trong phần Phụ Lục 1.

[headlinebox title=”Mục lục” state=”ẩn/hiện” float=”left” w=”55%”]hdtbgdmtq.ml[/headlinebox]

Hoạt động của công cụ RAT này đã được mô tả chi tiết trong một báo cáo CrowdStrike khác, nhưng được nhắc lại ở đây để làm nổi bật đặc trưng của công cụ này:

• Quá trình C2 diễn ra trên HTTP, sau khi kết nối được xác thực bằng việc thực hiện
một truy vấn đặc biệt. (đến URL/search?qu= at www.google.com).

• Nạn nhân được nhận diện bằng chuỗi được tạo ra từ số se-ri trong ổ cứng của máy tính bị nhiễm, (XOR’ed) với khoá dd46!yo, và cuối cùng được mã hoá như các ký tự hoa của ASCII trong dãy từ A-P – ví dụ, byte mang giá trị 0x1F là “BP”.

• Một loạt các yêu cầu HTTP mô tả đặc điểm máy chủ C2 của công cụ này. Đặc điểm đầu tiên là yêu cầu với 4 thông số (h1, h2, h3, và h4) – thể hiện trong Hình 8 – nhằm liên kết với máy chủ C2.

• Thông tin giao tiếp đến và đi từ máy chủ C2 được làm cho khó hiểu bằng việc sử dụng 1-byte XOR với khoá 0xBE.

• Các lệnh điều khiển được công cụ này hỗ trợ cho phép thực thi một vài khả năng, bao
gồm:

o Remote shell

o Liệt kê các tiến trình đang chạy (bao gồm các mô-đun được nạp)

o Kết thúc tiến trình (xác định bởi PID)

o Liệt kê tập tin và thư mục

o Tải lên, tải về, xoá và chỉnh sửa mốc thời gian của tập tin

MD5

3PARA RAT – MẪU MÃ MD5
BC4E9DAD71B844DD3233CFBBB96C1BD3
3PARA RAT đã được mô tả trong báo cáo khác của CrowdStrike, trong đó xem xét mẫu DLL-based có tên ssdpsvc.dll. Các tập tin khác mặc dù có tên là msacem.dll và mrpmsg. dll,nhưng bản chất là tập tin thực thi (EXE).

Khi bắt đầu, công cụ này tạo ra một tập tin ánh xạ đặt tên là &*SDKJfhksdf89*DIUKJDSF&*sdfsdf78sdfsdf.

Việc này nhằm ngăn ngừa có nhiều công cụ RAT được thực thi cùng lúc. Sau đó, công cụ này dùng một thuật toán (sử dụng giá trị modulo hard-coded) để giải mã chi tiết máy chủ C2 bao gồm hostname và port number, trong ví dụ này là nsc.adomhn.com, port 80.Thuật toán giải mã được minh hoạ trong Hình 10. Khoá và các giá trị môđun khác nhau theo từng mẫu. Các thiết lập giải mã máy chủ C2, cùng với mẫu dữ liệu đặc tả được liệt kê trong Phụ lục 2.

MD5.1

Công cụ này được lập trình bằng C++ sử dụng Microsoft Visual Studio, tận dụng các tính năng trình hướng đối tượng và song song trong môi trường này; Các đối tượng STL (Standard Template Library) được sử dụng để thể hiện cấu trúc dữ liệu như các chuỗi và danh sách, các đối tượng tuỳ chỉnh được dùng để thể hiện cho một số các bộ điều khiển máy chủ C2 (như CCommandCMd). Một vài luồng được dùng để xử lý từng giai đoạn khác nhau của giao thức điều khiển và kiểm soát, như nhận dữ liệu từ máy chủ, giải mã dữ liệu, và xử lý các câu lệnh. Các thành phần Windows tiêu chuẩn như Events được dùng để đồng bộ các chủ đề nói trên, với một cấu trúc tổng thể giúp nắm giữ trạng thái.

Một khi hoạt động, công cụ RAT này sẽ nạp một chuỗi nhị phân đại diện cho giá trị
ngày/giờ từ tập tin C:RECYCLErestore.dat, và sẽ nằm chờ cho đến khi mốc ngày/giờ này trôi qua. Việc này cung cấp một cơ chế hoạt động cho phép RAT duy trì trạng thái ngủ đông đến một thời điểm xác định, có lẽ nhằm lấy quyền truy cập trở lại cho các công cụ nếu các thành phần khác của bộ công cụ bị gỡ bỏ ra khỏi hệ thống nạn nhân.

md5.2

Như với 4H RAT, giao thức C2 được sử dụng bởi 3PARA RAT dựa trên giao thức HTTP, cả hai truy vấn GET và POST đều được dùng. Truy vấn đầu tiên được gửi tới máy chủ C2 (minh hoạ trong Hình 11 ở trên), nhưng giá trị phản hồi được bỏ qua; gần như truy vấn này chỉ để thực hiện việc kiểm tra kết nối, hoạt động điều khiển và kiểm soát sẽ chỉ diễn ra nếu truy vấn đầu tiên thành công. Trong trường hợp này, công cụ RAT sẽ chuyển giao một số thông tin cơ bản của nạn nhân đến máy chủ C2 cùng với mã băm 256-byte của chuỗi cố định HYF54&%9&jkMCXuiS. Gần như các thành phần truy vấn là phương tiện để xác thực công cụ RAT với máy chủ C2 và ghi nhận nạn nhân mới với bộ điều khiển. Một truy vấn mẫu và cấu trúc của nó được thể hiện trong Hình 12.

mD5.4

md5.5

Nếu truy vấn thành công, công cụ RAT sẽ cố gắng tiếp nhận tác vụ từ bộ điều khiển bằng truy vấn HTTP đặc biệt thể hiện trong Hình 13, truy vấn sẽ thực hiện lặp đi lặp lại mỗi 2 giây cho đến khi tiếp nhận tác vụ.

md5.6

Tác vụ trả về được giải mã bằng thuật toán DES trong chế độ CBC với khoá lấy từ mã MD5 của HYF54&%9&jkMCXuiS. Nếu thất bại, công cụ RAT sẽ trở lại giải mã dữ liệu bằng một phép XOR 8-byte với khoá lấy từ dữ liệu trả về của hàm API HashData với cùng chuỗi ký tự. Dữ liệu đầu ra được tạo bởi các chỉ dẫn tác vụ được mã hoá theo cùng một cách thức dữ liệu được giải mã và được gửi trở lại máy chủ C2 thông qua truy vấn HTTP POST đến URI dạng/microsoft/errorpost/default.aspx?ID=, với giá trị ID là một số thập phân ngẫu nhiên – như truy vấn đầu tiên thể hiện trong Hình 4.

Các lệnh điều khiển được hỗ trợ bởi công cụ RAT phần nào bị hạn chế, cho thấy có khả năng công cụ RAT này được dùng như một công cụ cho giai đoạn hai, hoặc như một phương tiện dự phòng cho kẻ tấn công lấy lại quyền truy cập cơ bản vào hệ thống bị xâm nhập (phù hợp với tính năng ngủ đông đến một ngày/giờ xác định).

Một số lệnh hỗ trợ được thực hiện bằng các lớp C++ có nguồn gốc từ lớp CCommand cơ sở:

•CCommandAttribe – Khôi phục dữ liệu đặc tả cho các tập tin trên ổ đĩa, hoặc
chỉnh các thuộc tính nhất định như tạo/hiệu chỉnh mốc thời gian.

•CCommandCD – Thay đổi thư mục đang làm việc cho phiên C2 hiện thời.

•CCommandCMD – Thực hiện lệnh, với thao tác vào/ra/báo lỗi tiêu chuẩn
được chuyển hướng qua kênh C2.

•CCommandNOP – Liệt kê thư mục đang làm việc hiện tại.
Tuy nhiên, các lệnh khác không được thực hiện bằng cách này. Các lệnh khác có chức năng sau:

•Tạm ngưng hoạt động C2 trong một khoảng thời gian ngẫu nhiên.

•Tắt hoạt động C2 và thoát.

•Lấy thông tin ngày và giờ trước khi không nhận được phản hồi, ghi lại vào tập
tin C:RECYCLERrestore.dat như ghi chú ở trên.
Việc sử dụng lớp C++ được kế thừa từ lớp cơ sở nhằm tiến hành một số lệnh tác vụ, cùng với việc sử dụng các tính năng hiện hành, cho thấy đối tượng nhà phát triển công cụ RAT có suy nghĩ về thiết kế và kiến trúc vào công cụ của họ, dù quyết định thực hiện một số lệnh nằm ngoài khuôn khổ lớp cơ sở, và cho thấy có nhiều đối tượng phát triển thực hiện công cụ này (hoặc một đối tượng phát triển duy nhất nhưng có phong cách lập trình hay thay đổi)

PNGDOWNER – MẪU MÃ MD5
687424F0923DF9049CC3A56C685EB9A5

Mã độc pngdowner là một công cụ đơn giản được xây dựng bằng Microsoft Visual
Studio và thực hiện thông qua tập tin mã nguồn C++ đơn. Mẫu này chứa một đường dẫn PDB của Y:Visual Studio 2005Projectsbranch-downerpngdowner.pdb, tuy nhiên cũng có các đường dẫn tương tự khác gồm Z:Visual Studio2005Projects pngdownerreleasepngdowner.pdb và Z:Visual Studio 2005Projectsdowner Releasedowner.pdb. Phụ lục 3 liệt kê dữ liệu đặc tả của các mẫu pngdowner đã biết.

Đầu tiên, mã độc sẽ thực hiện một kiểm tra kết nối đến URL xác định trước (http://
www.microsoft.com), sử dụng chuỗi user agent Mozilla/4.0 (Compatible; MSIE 6.0;).
Nếu truy vấn thất bại, mã độc sẽ cố trích xuất các thông tin chi tiết của proxy và các thành phần từ Windows Protected Storage, và từ IE Credentials Store bằng các phương pháp phổ biến, sử dụng các thành phần của proxy cho các truy vấn tiếp theo nếu chúng cho phép truy cập HTTP. Truy vấn đầu tiên gửi đến máy chủ C2 cố định và URI ban đầu – tạo thành một URL có dạng (trong ví dụ này) http://login.stream-media. net/files/xx11/index.asp?95027775, nơi chứa tham số đại diện một số nguyên ngẫu nhiên. Một chuỗi user agent cố định của myAgent được dùng cho truy vấn này, và các liên lạc sau đó với máy chủ C2.

Nội dung trả về từ truy vấn này đến máy chủ C2 sẽ được lưu lại thành tập tin có tên
index.dat trong thư mục tạm của người dùng (vd: %TEMP%). Tập tin này dự kiến
chứa một dòng duy nhất, xác định URL và tên tập tin. Mã độc sẽ cố gắng tải về nội dung từ URL được xác định đến tên tập tin bên trong thư mục tạm của người dùng, sau đó thực thi tập tin thông qua hàm API WinExec. Nếu nỗ lực thực thi thành công, truy vấn C2 cuối cùng sẽ được tạo ra với cùng URL như truy vấn đầu tiên (và các tham số ngẫu nhiên tương tự), nhưng với tên tập tin là success.asp. Nội dung trả về từ truy vấn sẽ được lưu vào một tập tin, nhưng sau đó sẽ bị xóa ngay lập tức.

Cuối cùng, mã độc sẽ xóa nội dung được lưu từ truy vấn đầu tiên, và thoát ra.
Chức năng hạn chế và không duy trì lâu dài của công cụ này, cho thấy nó chỉ được dùng như một tiện ích tải về và thực thi đơn giản. Mặc dù phiên bản được đề cập ở đây sử dụng C++, cùng với Visual Studios Standard Template Library (STL), các phiên bản cũ hơn của công cụ RAT (như mẫu mã MD5 b54e91c234ec0e739ce429f47a317313), được xây dựng trong năm 2011, dùng ngôn ngữ C. Điều này cho thấy, tuy công cụ hết sức đơn giản, nhưng các đối tượng phát triển vẫn cố gắng chỉnh sửa và có khả năng cải thiện bộ mã. Cả hai phiên bản đều chứa các thông điệp debugging/progress như “down file success”.

Mặc dù không hiển thị cho nạn nhân, chúng gần như được dùng để các nhà phát triển xem như một phương pháp đơn giản để kiểm tra chức năng của bộ mã.

HTTPCLIENT – MẪU MÃ MD5
544FCA6EB8181F163E2768C81F2BA0B3

Giống như pngdowner, mã độc httpclient là một công cụ đơn giản cung cấp một loạt tính năng giới hạn và sử dụng HTTP cho kênh điều khiển và kiểm soát. Mã độc này đầu tiên cũng thực hiện kiểm tra kết nối đến www.microsoft.com sử dụng chuỗi user agent cố định Mozilla/4.0 (Compatible; MSIE 6.0;), tuy nhiên biến thể này không thực hiện trích xuất thiết lập proxy.

Mã độc sẽ kết nối đến hạ tầng C2 được cấu hình trước (file.anyoffice.info) và thực hiện truy vấn theo hình thức được thể hiện trong Hình 14 dưới đây:

md5.7

Nội dung trả về từ máy chủ C2 biến đổi cho dễ hiểu bằng phương pháp XOR với một byte đơn, 0x12. Dữ liệu được giải mã được kiểm tra bằng một chuỗi runshell.Nếu chuỗi này không hiện diện, truy vấn đến máy chủ C2 được thực hiện mỗi 0,5 giây. Nếu không, một tiến trình shell được khởi động (vd: cmd.exe), với việc chuyển hướng ra/ vào trên kênh C2. Các lệnh shell từ máy chủ được nối thêm một chuỗi mã hóa $$$, cho biết phiên làm việc cần tiếp tục. Một khi phiên làm việc chấm dứt, hai lệnh khác được hỗ trợ là: m2b (tải lên tập tin) và b2m (tải xuống tập tin).

Các biến thể có thay đổi nhỏ về URL C2 được sử dụng cho các giai đoạn khác nhau trong quá trình tương tác C2.

•Shell command: /Microsoft/errorpost<random number>/default.asp?tmp=<en- coded hostname>

•Shell response: /MicrosoftUpdate/GetUpdate/KB<random number>/default.
asp?tmp=<encoded hostname>

Đưa ra một cơ chế không lâu dài và độ phức tạp ở mức thấp, cho thấy httpclient –
giống pngdowner – được sử dụng cho giai đoạn hai hoặc như một công cụ bổ sung/ phòng ngừa. Phụ lục 4 liệt kê dữ liệu đặc tả thể hiện các mẫu httpclient.

(Còn tiếp)

Ban biên tập

Xem nhiều

Tin liên quan

BẠN CÓ THỂ QUAN TÂM

Video