Tổng quan
Pikabot là một loại phần mềm độc hại được các tác nhân đe dọa tích cực sử dụng trong các chiến dịch thư rác mà Trend Micro đã theo dõi trong quý đầu tiên của năm 2023. Thời gian trước đó, các nhà nghiên cứu từng ghi nhận những điểm tương đồng mạnh mẽ của Pikabot với Qakbot - Phần mềm độc hại đã bị các cơ quan thực thi pháp luật gỡ bỏ vào tháng 8/2023. Số lượng chiến dịch lừa đảo liên quan đến Pikabot đã gia tăng trong quý cuối cùng của năm 2023, trùng với thời điểm Qakbot bị đánh sập, điều này gợi ý về nhận định Pikabot có thể là sự thay thế của phần mềm độc hại Qakbot.
Các nhà phát triển Pikabot đã triển khai các chiến dịch lừa đảo, nhắm mục tiêu vào nạn nhân thông qua hai thành phần của nó, một trình tải và một mô-đun core, cho phép truy cập từ xa trái phép và thực thi các lệnh tùy ý thông qua kết nối đã thiết lập với máy chủ điều khiển và ra lệnh (C2) của họ. Pikabot thực thi nhiều giai đoạn phức tạp với trình tải và mô-đun core trong cùng một tệp, cũng như shellcode để giải mã một tệp DLL khác từ payload của phần mềm độc hại. Bên cạnh đó, Pikabot còn có quyền truy cập ban đầu vào máy tính của nạn nhân thông qua các email spam có chứa kho lưu trữ hoặc tệp đính kèm PDF.
Nhìn chung, các tin tặc Water Curupira tiến hành các chiến dịch độc hại với mục đích chèn các backdoor như Cobalt Strike, dẫn đến các cuộc tấn công mã độc tống tiền Black Basta (trùng hợp thay, Black Basta cũng quay trở lại hoạt động vào tháng 9/2023). Kẻ tấn công đã thực hiện một số chiến dịch email spam DarkGate và chiến dịch IcedID trong những tuần đầu của quý 3/2023, nhưng kể từ đó đã chuyển hướng độc quyền sang Pikabot.
Hình 1. Chuỗi lây nhiễm của Pikabot
Truy cập ban đầu qua email
Các tin tặc gửi những email này thông qua kỹ thuật chiếm quyền điều khiển, đây là một kỹ thuật mà trong đó kẻ tấn công sử dụng các chuỗi email hiện có (có thể bị đánh cắp từ các nạn nhân trước đó) và tạo các email giả mạo để đánh lừa người nhận tin rằng chúng là hợp pháp, từ đó có thể khiến các nạn nhân bị lây nhiễm khi mở các tệp đính kèm độc hại.
Ngoài ra, các tin tặc gửi những email này bằng địa chỉ (được tạo thông qua tên miền mới hoặc dịch vụ email miễn phí) với những tên có thể tìm thấy trong chuỗi email gốc bị tác nhân độc hại chiếm đoạt. Email chứa hầu hết nội dung gốc, bao gồm cả chủ đề email, nhưng thêm một thông báo ngắn ở trên cùng hướng dẫn người nhận mở tệp đính kèm email. Đây là một kho lưu trữ ZIP được bảo vệ bằng mật khẩu chứa tệp IMG hoặc PDF. Thành phần độc hại bao gồm mật khẩu trong thông báo email.
Lưu ý rằng tên của tệp đính kèm và mật khẩu của nó khác nhau tùy theo từng nội dung của email. Trong khi đó, email chứa tệp PDF có thông báo ngắn hơn yêu cầu người nhận kiểm tra hoặc xem tệp đính kèm email.
Hình 2. Ví dụ về email có tệp đính kèm ZIP độc hại
Hình 3. Ví dụ về email có tệp đính kèm PDF độc hại
Giai đoạn đầu tiên của cuộc tấn công
Tệp lưu trữ đính kèm chứa JavaScript bị xáo trộn nghiêm trọng với kích thước tệp hơn 100 KB. Sau khi nạn nhân mở tệp, tập lệnh (script) này sẽ được thực thi bằng cmd.exe
Hình 4. Các tệp được giải nén vào kho lưu trữ đính kèm (.ZIP hoặc .IMG)
Hình 5. Lệnh JavaScript được giải mã
Nếu nỗ lực ban đầu không thành công, tập lệnh thực hiện các bước sau: Lặp lại một chuỗi được chỉ định tới bảng điều khiển và cố gắng thực hiện “ping” một mục tiêu đã chỉ định bằng chính chuỗi đó. Trong trường hợp lệnh ping không thành công, tập lệnh sẽ sử dụng Curl.exe để tải xuống payload Pikabot từ máy chủ bên ngoài, lưu tệp vào thư mục tạm thời của hệ thống.
Sau đó, tập lệnh thử lại lệnh ping. Nếu việc này cũng không thành công, tập lệnh sẽ sử dụng rundll32.exe để thực thi payload Pikabot đã tải xuống (hiện được xác định là tệp .dll) với tham số trích xuất là “Crash”. Chuỗi lệnh kết thúc bằng mã lệnh ciCf51U2FbrvK.
Trend Micro cho biết đã quan sát một chuỗi tấn công khác mà trong đó các tác nhân độc hại thực hiện một nỗ lực đơn giản hơn để phân phối payload. Nếu như trước đây, các kỹ thuật lừa đảo tương tự đã được thực hiện để đánh lừa nạn nhân tải xuống và thực thi các tệp đính kèm độc hại. Trong trường hợp này, các tệp đính kèm lưu trữ được bảo vệ bằng mật khẩu đã được triển khai, với mật khẩu có trong nội dung email.
Tuy nhiên, thay vì một tập lệnh độc hại, một tệp IMG đã được trích xuất từ tệp đính kèm. Tệp này chứa hai tệp bổ sung là tệp LNK giả dạng tài liệu Word và tệp DLL, thực tế đây chính là payload Pikabot được trích xuất trực tiếp từ tệp đính kèm email.
Hình 6. Nội dung của tệp IMG
Trái ngược với tệp JavaScript được quan sát trước đó, chuỗi tấn công này duy trì cách tiếp cận đơn giản ngay cả trong khi thực thi payload. Khi nạn nhân bị dụ dỗ mở tệp LNK, tiến trình rundll32.exe sẽ thực thi payload Pikabot DLL bằng cách sử dụng tham số trích xuất “Limit”.
Nội dung của tệp PDF được ngụy trang trông giống như một tệp được lưu trữ trên Microsoft OneDrive để thuyết phục người nhận rằng tệp đính kèm là hợp pháp. Mục đích chính của nó là đánh lừa nạn nhân truy cập vào nội dung tệp PDF, đây là liên kết để tải xuống phần mềm độc hại.
Hình 7. Tệp PDF độc hại được ngụy trang trông giống như tệp đính kèm OneDrive, lưu ý lỗi chính tả của từ “Download”
Đáng chú ý, từ “Download” trong tệp này lại bị viết sai chính tả là “Dowland”. Khi người dùng chọn nút này để tải xuống, nó sẽ cố gắng truy cập một URL độc hại, sau đó tiến hành tải xuống tệp JavaScript độc hại (có thể giống với tệp JavaScript đã đề cập trước đó).
Việc phân phối payload Pikabot qua tệp đính kèm PDF là một bước phát triển gần đây hơn và chỉ mới diễn ra vào quý 4/2023. Các nhà nghiên cứu cũng đã phát hiện một biến thể bổ sung của trình tải xuống độc hại sử dụng các phương pháp làm xáo trộn liên quan đến việc xử lý mảng (array).
Hình 8. Các phần tử của mảng “_0x40ee” chứa URL tải xuống và các phương thức JavaScript được sử dụng để thực thi bổ sung
Các hàm lồng nhau sử dụng các phương pháp xử lý mảng bằng các lệnh “push” và “shift”, tạo ra sự phức tạp cho cấu trúc của mã và che giấu luồng của nó để cản trở việc phân tích. Sự hiện diện của nhiều URL tải xuống, việc tạo tự động các thư mục ngẫu nhiên bằng lệnh mkdir và sử dụng Curl.exe, như được quan sát trong tập lệnh trước, được gói gọn trong một mảng khác.
JavaScript sẽ chạy nhiều lệnh nhằm truy xuất payload độc hại từ các trang web bên ngoài khác nhau bằng Curl.exe, sau đó lưu trữ nó trong một thư mục ngẫu nhiên được tạo bằng mkdir.
Hình 9. Các lệnh truy xuất payload bằng Curl.exe
Tệp rundll32.exe sẽ tiếp tục đóng vai trò là cơ chế thực thi cho payload, kết hợp với tham số xuất của nó.
Hình 10. Thực thi payload bằng rundll32.exe
Payload Pikabot
Các nhà nghiên cứu đã phân tích tệp DLL từ kho lưu trữ được hiển thị trong Hình 6 và nhận thấy nó là mẫu của tệp DLL 32-bit với 1515 lần trích xuất. Gọi hàm trích xuất của nó là “Limit”, tệp sẽ giải mã và thực thi shellcode để xác định xem tiến trình có đang được gỡ lỗi (debug) hay không bằng cách gọi Windows API NtQueryInformationProcess hai lần với cờ 0x7 (ProcessDebugPort) trong lệnh gọi đầu tiên và 0x1F (ProcessDebugFlags) trong lệnh gọi thứ hai. Shellcode này cũng giải mã một tệp DLL khác mà nó tải vào bộ nhớ và cuối cùng thực thi.
Hình 11. Shellcode gọi điểm vào của tệp DLL được giải mã
Tệp DLL được giải mã sẽ thực thi một quy trình chống phân tích khác bằng cách tải các thư viện không chính xác và các tệp rác khác để phát hiện sandbox. Hành vi này dường như được sao chép từ một bài viết GitHub công khai trên mạng.
Sau khi thực hiện quy trình chống phân tích, phần mềm độc hại tải một tập hợp hình ảnh PNG từ phần tài nguyên chứa một đoạn mã hóa của mô-đun core, sau đó giải mã chúng. Khi payload core đã được giải mã, Pikabot sẽ tạo một tiến trình %System%\SearchProtocolHost và đưa mô-đun core vào đó. Phần mềm độc hại sử dụng các lệnh gọi hệ thống gián tiếp để ẩn việc thực thi này.
Hình 12. Tải hình ảnh PNG để xây dựng mô-đun core
Giải quyết các API cần thiết là một trong những hành động ban đầu của phần mềm độc hại. Bằng cách sử dụng hàm băm của từng API (0xF4ACDD8, 0x03A5AF65E và 0xB1D50DE4), Pikabot sử dụng hai hàm để lấy địa chỉ của ba API cần thiết là GetProcAddress, LoadLibraryA và HeapFree. Phần còn lại của các API đã sử dụng được xử lý bằng GetProcAddress với các chuỗi được giải mã. Các chuỗi thích hợp khác cũng được giải mã trong thời gian thực thi.
Hình 13. Khai thác API GetProcAddress và LoadLibrary
Mô-đun core Pikabot kiểm tra ngôn ngữ của hệ thống và dừng thực thi nếu đó là tiếng Nga hoặc tiếng Ukraine. Sau đó, mô-đun sẽ đảm bảo rằng chỉ có một phiên bản của chính nó đang chạy bằng cách tạo một mutex được mã hóa cứng, {A77FC435-31B6-4687-902D-24153579C738}.
Giai đoạn tiếp theo của mô-đun core liên quan đến việc lấy thông tin chi tiết về hệ thống của nạn nhân và chuyển tiếp chúng đến máy chủ C2. Dữ liệu thu thập sử dụng định dạng JSON, trong đó mọi mục dữ liệu đều sử dụng hàm wsprintfW. Dữ liệu bị đánh cắp được minh họa qua Hình 14.
Hình 14. Thông tin bị đánh cắp ở định dạng JSON trước khi mã hóa
Phần mềm độc hại Pikabot tạo một đường dẫn có tên và sử dụng nó để lưu trữ tạm thời thông tin bổ sung được thu thập bằng cách tạo các tiến trình sau:
Mỗi phần thông tin được trả về sẽ được mã hóa trước khi thực hiện tiến trình. Bên cạnh đó, danh sách các tiến trình đang chạy trên hệ thống cũng sẽ được tập hợp và mã hóa bằng cách gọi hàm CreateToolHelp32Snapshot và liệt kê các tiến trình thông qua Process32First và Process32Next .
Sau khi tất cả thông tin được thu thập, nó sẽ được gửi đến một trong các địa chỉ IP sau được gắn với URL cụ thể, “cervicobrachial/oIP7xH86DZ6hb?vermixUnintermixed=beatersVerdigrisy&backoff=9zFPSr”:
Máy chủ C2
Như đã đề cập, các tin tặc Water Curupira tiến hành các chiến dịch độc hại nhằm chèn các backdoor như Cobalt Strike, dẫn đến các cuộc tấn công mã độc tống tiền Black Basta. Chính sự liên kết này với phần mềm độc hại tinh vi như đã khiến các chiến dịch Pikabot trở nên đặc biệt nguy hiểm.
Cuối cùng, các nhà nghiên cứu đã quan sát thấy các cụm đèn hiệu (beacon) Cobalt Strike riêng biệt với hơn 70 tên miền dẫn đến thực thi mã độc tống tiền Black Basta.
Khuyến nghị bảo mật
Để tránh trở thành nạn nhân của các mối đe dọa trực tuyến khác nhau như lừa đảo và phần mềm độc hại, người dùng nên cảnh giác với các họ nhận được. Dưới đây là một số phương pháp về bảo mật email của người dùng.
Xuân Hậu
(Tổng hợp)
09:00 | 27/10/2023
08:00 | 12/01/2024
07:00 | 27/12/2023
07:00 | 08/04/2024
07:00 | 17/10/2024
Các tin tặc Triều Tiên mới đây đã bị phát hiện đang phân phối một Trojan truy cập từ xa (RAT) và backdoor chưa từng được ghi nhận trước đây có tên là VeilShell, như một phần của chiến dịch tấn công mạng nhắm vào các cơ quan, tổ chức tại Campuchia và các quốc gia Đông Nam Á khác.
07:00 | 23/09/2024
Theo hãng bảo mật Doctor Web (Nga), tin tặc đã sử dụng mã độc Android.Vo1d để cài đặt backdoor trên các TV box, cho phép chúng chiếm quyền kiểm soát thiết bị hoàn toàn, sau đó tải và thực thi các ứng dụng độc hại khác. Được biết, các TV box này chạy hệ điều hành Android đã lỗi thời.
14:00 | 05/08/2024
Các chuyên gia bảo mật vừa phát hiện chiến dịch độc hại nhằm vào thiết bị Android toàn cầu, sử dụng hàng nghìn bot Telegram để lây nhiễm mã độc đánh cắp mã OTP của người dùng tại 113 quốc gia.
15:00 | 15/07/2024
Các nhà nghiên cứu bảo mật tới từ công ty an ninh mạng XLab (Slovenia) mới đây đã phát hiện ra một mạng botnet mới có tên Zergeca được viết bằng ngôn ngữ Golang, có khả năng thực hiện các cuộc tấn công từ chối dịch vụ phân tán (DDoS) một cách mạnh mẽ.
Một lỗ hổng bảo mật hiện đã được vá trong ứng dụng ChatGPT của OpenAI dành cho macOS có thể cho phép kẻ tấn công cài phần mềm gián điệp vào bộ nhớ của công cụ trí tuệ nhân tạo (AI).
11:00 | 24/10/2024