Vén màn sự phát triển chuỗi lây nhiễm độc hại của nhóm tin tặc Lazarus

21:00 | 26/01/2025 | HACKER / MALWARE
Trong vài năm qua, nhóm tin tặc Lazarus đã phân phối phần mềm độc hại bằng cách khai thác các cơ hội việc làm giả mạo nhắm vào nhân viên trong nhiều ngành công nghiệp khác nhau, bao gồm quốc phòng, hàng không vũ trụ, tiền điện tử và các lĩnh vực toàn cầu khác. Chiến dịch tấn công này được gọi là DeathNote và cũng được gọi là “Operation DreamJob”. Bài viết sẽ cung cấp tổng quan về những thay đổi đáng kể trong chuỗi lây nhiễm của Lazarus và khám phá cách chúng kết hợp việc sử dụng các mẫu phần mềm độc hại mới và cũ để điều chỉnh các cuộc tấn công.

Gần đây, các nhà nghiên cứu tại hãng bảo mật Kaspersky đã quan sát thấy một cuộc tấn công tương tự, trong đó các tin tặc Lazarus đã gửi tệp lưu trữ chứa các mã độc hại cho ít nhất hai nhân viên có liên quan đến cùng một tổ chức hạt nhân trong suốt một tháng.

Sau khi xem xét cuộc tấn công, các nhà nghiên cứu đã có thể phát hiện ra một chuỗi lây nhiễm phức tạp bao gồm nhiều loại phần mềm độc hại, chẳng hạn như downloader, trình tải loader và backdoor, chứng minh phương pháp phân phối đã phát triển và được cải thiện khả năng duy trì của nhóm tin tặc này.

Không bao giờ từ bỏ mục tiêu

Nghiên cứu trước đây của Kaspersky đã chỉ ra rằng Lazarus quan tâm đến việc thực hiện các cuộc tấn công chuỗi cung ứng như một phần của chiến dịch DeathNote, nhưng điều này chủ yếu giới hạn ở hai phương pháp: Đầu tiên, đó là gửi một tài liệu độc hại hoặc trình PDF nhiễm trojan hiển thị các mô tả công việc được thiết kế riêng cho mục tiêu. Phương pháp thứ hai là phân phối các công cụ truy cập từ xa bị nhiễm trojan như VNC hoặc PuTTY để thuyết phục nạn nhân kết nối với một máy chủ cụ thể.

Cả hai phương pháp trên đều đã được các nhà cung cấp bảo mật khác ghi chép đầy đủ, nhưng nhóm này vẫn tiếp tục điều chỉnh kỹ thuật tấn công của mình trong mỗi cuộc tấn công.

Trường hợp mới được phát hiện gần đây thuộc về cách tiếp cận thứ hai. Tuy nhiên, ngoại trừ vectơ ban đầu, chuỗi lây nhiễm đã thay đổi hoàn toàn. Trong trường hợp bị phát hiện, mỗi mục tiêu nhận được ít nhất ba tệp lưu trữ được cho là liên quan đến đánh giá kỹ năng cho các vị trí công nghệ thông tin tại các công ty hàng không vũ trụ và quốc phòng lớn.

Các nhà nghiên cứu có thể xác định rằng hai trong số các trường hợp liên quan đến tiện ích VNC đã bị nhiễm trojan. Lazarus đã gửi tệp lưu trữ đầu tiên cho ít nhất hai người trong cùng một tổ chức (tạm gọi là Host A và Host B). Sau một tháng, các tin tặc đã thực hiện các cuộc tấn công chuyên sâu hơn vào mục tiêu đầu tiên.

Hình 1. Quy trình các tập tin độc hại được tạo trên máy chủ của nạn nhân

Xuất hiện với kỹ thuật mới

Trong trường hợp đầu tiên, để không bị phát hiện, Lazarus đã gửi các tệp nén ISO độc hại đến mục tiêu của chúng, vì các tệp ZIP dễ bị nhiều dịch vụ phát hiện. Mặc dù các nhà nghiên cứu chỉ phát hiện các tệp ZIP trong các trường hợp khác, họ nhận định rằng tệp ban đầu cũng là một tệp ISO.

Không rõ chính xác các tệp đã được nạn nhân tải xuống như thế nào. Tuy nhiên, các nhà nghiên cứu có đánh giá tệp ISO được tải xuống bằng trình duyệt dựa trên Chromium. Tệp liên quan đến VNC đầu tiên chứa một VNC độc hại và tệp thứ hai chứa một UltraVNC Viewer hợp lệ cùng một DLL độc hại.

