Máy chủ SQL bị tấn công
Khi điều tra các vụ lây nhiễm PassiveNeuron trong cả năm 2024 và 2025, các nhà nghiên cứu phát hiện ra rằng phần lớn các máy tính bị nhắm mục tiêu đều đang chạy Windows Server. Cụ thể, trong một trường hợp cụ thể, Kaspersky đã quan sát thấy kẻ tấn công có được khả năng thực thi lệnh từ xa ban đầu trên máy chủ bị xâm nhập thông qua phần mềm Microsoft SQL.
Mặc dù không rõ cách thức tin tặc có thể lạm dụng cụ thể như thế nào, nhưng cần lưu ý rằng các máy chủ SQL thường bị xâm nhập thông qua các điểm yếu sau: khai thác lỗ hổng trong chính phần mềm máy chủ, khai thác lỗ hổng SQL injection tồn tại trong các ứng dụng chạy trên máy chủ và truy cập vào tài khoản quản trị cơ sở dữ liệu (ví dụ bằng cách tấn công Brute Force để lấy được mật khẩu) và sử dụng nó để thực hiện các truy vấn SQL độc hại.
Sau khi chiếm được khả năng thực thi mã với sự trợ giúp của phần mềm SQL, kẻ tấn công đã triển khai một web shell ASPX để thực thi các lệnh độc hại trên máy bị xâm nhập. Tuy nhiên, ở giai đoạn này, mọi thứ đã không diễn ra như dự định của chúng. Theo Kaspersky, giải pháp bảo mật của hãng đã ngăn chặn nỗ lực triển khai web shell. Để tránh bị phát hiện, kẻ tấn công thực hiện cài đặt theo cách sau:
1. Chèn một tệp chứa shell web mã hóa Base64 vào hệ thống.
2. Chèn một script PowerShell chịu trách nhiệm giải mã Base64.
3. Khởi chạy script PowerShell để cố gắng ghi payload shell web đã giải mã vào hệ thống tệp.
Khi các giải pháp của Kaspersky ngăn chặn việc cài đặt web shell, các nhà nghiên cứu quan sát thấy kẻ tấn công lặp lại các bước trên nhiều lần với những điều chỉnh nhỏ, chẳng hạn như sử dụng mã hóa thập lục phân của web shell thay vì Base64, sử dụng script VBS thay vì PowerShell để thực hiện giải mã và viết nội dung script theo từng dòng.
Không triển khai được web shell, kẻ tấn công quyết định sử dụng các loại mã độc tiên tiến hơn để tiếp tục quá trình xâm nhập.
Phần mềm độc hại
Trong hai năm qua, các nhà nghiên cứu đã quan sát thấy ba loại phần mềm độc hại được sử dụng trong chiến dịch PassiveNeuron, đó là: Neursite, một backdoor mô-đun C++ tùy chỉnh được sử dụng cho các hoạt động gián điệp mạng; NeuralExecutor, mã độc .NET tùy chỉnh được sử dụng để thực thi các payload .NET bổ sung; Cobalt Strike, một công cụ thương mại dành cho nhóm Red team.
Mặc dù phát hiện nhiều cách kết hợp khác nhau của các mã độc này được triển khai trên các máy mục tiêu, các nhà nghiên cứu nhận thấy rằng trong phần lớn các trường hợp, chúng được chèn thông qua một chuỗi các trình tải DLL. Trình tải giai đoạn đầu tiên là một tệp DLL đặt trong thư mục hệ thống. Một số đường dẫn tệp DLL này là: C:\Windows\System32\wlbsctrl.dll, C:\Windows\System32\TSMSISrv.dll và C:\Windows\System32\oci.dll.
Việc lưu trữ DLL theo các đường dẫn trên mang lại lợi ích cho kẻ tấn công, vì việc đặt các thư viện có tên này bên trong thư mục System32 giúp tự động đảm bảo tính bền vững. Nếu có trên hệ thống tệp, các DLL sẽ tự động được tải khi khởi động (hai DLL đầu tiên được tải vào tiến trình svchost.exe, trong khi DLL thứ hai được tải vào msdtc.exe) bởi kỹ thuật Phantom DLL Hijacking.
Cũng cần lưu ý rằng, các tệp DLL có kích thước hơn 100 MB, kích thước của chúng được kẻ tấn công tăng lên một cách giả mạo bằng cách thêm các byte junk overlay. Thông thường, điều này được thực hiện để các giải pháp bảo mật khó phát hiện các phần mềm độc hại.
Khi khởi động, DLL giai đoạn đầu sẽ lặp lại danh sách network adapter đã cài đặt, tính toán hàm băm 32-bit của địa chỉ MAC. Nếu không có địa chỉ MAC nào bằng giá trị được chỉ định trong cấu hình, trình tải sẽ thoát. Điều này nhằm đảm bảo các DLL chỉ được khởi chạy trên máy nạn nhân dự định, nhằm ngăn chặn việc thực thi trong môi trường sandbox. Việc thu hẹp chi tiết các nạn nhân như vậy cho thấy kẻ tấn công quan tâm đến các tổ chức cụ thể và một lần nữa nhấn mạnh bản chất mục tiêu của mối đe dọa này.
Sau khi kiểm tra xem nó có đang hoạt động trên máy mục tiêu hay không, trình tải tiếp tục thực thi bằng cách thêm một DLL giai đoạn hai được lưu trữ trên ổ đĩa. Các nhà nghiên cứu quan sát thấy các DLL này cũng có kích thước tệp tăng lên một cách giả mạo (vượt quá 60 MB), mục tiêu độc hại là mở một tệp văn bản chứa trình tải giai đoạn ba mã hóa Base64 và AES, sau đó khởi chạy nó.

