Khắc Phục Khẩn Cấp Lỗ Hổng WordPress REST Batch API (wp2shell): Hướng Dẫn Toàn Diện
Khắc Phục Khẩn Cấp Lỗ Hổng WordPress REST Batch API (wp2shell): Hướng Dẫn Toàn Diện
Lỗ hổng WordPress REST Batch API (hay còn gọi là wp2shell) đã từng là một mối đe dọa nghiêm trọng, cho phép kẻ tấn công thực thi mã từ xa (RCE) mà không cần xác thực, dẫn đến việc kiểm soát hoàn toàn website. Nếu trang web của bạn đã bị ảnh hưởng, việc phục hồi nhanh chóng và triệt để là cực kỳ quan trọng. Dưới đây là các bước chi tiết để bạn đưa website trở lại trạng thái an toàn.
1. Luôn Sao Lưu Dữ Liệu Trước Tiên
Trước khi thực hiện bất kỳ thao tác dọn dẹp nào, hãy tạo một bản sao lưu đầy đủ tất cả các tệp tin và cơ sở dữ liệu của website. Đây là bước đệm an toàn, giúp bạn khôi phục lại trạng thái ban đầu nếu có bất kỳ sự cố nào xảy ra trong quá trình khắc phục.
2. Xóa Bỏ Web Shell Độc Hại
Kiểm tra kỹ lưỡng các thư mục bộ nhớ đệm (ví dụ: /wp-content/cache/) thông qua FTP/SSH. Tìm kiếm và xóa bỏ ngay lập tức các tệp PHP đáng ngờ được tạo ra bởi cuộc tấn công. Những tệp này thường là cửa hậu cho kẻ tấn công.
3. Loại Bỏ Plugin Độc Hại
Kiểm tra các thư mục /wp-content/mu-plugins/ và /wp-content/plugins/ để tìm và gỡ bỏ các tệp tin cửa hậu dai dẳng. Kẻ tấn công thường ngụy trang chúng dưới dạng các bản vá bảo mật hoặc plugin hợp pháp (ví dụ: một tệp có tên tương tự patch.php).
4. Cập Nhật Ngay Lập Tức Phiên Bản Lõi
Nâng cấp ngay lập tức phiên bản lõi của WordPress lên các phiên bản đã được vá lỗi (ví dụ: 6.9.5 hoặc 7.0.2 hoặc mới hơn). Việc này sẽ đóng lỗ hổng Batch API cơ bản, ngăn chặn các cuộc tấn công tương tự trong tương lai.
5. Vô Hiệu Hóa Chỉnh Sửa Tệp Tin
Để ngăn chặn việc chỉnh sửa tệp tin và cài đặt plugin trái phép trong tương lai, hãy thêm các dòng sau vào tệp wp-config.php của bạn:
define( 'DISALLOW_FILE_EDIT', true );
define( 'DISALLOW_FILE_MODS', true );
Điều này sẽ tăng cường bảo mật cho website của bạn.
6. Đặt Lại Tất Cả Thông Tin Đăng Nhập
Thay đổi mật khẩu cho tất cả người dùng, đặc biệt là tài khoản quản trị viên. Đồng thời, cập nhật mật khẩu cho người dùng cơ sở dữ liệu MySQL của bạn.
7. Buộc Đăng Xuất Toàn Cầu
Vô hiệu hóa tất cả các phiên làm việc đang hoạt động và đăng xuất mọi kẻ tấn công tiềm năng bằng cách thay thế các khóa muối (salt keys) trong tệp wp-config.php. Bạn có thể sử dụng trình tạo khóa chính thức của WordPress để tạo các khóa mới.
8. Kiểm Tra Tài Khoản Người Dùng
Truy cập phần “Người dùng” (Users) trong bảng điều khiển WordPress và kiểm tra kỹ lưỡng. Xóa bỏ bất kỳ tài khoản quản trị viên trái phép nào mà bạn không nhận ra.
9. Dọn Dẹp Cơ Sở Dữ Liệu
Chạy các truy vấn SQL trên các bảng wp_posts và wp_postmeta để xóa các thay đổi giả mạo (fake changesets), các mục menu bị giả mạo (thường có ngày tháng 2020-01-01), và các siêu dữ liệu payload độc hại (ví dụ: example.invalid).
10. Thu Hồi Đặc Quyền Ghi Tệp Của Cơ Sở Dữ Liệu
Để ngăn chặn cơ sở dữ liệu ghi tệp ra đĩa, hãy chạy lệnh sau trên máy chủ MySQL của bạn (thay wp_user_name bằng tên người dùng cơ sở dữ liệu thực tế của bạn):
REVOKE FILE ON *.* FROM 'wp_user_name'@'localhost';
Bước này giúp tăng cường bảo mật, ngăn chặn kẻ tấn công lợi dụng cơ sở dữ liệu để tạo tệp độc hại trên máy chủ.