Hình 2. Tệp AmazonVNC[.]exe độc ​​hại (trái) và vncviewer[.]exe hợp pháp (phải)

ISO đầu tiên chứa một tệp ZIP bao gồm hai tệp: AmazonVNC[.]exe và readme[.]txt. Trong đó, tệp AmazonVNC[.]exe là phiên bản trojan của TightVNC - một phần mềm VNC miễn phí mã nguồn mở cho phép bất kỳ ai chỉnh sửa mã nguồn gốc. Khi mục tiêu thực thi AmazonVNC[.]exe, một cửa sổ như trong Hình 2 sẽ hiển thị.

Địa chỉ IP để nhập vào trường “Remote Host” được lưu trữ trong tệp readme[.]txt cùng với mật khẩu. Có khả năng nạn nhân đã được hướng dẫn sử dụng IP này qua một trình nhắn tin, vì Lazarus có xu hướng đóng giả làm người tuyển dụng và liên hệ với mục tiêu trên LinkedIn, Telegram, WhatsApp,…

Sau khi nhập IP, một khóa XOR sẽ được tạo dựa trên IP đó. Khóa này được sử dụng để giải mã các tài nguyên nội bộ của tệp thực thi VNC và giải nén dữ liệu đã giải mã. Dữ liệu này thực chất là downloader mà các nhà nghiên cứu đặt tên là “Ranid Downloader”, được AmazonVNC[.]exe tải vào bộ nhớ để thực hiện các hoạt động độc hại tiếp theo.

Tệp _Skill_Assessment_new[.]zip nhúng vncviewer[.]exe hợp pháp của UltraVNC, đây là phần mềm VNC nguồn mở giống như TightVNC. Tệp ZIP này cũng chứa tệp độc hại vnclang[.]dll, được tải bằng kỹ thuật side-loading.

Mặc dù các nhà nghiên cứu không thể thu thập được vnclang[.]dll, nhưng họ đã phân loại nó là trình tải phần mềm độc hại MISTPEN được hãng bảo mật Mandiant (Mỹ) mô tả trong báo cáo gần đây, dựa trên thông tin liên lạc của nó với máy chủ điều khiển và ra lệnh (C2) - cụ thể là các payload, sử dụng cùng định dạng với các payload trên máy chủ MISTPEN mà các nhà nghiên cứu có thể thu thập được.

Theo Kaspersky, trong trường hợp cụ thể được phân tích, MISTPEN cuối cùng đã tải một payload bổ sung là _media[.]dat từ máy chủ C2. Payload đầu tiên là RollMid, được mô tả chi tiết trong báo cáo của công ty an ninh mạng Avast (Cộng hòa Séc) công bố vào tháng 4/2024.

Payload thứ hai được xác định là biến thể mã độc LPEClient mới. MISTPEN và RollMid đều là những chương trình độc hại tương đối mới của nhóm Lazarus được phát hiện trong năm 2024, nhưng vẫn chưa được ghi nhận vào thời điểm xảy ra cuộc tấn công thực tế.

CookieTime vẫn đang được sử dụng

Một phần mềm độc hại khác được tìm thấy trên các máy chủ bị nhiễm là CookieTime. Các nhà nghiên cứu chưa rõ chính xác cách phần mềm độc hại CookieTime được phân phối đến Host A, nhưng theo dữ liệu đo từ xa của Kaspersky, nó được thực thi dưới dạng dịch vụ SQLExplorer sau khi cài đặt LPEClient. Trong giai đoạn đầu, CookieTime hoạt động bằng cách trực tiếp nhận và thực thi các lệnh từ máy chủ C2, nhưng gần đây nó đã được sử dụng để tải xuống các payload.

Các tin tặc di chuyển ngang từ Host A sang Host C (Hình 3), tại đó CookieTime được sử dụng để tải xuống một số dòng phần mềm độc hại, bao gồm LPEClient, Charamel Loader, ServiceChanger và phiên bản cập nhật của CookiePlus, mà chúng ta sẽ thảo luận sau trong bài viết này.

Theo đó, Charamel Loader là một trình tải lấy khóa làm tham số và giải mã, tải các tài nguyên bằng thuật toán ChaCha20. Cho đến nay, các nhà nghiên cứu đã xác định được ba dòng phần mềm độc hại được trình tải này phân phối và thực thi, đó là CookieTime, CookiePlus và ForestTiger.

