Một đối tượng đã cài đặt trợ lý AI phổ biến trên một máy chủ thuê, tắt chế độ yêu cầu quyền trước khi chạy các lệnh nguy hiểm và nhắm mục tiêu vào Bộ Tài chính Thái Lan, cơ quan quản lý ngân quỹ và thu thuế của quốc gia này.
Sau đó, AI Agent này đã tự mình hoạt động trong mạng lưới của bộ, kiểm tra các máy chủ để tìm cách giành quyền root, lục soát các hệ thống tệp và thu thập dữ liệu từ thư mục hồ sơ nhân sự của nhân viên từ năm 2012.
Kẻ vận hành đã để lại nhật ký (logs) của chính AI Agent trên một máy chủ web với tính năng liệt kê thư mục (directory listing) được bật. Tại đây, công ty tình báo mối đe dọa Hunt.io và nhà nghiên cứu Bob Diachenko đã tìm thấy chúng, cùng với 585 tệp và 470 MB công cụ tấn công.
Công cụ này là Hermes, một trợ lý mã nguồn mở từ Nous Research mà người dùng thường cài đặt để quản lý email, thực hiện các công việc vặt và nhận chỉ thị qua Telegram hoặc Slack. Đây không phải là một công cụ hack và không có lỗ hổng nào trong bản thân nó được báo cáo ở đây.
Chế độ mà kẻ vận hành đã sử dụng, gọi là YOLO, là một tính năng đã được tài liệu hóa với cờ dòng lệnh riêng. Đây chính là điểm khác biệt của trường hợp này so với các cuộc tấn công hỗ trợ bởi AI được báo cáo cho đến nay.
Khi Anthropic tiết lộ một nhóm Trung Quốc sử dụng Claude Code để gián điệp vào tháng 11 năm ngoái, những kẻ tấn công đã phải đánh lừa mô hình để nó hợp tác, và Anthropic đã khóa tài khoản của họ ngay khi phát hiện. Tuy nhiên, Hermes chạy trên máy riêng của kẻ vận hành. Không có nhà cung cấp nào giám sát và cũng không có tài khoản nào để khóa.
Kẻ vận hành đã xâm nhập vào bên trong trước khi AI Agent bắt đầu. Hunt.io đã khôi phục được một web shell ẩn được cài đặt trên máy chủ web của bộ, các tập lệnh được viết để chống lại các hệ thống Hadoop nội bộ và mật khẩu hộp thư bị đánh cắp được nhúng cứng vào một tập lệnh kiểm tra thư.
Không có dữ liệu nào trong các tệp được khôi phục cho thấy dữ liệu đã bị rò rỉ ra ngoài mạng và cách thức kẻ vận hành xâm nhập lần đầu vẫn chưa được xác định. CERT quốc gia và cơ quan an ninh mạng của Thái Lan đã được thông báo vào ngày 15 tháng 7; cả hai đều chưa công bố bất kỳ thông tin nào tính đến ngày 24 tháng 7.
Đối với những bên khác, chi tiết hữu ích là những gì các tập lệnh của kẻ vận hành được xây dựng để khai thác: một dịch vụ cơ sở dữ liệu Hadoop được vận chuyển với cấu hình mặc định là chấp nhận bất kỳ mật khẩu nào.
Con người đã thực hiện các phần việc đòi hỏi sự hiểu biết về mục tiêu. Bài phân tích của Hunt.io cho thấy một danh sách mật khẩu được xây dựng từ các tên viết tắt của các bộ phận trong chính bộ này thay vì một từ điển thông thường, và shellcode mang các đường dẫn được nhúng cứng vào mạng nội bộ của bộ.
AI Agent đã thực hiện phần việc lặp đi lặp lại: chạy quét, đọc kết quả đầu ra, quyết định bước kiểm tra tiếp theo và tiếp tục chạy. Không có gì trong tài liệu được khôi phục cho thấy nó tự tìm ra lỗ hổng mới hoặc tự chọn mục tiêu.
Không có lệnh nào trong số đó là lạ lẫm. LinPEAS, một tập lệnh tiêu chuẩn để săn tìm các con đường leo thang đặc quyền trên Linux. Một lệnh tìm kiếm các tệp có quyền hạn nâng cao. Một lệnh duyệt danh mục. Một con người cũng sẽ nhập những thứ tương tự. Điểm thay đổi là không ai cần phải phê duyệt từng lệnh một.
Hermes cung cấp cài đặt đó theo ba cách: cờ --yolo khi khởi chạy, lệnh /yolo giữa phiên làm việc hoặc biến môi trường HERMES_YOLO_MODE=1. Hướng dẫn cấu hình của dự án nói rằng "chỉ sử dụng tính năng này trong môi trường đáng tin cậy, đã được đóng gói (sandboxed)."
Một lớp bảo vệ vẫn tồn tại: một danh sách chặn (blocklist) cứng vẫn từ chối các lệnh có thể xóa sạch máy mà AI Agent đang chạy trên đó. Những gì kẻ vận hành đã tắt là sự kiểm tra của con người, chứ không phải mọi biện pháp an toàn.
AI Agent đã làm những gì
Năm tệp có tên call_00_*.txt chứa các lượt hoạt động của AI Agent: quét lỗ hổng kernel đối với một máy chủ của bộ, lần chạy LinPEAS thứ hai, quét các tệp thực thi có quyền nâng cao, liệt kê hệ thống tệp và quét đệ quy thư mục gốc web thuộc Văn phòng Thư ký Thường trực.
Thư mục đó chứa các tài liệu văn phòng, đánh giá hiệu suất và hồ sơ nhân sự từ năm 2012. Các nhật ký cho thấy AI Agent đang đọc danh mục thư mục. Không có tệp nào trong số đó cho thấy các tệp đã rời khỏi mạng.
Tập lệnh quét được giao cho nó không phải là bản gốc. Một bản linpeas.sh tùy chỉnh đã kiểm tra bốn lỗi kernel Linux năm 2026 trên ba họ lỗi: Copy Fail (CVE-2026-31431), Dirty Frag (CVE-2026-43284 và CVE-2026-43500), và DirtyClone (CVE-2026-43503).
Mỗi lỗi này cho phép người dùng cục bộ có quyền root nếu các điều kiện tiên quyết được đáp ứng, đối với Dirty Frag và DirtyClone là CAP_NET_ADMIN. Tất cả đều mới chỉ xuất hiện vài tuần khi kẻ vận hành dàn dựng chúng, và không có gì được khôi phục cho biết phiên bản kernel của bộ hoặc cho thấy bất kỳ lỗi nào trong bốn lỗi này đã chạy thành công.
Phiên SSH của chính kẻ vận hành vào máy chủ dàn dựng đến từ IP 103.97.0[.]57 tại Hồng Kông. Mật khẩu giao diện web của AI Agent chứa từ tiếng Trung Leishen (Lôi Thần), và một khóa cho FOFA, một dịch vụ tìm kiếm tài sản của Trung Quốc, nằm ngay bên cạnh.
Cùng một máy chủ đó trước đây đã từng lưu trữ một bộ điều khiển ShadowPad và hiện đang chạy một trình nghe lệnh và kiểm soát VShell. Hunt.io đánh giá với độ tin cậy từ thấp đến trung bình rằng kẻ vận hành là người nói tiếng Trung hoặc thành thạo ngôn ngữ này, nhưng không nêu tên nhóm cụ thể.
Con đường xâm nhập vào Hadoop
Hầu hết mã tùy chỉnh được đưa vào cụm Hadoop của bộ, nơi lưu trữ và truy vấn khối lượng lớn dữ liệu. Một tập lệnh có tên hive_rce_py2.py kết nối với HiveServer2, giao diện SQL cho cụm đó, trên một máy nội bộ tại cổng 10000 và gửi mật khẩu.
Tài liệu của Apache cho biết chế độ xác thực mặc định là NONE, chấp nhận bất kỳ mật khẩu nào được cung cấp mà không cần kiểm tra.
Sau khi kết nối, tập lệnh sẽ cài đặt một tiện ích bổ sung Java độc hại có tên HiveCmd.jar dưới dạng một hàm do người dùng định nghĩa (UDF), cho phép nó chạy các lệnh của hệ điều hành thông qua các truy vấn cơ sở dữ liệu thông thường và đọc kết quả trả về. Cloudera cảnh báo rằng bất kỳ ai có thể cài đặt một hàm như vậy đều có thể chạy mã tùy ý dưới quyền tài khoản dịch vụ Hive và tiếp cận dữ liệu nhạy cảm.
Cũng được dàn dựng trên máy chủ: một implant viết bằng Go chưa từng được ghi nhận trước đây mà kẻ vận hành gọi là Hades, được xây dựng cho cả Windows và Linux với 62 bản sao. Hunt.io đã phân tích một bản cho mỗi hệ điều hành và thấy cùng một mã nguồn.
Các địa chỉ được nhúng cứng của chúng liên kết máy chủ dàn dựng với một máy chủ Hồng Kông thứ hai, mặc dù không có dấu vết nào cho thấy Hades đã tiếp cận được máy tính của bộ. Các tập lệnh riêng biệt đã thử nghiệm thông tin đăng nhập mặc định đối với bảng điều khiển GlassFish nội bộ, cùng với mã khai thác cho ba lỗi cũ trong polkit, sudo và IIS 6.0.
Các biện pháp cần thực hiện
- Kiểm tra xem HiveServer2 có đang chạy với chế độ xác thực NONE hay không và hạn chế những ai có thể cài đặt các hàm do người dùng định nghĩa (UDF).
- Cảnh báo khi một tiến trình máy chủ web mở kết nối đến các cổng Hadoop nội bộ như 10000 hoặc 50070.
- Tìm kiếm đệ quy trong thư mục gốc web các tệp PHP có tên bắt đầu bằng dấu chấm bắt chước bộ nhớ đệm hệ thống (ví dụ: .journald-cache.php).
- Vá kernel chống lại bốn lỗi năm 2026 nêu trên, cập nhật sudo lên 1.9.5p2 hoặc mới hơn, vá polkit cho CVE-2021-4034 và bất kỳ dịch vụ IIS 6.0 WebDAV nào còn lại.
AI Agent để lại dấu vết riêng của nó. Bảng điều khiển web của Hermes trả về tiêu đề máy chủ HermesWebUI, và một tìm kiếm trên chuỗi ký tự đó đã trả về khoảng 5.900 sự kiện quét trong một tháng.
Dấu hiệu tốt hơn là nơi AI Agent viết kết quả của nó: một thư mục /hermes-results/ nhất quán với các tên tệp có thể đoán trước. Điểm mấu chốt là không có biện pháp kiểm soát an toàn nào làm lộ kẻ vận hành này, mà chính là tính năng liệt kê thư mục (directory listing) đã làm điều đó.
Hệ thống cuối (endpoint) vẫn thấy các lệnh shell và các công cụ tương tự cho dù có AI hay không. Không có gì trong một dòng lệnh thông thường thông báo rằng không có ai đang ngồi trước bàn phím.