Các nhà nghiên cứu bảo mật đã tiến hành phân tích sâu một script shell web phức tạp có tên UpdateChecker.aspx. Script này được phát hiện cài đặt trên các máy chủ Internet Information Services (IIS) bị xâm nhập, phản ứng trước sự gia tăng đáng kể của các mối đe dọa mạng nhắm vào hệ thống Microsoft Windows.
Cuộc phân tích này bắt nguồn từ cuộc điều tra tiếp theo của Nhóm Phản ứng Sự cố (Incident Response Team) của FortiGuard về một cuộc xâm nhập kéo dài tại một địa điểm hạ tầng quốc gia quan trọng (CNI) ở Trung Đông. Tại đây, kẻ tấn công đã cài đặt nhiều web shell để duy trì quyền truy cập bền vững.
Phân tích Kỹ thuật Web Shell UpdateChecker.aspx
Tổng quan và Khả năng Kiểm soát
Web shell này cho phép kiểm soát từ xa hoàn toàn các hệ thống bị ảnh hưởng, đặt ra rủi ro nghiêm trọng cho người dùng Windows. Nó cho phép thực thi lệnh trái phép, thao tác tệp và trích xuất dữ liệu.
Hoạt động dưới vỏ bọc một trang ASPX hợp pháp, script sử dụng kỹ thuật che giấu (obfuscation) phức tạp trong mã C# của nó. Các tên phương thức, biến và lớp được tạo ngẫu nhiên, mã hóa bằng Unicode, cùng với các chuỗi và hằng số số học được mã hóa.
Cơ chế Che giấu (Obfuscation) và Điểm vào
Kỹ thuật che giấu này cản trở các nỗ lực phân tích ngược ban đầu. Tuy nhiên, quá trình loại bỏ che giấu (deobfuscation) đã tiết lộ chức năng cốt lõi tập trung quanh điểm vào Page_Load(). Hàm này xử lý các yêu cầu HTTP đến độc quyền ở phía máy chủ.
Giao thức Giao tiếp (Communication Protocol)
Web shell yêu cầu lệnh thông qua các yêu cầu HTTP POST với loại nội dung application/octet-stream. Bất kỳ sai lệch nào đều sẽ kích hoạt phản hồi lỗi.
Các payload lệnh được mã hóa, mã hóa Base64 và cấu trúc dưới dạng đối tượng JSON. Chúng bắt đầu bằng một tiêu đề 16 byte được giải mã bằng một khóa cứng (hardcoded key) để tạo ra khóa phiên 15 byte cho phần dữ liệu còn lại.
Các khóa JSON thiết yếu bao gồm ProtocolVersion (cố định là 1.0), ModuleName và RequestName, với các tham số tùy chọn quy định các hành động cụ thể. Việc thiếu các khóa này sẽ dẫn đến thông báo lỗi, đảm bảo xác thực lệnh mạnh mẽ.
Phân tích lưu lượng, được mô phỏng thông qua các công cụ như Wireshark, cho thấy các tệp nhị phân được mã hóa trong phần thân của các yêu cầu POST. Các tệp này được giải mã để tiết lộ các hướng dẫn và phản hồi định dạng JSON, tạo điều kiện tương tác liền mạch giữa kẻ tấn công và nạn nhân mà không gây ra báo động ngay lập tức.
Các Module Chức năng của Web Shell
Kiến trúc của web shell chia chức năng thành ba module chính: Base, CommandShell và FileManager. Mỗi module cung cấp khả năng kiểm soát chi tiết đối với máy chủ đã bị xâm nhập.
Module Base: Thu thập Thông tin
Module Base cung cấp khả năng trinh sát thông qua các yêu cầu như GetBasicServerInfo và GetBasicServerApplicationInfo. Nó thu thập các chi tiết như phần mềm máy chủ, địa chỉ IP, phiên bản hệ điều hành, tên máy và môi trường runtime.
Module CommandShell: Thực thi Lệnh Từ xa
Module CommandShell cho phép thực thi lệnh Windows tùy ý với đặc quyền của IIS. Ví dụ, chạy lệnh whoami để xác định ngữ cảnh người dùng hiện tại, cho thấy khả năng kiểm soát hệ thống bị xâm nhập.
Fortinet đã cung cấp phân tích sâu về các khía cạnh kỹ thuật của web shell này. Chi tiết hơn có thể được tìm thấy trong báo cáo của họ: In-depth analysis of an obfuscated web shell script.
Module FileManager: Thao tác Hệ thống Tệp
Module FileManager nổi bật với các hoạt động hệ thống tệp mở rộng. Các chức năng bao gồm tạo thư mục, sao chép/di chuyển tệp, xóa tệp, tìm kiếm nội dung theo tên hoặc từ khóa (với các tùy chọn phân biệt chữ hoa/chữ thường và regex), và sửa đổi thuộc tính như dấu thời gian hoặc quyền.
Ví dụ, kẻ tấn công có thể tạo thư mục, chèn nội dung mã hóa Base64 vào tệp, truy xuất dữ liệu tệp hoặc thực hiện thay thế hàng loạt trên các đường dẫn và loại tệp được chỉ định.
Kịch bản Khai thác Thực tế
Các minh chứng sử dụng một script Python tùy chỉnh mô phỏng các hoạt động khai thác thực tế của web shell. Việc truy vấn thông tin máy chủ làm lộ các chi tiết môi trường. Thực thi lệnh cho thấy đặc quyền người dùng.
Các hoạt động tệp cho phép tạo, sửa đổi và xóa tài nguyên, chẳng hạn như tạo một thư mục ‘test’ và tệp ‘test.txt’ thuộc sở hữu của định danh DefaultAppPool, hoàn chỉnh với nội dung được chèn như “Hi Fortinet!”.
Những khả năng này nhấn mạnh tiềm năng của web shell trong việc di chuyển ngang (lateral movement), đánh cắp dữ liệu hoặc triển khai payload tiếp theo trong các mạng đã bị xâm phạm.
Biện pháp Phát hiện và Phòng ngừa
Theo báo cáo, các biện pháp bảo vệ của Fortinet có thể phát hiện tệp ASPX này dưới các signature như ASP/WebShell.32BC!tr trên các sản phẩm bao gồm FortiGate, FortiMail, FortiClient, FortiEDR và FortiWeb.
Điều này nhấn mạnh sự cần thiết của việc cập nhật công cụ chống virus và tường lửa ứng dụng web (WAF) thường xuyên. Các tổ chức nghi ngờ có sự xâm nhập cần liên hệ các nhóm ứng phó sự cố và tăng cường nhận thức thông qua đào tạo bảo mật để giảm thiểu các vector lừa đảo (phishing) – vốn thường là tiền đề cho các cuộc xâm nhập như vậy.
Web shell này là một ví dụ điển hình về các cơ chế duy trì quyền truy cập nâng cao trong các hoạt động mạng phức tạp hoặc được nhà nước bảo trợ. Nó nhấn mạnh sự cấp bách đối với quản trị viên Windows trong việc kiểm tra các máy chủ IIS để tìm kiếm các tệp ASPX bất thường và thực thi lọc yêu cầu nghiêm ngặt.