Hình 1. Ví dụ về nội dung tệp payload
Payload này cũng là một DLL, chịu trách nhiệm khởi chạy trình tải shellcode giai đoạn bốn bên trong một tiến trình khác (ví dụ WmiPrvSE.exe hoặc msiexec.exe) được tạo ở chế độ “tạm dừng”. Đổi lại, shellcode này tải payload cuối cùng là một tệp PE được chuyển đổi sang định dạng thực thi tùy chỉnh.
.png)
Hình 2. Payload cuối cùng
Backdoor Neurosite
Trong số ba gói tin chèn payload cuối cùng đã đề cập ở trên, backdoor Neursite là tinh vi nhất. Các nhà nghiên cứu đặt tên cho nó như vậy vì đã quan sát thấy đường dẫn mã nguồn sau bên trong các mẫu được phát hiện: E:\pro\code\Neursite\client_server\nonspec\mbedtls\library\ssl_srv.c. Cấu hình của gói tin này bao gồm các tham số:
- Danh sách các máy chủ điều khiển và ra lệnh (C2) cũng như cổng của chúng.
- Danh sách các proxy HTTP kết nối với máy chủ C2.
- Danh sách các tiêu đề HTTP kết nối với máy chủ C2 dựa trên HTTP.
- Một URL để giao tiếp với các máy chủ C2 dựa trên HTTP.
- Khoảng thời gian chờ giữa hai kết nối máy chủ C2 liên tiếp.
- Mảng byte chứa giờ và ngày trong tuần khi backdoor có thể hoạt động.
- Một cổng tùy chọn được mở để lắng nghe các kết nối đến.
Phần mềm độc hại Neursite có thể sử dụng các giao thức TCP, SSL, HTTP và HTTPS cho giao tiếp C2. Theo cấu hình, Neursite kết nối trực tiếp với máy chủ C2 hoặc chờ máy khác bắt đầu giao tiếp qua một cổng được chỉ định. Trong các trường hợp quan sát, các mẫu Neursite được cấu hình để sử dụng máy chủ bên ngoài hoặc cơ sở hạ tầng nội bộ bị xâm phạm cho giao tiếp C2.
Phạm vi lệnh mặc định triển khai bên trong backdoor này cho phép kẻ tấn công lấy thông tin hệ thống, quản lý các tiến trình đang chạy và tạo điều kiện cho chuyển động ngang hàng trong hệ thống mạng.
Ngoài ra, phần mềm độc hại này còn được trang bị một thành phần khác cho phép tải các plugin bổ sung. Kaspersky quan sát thấy kẻ tấn công triển khai các plugin có các khả năng như thực thi lệnh shell, quản lý hệ thống tệp tin và hoạt động của socket TCP.
Mã độc NeuralExecutor
NeuralExecutor là một backdoor tùy chỉnh khác được triển khai trong Chiến dịch PassiveNeuron. Mã độc dựa trên .NET và sử dụng trình mã hóa ConfuserEx nguồn mở để bảo vệ chống lại việc phân tích. Ngoài ra, NeuralExecutor triển khai nhiều phương thức giao tiếp mạng, cụ thể là TCP, HTTP/HTTPS, named pipe và WebSocket. Sau khi thiết lập kênh giao tiếp với máy chủ C2, backdoor có thể nhận lệnh cho phép nó tải các tập lệnh .NET. Do đó, khả năng chính của backdoor này là nhận các payload .NET bổ sung từ mạng và thực thi chúng.
Sự quy kết
Cả Neursite và NeuralExecutor, hai mã độc tùy chỉnh mà Kaspersky phát hiện được sử dụng trong Chiến dịch PassiveNeuron, đều chưa từng được phát hiện trong bất kỳ cuộc tấn công mạng nào trước đây. Các nhà nghiên cứu phải tìm kiếm manh mối có thể gợi ý về tác nhân đe dọa đứng sau PassiveNeuron.
Khi bắt đầu điều tra PassiveNeuron vào năm 2024, các nhà nghiên cứu phát hiện ra một manh mối rõ ràng như Hình 3 dưới đây.

