Phân tích LitterDrifter: Worm độc hại được tin tặc Nga sử dụng trong các cuộc tấn công gián điệp mạng nhắm vào Ukraine
Giới thiệu về Gamaredon
Gamaredon (hay còn gọi là Aqua Blizzard, Iron Tilden, Primitive Bear, Shuckworm và Winterflounder) là nhóm tin tặc gián điệp của Nga với các hoạt động tấn công mạng vào nhiều thực thể tại Ukraine. Trong khi các nhà nghiên cứu thường gặp khó khăn trong việc tìm ra bằng chứng về các hoạt động gián điệp của Nga thì Gamaredon lại nổi bật một cách đáng chú ý.
Gamaredon đã có những hoạt động khá tích cực trong năm nay, đồng thời liên tục phát triển các phương thức tấn công của mình. Vào tháng 7/2023, khả năng lọc dữ liệu nhanh chóng đã được phát hiện, với việc các tác nhân đe dọa truyền thông tin nhạy cảm trong vòng một giờ kể từ lần xâm phạm ban đầu.
Nhóm tin tặc này tiến hành các chiến dịch quy mô lớn tập trung chủ yếu vào các mục tiêu khu vực. Các chiến dịch của Gamaredon thường nỗ lực thu thập dữ liệu nhằm vào các mục tiêu cụ thể mà việc lựa chọn của chúng thường có mục đích gián điệp. Những nỗ lực này diễn ra song song với việc triển khai các cơ chế và công cụ khác nhau được thiết kế để duy trì khả năng tiếp cận các mục tiêu này nhiều nhất có thể. Chúng sử dụng một công cụ là Worm được lây lan qua USB có tên là LitterDrifter.
Các nhà nghiên cứu cho biết họ cũng phát hiện các dấu hiệu có thể lây nhiễm ra bên ngoài Ukraine dựa trên báo cáo của VirusTotal từ Mỹ, Việt Nam, Chile, Ba Lan, Đức và Hồng Kông. Tất cả điều này có thể cho thấy rằng giống như các Worm USB khác, LitterDrifter đã lan rộng ra ngoài mục tiêu dự định của nó.
Hình 1. Phân bổ các nạn nhân theo phạm vi quốc gia
Tổng quan về LitterDrifter
LitterDrifter có hai tính năng chính, bao gồm tự động phát tán phần mềm độc hại qua USB được kết nối cũng như liên lạc với máy chủ C2 của kẻ tấn công. Nó cũng bị nghi ngờ là một sự phát triển của Worm USB dựa trên PowerShell đã được công ty an ninh mạng Symantec tiết lộ trước đó vào tháng 6/2023.
Được viết bằng VBS, module phát tán chịu trách nhiệm phân phối Worm dưới dạng tệp ẩn trong ổ USB cùng với LNK mồi nhử được gán tên ngẫu nhiên. Phần mềm độc hại có tên LitterDrifter do thành phần điều phối ban đầu được đặt tên là “trash.dll”.
Hình 2. Luồng thực thi của LitterDrifter
Trash.dll là thành phần điều phối ban đầu, được khởi chạy đầu tiên và chức năng chính của nó là giải mã và thực thi các module khác cũng như duy trì tính tồn tại ban đầu trong môi trường của nạn nhân. Sau khi thực thi thành công, nó sẽ chạy hai module được trích xuất:
1. Module Spreader: Phân phối phần mềm độc hại trong hệ thống và có khả năng lây lan nó sang các môi trường khác bằng cách ưu tiên lây nhiễm ổ đĩa logical với mediatype=NULL, thường được liên kết với phương tiện di động USB.
2. Module C2: Truy xuất địa chỉ IP của máy chủ C2 bằng cách tạo tên miền phụ ngẫu nhiên của máy chủ C2 tích hợp, đồng thời duy trì tùy chọn sao lưu để truy xuất địa chỉ IP C2 từ kênh Telegram. Mục đích chính của nó là thiết lập liên lạc với máy chủ C2 của kẻ tấn công và thực thi các payload đến.
Kỹ thuật Dumpster Diving
Thành phần điều phối (được gọi là Deobfuscoder) bị xáo trộn nhiều và được xây dựng từ một chuỗi strings có chức năng làm xáo trộn thay thế ký tự. Nó bao gồm 7 hàm chức năng và tên biến bị xáo trộn. Trong suốt quá trình chạy hành động “Deobfucate”, LitterDrifter gọi một hàm trì hoãn việc thực thi trong vài giây (thời gian chính xác thay đổi tùy theo mẫu) để tạm thời dừng các hành động sau:
1. Hàm main lấy hai chuỗi được mã hóa (hai thành phần độc hại còn lại) làm tham số. Sau đó, nó khai báo hai đường dẫn trong thư mục “Favorites” của người dùng, được thiết kế để lưu trữ 2 tập lệnh được giải mã từ 2 thành phần được mã hóa khác của VBS.
2. Để đảm bảo tính bền vững của nó, Deobfuscoder tạo một bản sao của tập lệnh gốc vào một tệp ẩn có tên “trash.dll” trong thư mục của người dùng.
3. Tập lệnh giải mã các chuỗi được mã hóa được cung cấp và ghi chúng vào thư mục Favorites dưới dạng “jersey.webm”, thành phần payload và “jaw.wm”, thành phần module Spreader (tên và phần mở rộng của tệp cũng như vị trí bên trong %userprofile% khác nhau giữa các biến thể).
4. Sau khi tạo các tệp này, phần mềm độc hại tiến hành thiết lập các tác vụ theo lịch trình cho từng thành phần, đảm bảo chúng được thực thi thường xuyên. Ngoài ra, nó còn thêm một mục nhập vào các mục khởi động của người dùng trong Registry để đảm bảo chúng chạy khi khởi động.
Cả tác vụ và mục khởi động đều được ngụy trang bằng các tên gọi có vẻ kỹ thuật như “RunFullMemoryDiagnostic” và “ProcessMemoryDiagnosticEvents” để trông như hợp pháp và tránh gây nghi ngờ.
Hình 3. Phần đã được giải mã của chức năng chính Deobfuscoder
Phân tích module Spreader
Bản chất cốt lõi của module Spreader nằm ở việc truy cập theo một vòng lặp các thư mục con trong mỗi ổ đĩa và tạo các lối tắt giải mã LNK, cùng với bản sao ẩn của tệp “trash.dll”.
Hình 4. Trash.dll được phân phối dưới dạng tệp ẩn trong ổ USB cùng với LNK mồi nhử
Sau khi thực thi, module này sẽ truy vấn các ổ đĩa logical của máy tính bằng Công cụ quản lý Windows (WMI) và tìm kiếm các ổ đĩa có giá trị “MediaType” được đặt thành “null”, một phương pháp thường được sử dụng để xác định ổ USB di động.
Hình 5. Module Spreader của LitterDrifter
Đối với mỗi ổ đĩa được phát hiện, module Spreader sẽ gọi hàm “createShortcutsInSubfolders”. Đối với mỗi thư mục con, nó sử dụng hàm “CreateShortcut” như một phần của “Create LNK”, chịu trách nhiệm tạo lối tắt với các thuộc tính cụ thể. Các phím tắt này là các tệp LNK được đặt tên ngẫu nhiên được chọn từ một mảng trong mã.
Các tệp LNK sử dụng wscript.exe để thực thi “trash.dll” với các đối số được chỉ định “ ”“trash.dll”“ /webm //e:vbScript //b /wm /cal ”. Ngoài việc tạo lối tắt, chức năng này còn tạo một bản sao ẩn của “trash.dll” trong thư mục con.
Hình 6. Một hàm trong module Spreader được sử dụng để lặp lại các thư mục con
Phân tích module C2
Cách tiếp cận của Gamaredon đối với máy chủ C2 khá độc đáo, vì nó sử dụng tên miền làm phần giữ chỗ cho các địa chỉ IP lưu hành thực sự được sử dụng làm máy chủ C2.
Trước khi cố gắng liên hệ với máy chủ C2, tập lệnh sẽ kiểm tra thư mục %TEMP% để tìm tệp cấu hình C2 hiện có với tên được mã hóa cứng trong phần mềm độc hại. Nó hoạt động như một cơ chế tự kiểm tra phần mềm độc hại, xác minh xem nó đã lây nhiễm vào máy tính hay chưa.
Nếu có, việc thực thi hiện tại có thể chỉ đơn giản là việc thực thi theo lịch trình được kích hoạt. Nếu không có tệp cấu hình hiện có, phần mềm độc hại sẽ kết nối đến một trong các miền của Gamaredon bằng truy vấn WMI: select * from win32_pingstatus where address='Write<random_2_digit_number>.ozaharso.ru’. Phần mềm độc hại sẽ trích xuất IP cho tên miền từ phản hồi cho truy vấn và lưu nó vào tệp cấu hình mới.
Hình 7. LitterDrifter truy xuất địa chỉ IP C2 bằng truy vấn WMI
LitterDrifter sử dụng bộ đếm lỗi (Fail Counter) để chọn phương pháp C2 nào phù hợp. Bộ đếm này sẽ tăng lên mỗi khi C2 không trả về được payload hoặc kênh dự phòng Telegram, từ đó LitterDrifter trích xuất một C2 thay thế. Luồng của mã gợi ý câu trả lời đầu tiên trả về thường là ID kênh Telegram, được lưu trong tệp sao lưu. Dựa trên số lần thất bại, LitterDrifter chọn C2 nào để kết nối:
- Nếu bộ đếm lỗi hiện được đặt thành 0, yêu cầu sẽ được thực hiện tới tệp được lưu trong tệp cấu hình.
- Nếu bộ đếm lỗi hiện được đặt thành 1, LitterDrifter sẽ cố gắng giải quyết miền C2 được nhúng của nó bằng truy vấn WMI.
- Nếu bộ đếm lỗi được đặt thành 2, LitterDrifter sẽ cố gắng kết nối với C2 được trích xuất từ kênh sao lưu Telegram, sử dụng một User Agent khác và HTTP Referer của https://www.interfax.ru/tags/, là một trang tin tức khác của Nga. Từ đó, nó trích xuất một địa chỉ IP được sử dụng làm C2.
Hình 8. Kênh Telegram của Gamaredon che giấu địa chỉ IP C2
Nếu tìm thấy payload trong phản hồi C2, LitterDrifter sẽ cố gắng giải mã nó. Dựa trên phân tích của các nhà nghiên cứu, payload không được tải xuống hầu hết các mục tiêu.
Cơ sở hạ tầng
Trong quá trình phân tích, các nhà nghiên cứu của Check Point nhận thấy các mô hình khác biệt trong cơ sở hạ tầng được Gamaredon sử dụng trong hoạt động này. Điều này bao gồm các mẫu đăng ký, vì tất cả tên miền LitterDrifter của Gamaredon sử dụng đều được đăng ký bởi REGRU-RU và là một phần của tên miền cấp cao nhất (TLD) .ru. Những phát hiện này phù hợp với các báo cáo trước đây về cơ sở hạ tầng của Gamaredon.
Trong chiến dịch LitterDrifter, module C2 nhận được phân giải cho tên miền do Gamaredon sở hữu thông qua truy vấn WMI. Nó làm như vậy bằng cách tạo ra một tên miền phụ ngẫu nhiên của một miền được mã hóa cứng, sử dụng các từ và chữ số ngẫu nhiên. Một số tên miền chỉ có một vài tên miền phụ, trong khi những tên miền khác có hàng trăm tên miền.
Hình 9. Số lượng tên miền phụ trên mỗi tên miền
Truy vấn WMI tới tên miền của Gamaredon trả về một địa chỉ IP được sử dụng làm C2 hoạt động của chiến dịch. Trung bình, một địa chỉ IP duy trì hoạt động trong khoảng 28 giờ. Tuy nhiên, địa chỉ IP đóng vai trò là C2 hoạt động thường thay đổi nhiều lần trong ngày (tất cả các địa chỉ IP được sử dụng có thể nằm trong cùng một mạng con).
Hình 10. Số lượng địa chỉ IP C2 mỗi ngày trong 2 tháng qua
Diễn biến liên quan
Chiến dịch tấn công của LitterDrifter được biết đến sau khi Trung tâm Điều phối An ninh mạng Quốc gia Ukraine (NCSCC) tiết lộ các cuộc tấn công được thực hiện bởi các tin tặc do Chính phủ Nga bảo trợ nhằm vào các đại sứ quán trên khắp châu Âu, bao gồm Ý, Hy Lạp, Romania và Azerbaijan.
Các cuộc xâm nhập được cho là do nhóm tin tặc APT29 (còn gọi là BlueBravo, Cloaked Ursa, Cosy Bear, Iron Hemlock, Midnight Blizzard và The Dukes), liên quan đến việc khai thác lỗ hổng WinRAR được tiết lộ gần đây (CVE-2023-38831) thông qua các tệp mồi nhử thông tin liên quan đến mua bán xe BMW, một chủ đề mà hãng đã từng áp dụng trước đây.
Chuỗi tấn công bắt đầu bằng việc gửi cho nạn nhân các email lừa đảo có chứa liên kết đến tệp ZIP được tạo đặc biệt, khi khởi chạy sẽ khai thác lỗ hổng để lấy tập lệnh PowerShell từ máy chủ từ xa được lưu trữ trên Ngrok.
NCSCC cho biết: “Xu hướng khai thác lỗ hổng CVE-2023-38831 đáng lo ngại của các nhóm tin tặc của tình báo Nga cho thấy mức độ phổ biến và tinh vi ngày càng tăng của nó”. Đầu tuần này, Trung tâm Ứng phó khẩn cấp máy tính Ukraine (CERT-UA) đã phát hiện ra một chiến dịch lừa đảo phân phối các kho lưu trữ RAR độc hại giả dạng dưới dạng tài liệu PDF từ Cục An ninh và tình báo Ukraine, nhưng trên thực tế, đó là một tệp thực thi dẫn đến đến việc triển khai Remcos RAT.
CERT-UA đang theo dõi hoạt động với biệt danh UAC-0050, hoạt động này cũng có liên quan đến một loạt cuộc tấn công mạng khác nhằm vào các cơ quan nhà nước trong nước để cung cấp Remcos RAT vào tháng 02/2023.
Kết luận
Trong bài viết này đã khám phá hoạt động bên trong của loại Worm mới được xác định gần đây, bao gồm hai thành phần chính là module Spreader và module C2. Rõ ràng LitterDrifter được thiết kế để hỗ trợ hoạt động thu thập trên quy mô lớn. Nó tận dụng các kỹ thuật đơn giản nhưng hiệu quả để đảm bảo có thể đạt được nhiều mục tiêu nhất có thể trong khu vực tấn công.
LitterDrifter có vẻ như là một phần mềm độc hại tương đối đơn giản. Tuy nhiên, sự đơn giản này cũng phù hợp với mục tiêu của nó, phản ánh cách tiếp cận tổng thể của Gamaredon. Phương pháp này đã chứng tỏ tính hiệu quả đáng kể, bằng chứng là các hoạt động duy trình tính bền vững của nhóm tin tặc này với các mục tiêu tại Ukraine.
Hồng Đạt
(Tổng hợp)