Phần mềm độc hại ServiceChanger dừng một dịch vụ hợp pháp được nhắm mục tiêu và sau đó lưu trữ các tệp độc hại từ phần tài nguyên của nó vào đĩa để khi dịch vụ hợp pháp được khởi động lại, nó sẽ tải DLL độc hại đã tạo thông qua DLL side-loading.

Trong trường hợp này, dịch vụ được nhắm mục tiêu là ssh-agent và tệp DLL là libcrypto[.]dll. ServiceChanger của Lazarus hoạt động khác với phần mềm độc hại có tên tương tự được các tin tặc Kimsuky sử dụng. Trong khi Kimsuky đăng ký một dịch vụ độc hại mới, thì Lazarus khai thác một dịch vụ hợp pháp hiện có thông qua DLL side-loading.

Có một số trường hợp CookieTime được tải bằng DLL side-loading và được thực thi như một dịch vụ. Điều thú vị là CookieTime hỗ trợ nhiều cách tải khác nhau.

Hình 3. Luồng lây nhiễm

CookiePlus có khả năng tải xuống cả DLL và shellcode

CookiePlus là một chương trình độc hại dựa trên plugin mới mà Kaspersky phát hiện trong quá trình điều tra trên Host C. Ban đầu, nó được tải bởi cả ServiceChanger và Charamel Loader. Sự khác biệt giữa mỗi CookiePlus được tải bởi Charamel Loader và ServiceChanger là cách nó được thực thi.

CookiePlus chạy như một DLL riêng và bao gồm thông tin C2 trong phần tài nguyên của nó, trong khi CookiePlus lấy những gì được lưu trữ trong một tệp bên ngoài riêng biệt như msado[.]inc, nghĩa là CookiePlus có khả năng lấy danh sách C2 từ cả tài nguyên bên trong và tệp bên ngoài. Ngoài ra, hành vi là giống nhau.

Khi các nhà nghiên cứu lần đầu phát hiện ra CookiePlus, nó được ngụy trang thành ComparePlus - một plugin Notepad++ mã nguồn mở. Trong vài năm qua, nhóm này đã liên tục mạo danh các loại plugin tương tự. Tuy nhiên, mẫu CookiePlus gần đây nhất, được phát hiện trong một trường hợp lây nhiễm không liên quan đến những trường hợp được thảo luận trong bài viết này, dựa trên một project nguồn mở khác là DirectX-Wrappers, được phát triển với mục đích đóng gói các DLL DirectX và Direct3D. Điều này cho thấy nhóm tin tặc này đã chuyển trọng tâm sang các chủ đề khác để trốn tránh các biện pháp phòng thủ bằng cách ngụy trang thành các tiện ích công cộng.

Vì CookiePlus hoạt động như một downloader, nên nó có chức năng hạn chế và truyền thông tin tối thiểu từ máy chủ bị nhiễm đến máy chủ C2. Trong quá trình giao tiếp ban đầu với C2, CookiePlus tạo một mảng dữ liệu 32 byte bao gồm ID từ tệp cấu hình của nó hay giá trị offset cụ thể.

Một khía cạnh đáng chú ý là việc bao gồm một giá trị offset cụ thể trỏ đến 4 byte cuối cùng của đường dẫn tệp cấu hình. Mảng dữ liệu sau đó được mã hóa bằng khóa công khai RSA hardcode. Tiếp theo, CookiePlus mã hóa dữ liệu bằng Base64, nó được đặt làm giá trị cookie trong HTTP header và được chuyển đến máy chủ C2.

Dữ liệu cookie này được sử dụng trong quá trình giao tiếp tiếp theo, có thể là để xác thực. Sau đó, CookiePlus truy xuất một payload mã hóa bổ sung nhận được từ C2 cùng với dữ liệu cookie. Thật không may, trong quá trình điều tra chiến dịch này, các nhà nghiên cứu không thể thiết lập kết nối với C2, do đó dữ liệu chính xác được trả về không được biết.

CookiePlus sau đó giải mã payload bằng Base64. Kết quả là một cấu trúc dữ liệu chứa payload được mã hóa ChaCha20, có thể toàn bộ payload không được nhận cùng một lúc. Để biết khi nào dừng yêu cầu thêm dữ liệu, CookiePlus xem giá trị của offset nằm ở 0x07 và tiếp tục yêu cầu thêm dữ liệu cho đến khi giá trị được đặt thành 1.