Hình 3. Tên hàm được tìm thấy bên trong NeuralExecutor
Trong code của các mẫu NeuralExecutor quan sát được vào năm 2024, tên của tất cả các hàm đã được thay thế bằng các chuỗi có tiền tố là “Супер обфускатор”, tạm dịch trong tiếng Anh là “Super obfuscator”. Tuy nhiên, điều quan trọng cần lưu ý là chuỗi này đã được kẻ tấn công cố tình đưa vào khi sử dụng ConfuserEx obfuscator. Khi nói đến các chuỗi được chèn vào phần mềm độc hại một cách có chủ đích, chúng ta cần đánh giá cẩn thận trong quá trình quy kết.
Điều này là do các tác nhân đe dọa có thể chèn các chuỗi bằng ngôn ngữ khác nhau, nhằm tạo ra các cờ giả để gây nhầm lẫn cho các nhà nghiên cứu và người ứng phó sự cố, khiến họ đưa ra phán đoán sai lầm khi cố gắng quy kết mối đe dọa. Vì lý do đó, các nhà nghiên cứu không coi trọng bằng chứng cho sự hiện diện của chuỗi "Супер обфускатор" vào năm 2024.
Sau khi kiểm tra các mẫu NeuralExecutor được sử dụng vào năm 2025, các nhà nghiên cứu phát hiện chuỗi tiếng Nga đã biến mất. Tuy nhiên, các nhà nghiên cứu thấy một manh mối kỳ lạ khác liên quan đến phần mềm độc hại này. Trong khi các mẫu năm 2024 nhằm mục đích truy xuất địa chỉ máy chủ C2 trực tiếp từ cấu hình, thì các mẫu năm 2025 lại sử dụng kỹ thuật Dead Drop Resolver. Cụ thể, chúng được thiết kế để truy xuất nội dung của một tệp lưu trữ trong kho lưu trữ GitHub và trích xuất một chuỗi từ đó.
.png)
Hình 4. Nội dung của tệp cấu hình được lưu trữ trên GitHub
Phần mềm độc hại định vị chuỗi này bằng cách tìm kiếm hai ký tự phân cách, wtyyvZQYvà stU7BU0R, đánh dấu điểm bắt đầu và kết thúc của dữ liệu cấu hình. Các byte của chuỗi này sau đó được giải mã theo chuẩn Base64 và AES để lấy địa chỉ máy chủ C2.
.png)
Hình 5. Ví dụ về cấu hình của phần mềm độc hại
Điều đáng chú ý là phương pháp chính xác này để lấy địa chỉ máy chủ C2 từ GitHub, sử dụng một chuỗi ký tự chứa các ký tự phân cách, khá phổ biến trong số các tác nhân đe dọa nói tiếng Trung. Ví dụ, các nhà nghiên cứu thường xuyên thấy phương pháp này được sử dụng trong Chiến dịch EastWind có liên quan đến nhóm tin tặc Trung Quốc là APT31 và APT27.
Hơn nữa, trong quá trình điều tra, các nhà nghiên cứu đã tìm hiểu thêm một thông tin thú vị có thể hữu ích cho việc quy kết. Theo đó, Kaspersky quan sát hoạt động triển khai của PassiveNeuron trong một tổ chức cụ thể, từ đó phát hiện ra một DLL độc hại có tên là imjp14k.dll.
Phân tích DLL này cho thấy nó có đường dẫn PDB G:\Bee\Tree(pmrc)\Src\Dll_3F_imjp14k\Release\Dll.pdb. Chuỗi PDB này đã được Cisco Talos tham chiếu đến trong một báo cáo về các hoạt động có khả năng liên quan đến tác nhân đe dọa APT41. Hơn nữa, các nhà nghiên cứu xác định rằng DLL được phát hiện thể hiện cùng một hành vi độc hại như được mô tả trong báo cáo của Cisco Talos. Tuy nhiên, vẫn chưa rõ lý do tại sao DLL này được tải lên máy mục tiêu. Có thể những kẻ tấn công triển khai nó để thay thế cho các phần mềm độc hại liên quan đến PassiveNeuron hoặc nó được một tác nhân khác sử dụng để xâm nhập vào tổ chức, cùng lúc với những kẻ tấn công đứng sau PassiveNeuron.
Nhìn chung, các TTP của Chiến dịch PassiveNeuron khá giống với các chỉ số thường được các tác nhân đe dọa Trung Quốc sử dụng. Vì TTP thường khó giả mạo hơn các chỉ số như chuỗi, nên hiện tại các nhà nghiên cứu đang quy kết Chiến dịch PassiveNeuron cho một tác nhân đe dọa nói tiếng Trung, mặc dù với mức độ tin cậy thấp.
Kết luận
Chiến dịch PassiveNeuron đặc biệt ở chỗ nó chủ yếu nhắm vào các máy chủ. Đặc biệt là những máy chủ được kết nối Internet, thường là mục tiêu béo bở cho các cuộc tấn công APT, vì chúng có thể đóng vai trò là điểm xâm nhập vào các tổ chức mục tiêu. Do đó, việc bảo vệ các hệ thống máy chủ là vô cùng quan trọng. Bất cứ khi nào có thể, bề mặt tấn công liên quan đến những máy chủ này nên được giảm thiểu tối đa và tất cả các ứng dụng nên được giám sát để ngăn chặn kịp thời các cuộc tấn công mới phát sinh.
Cần đặc biệt chú ý bảo vệ các ứng dụng khỏi các cuộc tấn công SQL injection, thường bị các tác nhân đe dọa khai thác để chiếm quyền truy cập ban đầu. Một vấn đề khác nên tập trung là bảo vệ chống lại các web shell, được triển khai để tạo điều kiện cho việc xâm nhập máy chủ.