Tiếp theo, payload được giải mã bằng cách sử dụng mảng dữ liệu 32 byte tạo trước đó làm khóa và giá trị nonce đã phân phối. Loại payload được xác định bởi cờ ở offset 0x04, có thể là DLL hoặc shellcode.

Nếu giá trị của cờ là 0xBEF0, thì payload được mã hóa là một tệp DLL được tải vào bộ nhớ. Payload cũng có thể chứa một tham số được truyền cho DLL khi được tải.

Nếu giá trị là 0xBEEF, CookiePlus sẽ kiểm tra xem 4 byte đầu tiên của payload có nhỏ hơn 0x80000000 hay không. Nếu có, shellcode trong payload sẽ được tải sau khi được cấp quyền thực thi. Lúc đó, kết quả được mã hóa ChaCha20 sẽ được gửi đến máy chủ C2. Đối với mã hóa, cùng một mảng dữ liệu 32 byte lại được sử dụng làm khóa và một giá trị nonce 12 byte được tạo ngẫu nhiên. Quá trình tải xuống liên tục các dữ liệu bổ sung này sẽ tiếp diễn cho đến khi C2 ngừng phản hồi.

Hình 4. Quy trình kết nối CookiePlus C2

Các nhà nghiên cứu đã có được ba shellcode khác nhau được tải bởi CookiePlus. Các shellcode thực sự là các DLL được chuyển đổi thành shellcode bằng công cụ tạo shellcode nguồn mở sRDI, các DLL này sau đó hoạt động như các plugin, kết quả thực thi của plugin được mã hóa và gửi đến C2.

Dựa trên tất cả những điều này, các nhà nghiên cứu đánh giá CookiePlus là phiên bản kế nhiệm của MISTPEN. Mặc dù không có sự trùng lặp mã đáng chú ý nào, nhưng có một số điểm tương đồng. Ví dụ, cả hai đều ngụy trang thành plugin Notepad++.

Ngoài ra, các mẫu CookiePlus được biên dịch và sử dụng vào tháng 6/2024, trong khi các mẫu MISTPEN mới nhất mà Kaspersky có thể tìm thấy đã được biên dịch vào tháng 1 và tháng 2/2024, mặc dù các nhà nghiên cứu nghi ngờ rằng MISTPEN cũng đã được sử dụng trong chiến dịch được thảo luận. MISTPEN cũng sử dụng các plugin tương tự như TbaseInfo[.]dll và hiber[.]dll giống như CookiePlus. Thực tế là CookiePlus hoàn thiện hơn MISTPEN và hỗ trợ nhiều tùy chọn thực thi hơn.

Cơ sở hạ tầng

Nhóm Lazarus đã sử dụng các máy chủ web bị xâm nhập chạy WordPress làm C2 cho phần lớn chiến dịch này. Các mẫu như MISTPEN, LPEClient, CookiePlus và RollMid đã sử dụng các máy chủ như vậy làm C2 của chúng. Tuy nhiên, đối với CookieTime, chỉ có một trong những máy chủ C2 mà các nhà nghiên cứu xác định chạy một trang web dựa trên WordPress.

Ngoài ra, tất cả các máy chủ C2 được thấy trong chiến dịch này đều chạy các dịch vụ web dựa trên PHP không bị giới hạn ở một quốc gia cụ thể.

Kết luận

Trong suốt lịch sử của mình, nhóm tin tặc Lazarus chỉ sử dụng một số ít các framework phần mềm độc hại mô-đun như Mata và Gopuram Loader. Việc triển khai loại phần mềm độc hại này là một chiến lược bất thường đối với chúng. Thực tế là các tin tặc phân phối phần mềm độc hại mô-đun mới, chẳng hạn như CookiePlus, cho thấy nhóm này liên tục cải tiến để phát triển “kho vũ khí” và chuỗi lây nhiễm của chúng để tránh bị các sản phẩm bảo mật phát hiện.

Vấn đề là CookiePlus có thể hoạt động giống như một downloader. Điều này khiến việc điều tra xem CookiePlus chỉ tải xuống một plugin nhỏ hay payload có ý nghĩa tiếp theo trở nên khó khăn. Theo phân tích của Kaspersky, có vẻ như nó vẫn đang trong quá trình phát triển tích cực, nghĩa là Lazarus có thể thêm nhiều plugin hơn trong tương lai.

Hồng Đạt

(Tổng hợp)

Tin cùng chuyên mục

Tin mới