Trống Đồng Đông Sơn

Một ngày đẹp trời, bạn truy cập website và phát hiện giao diện bị thay đổi, hoặc tệ hơn là khách hàng phản hồi họ bị chuyển hướng sang các trang web cá cược lạ. Vào phần quản trị, bạn phát hiện thêm vài tài khoản admin lạ lẫm mà bạn chắc chắn chưa từng khởi tạo. Rõ ràng, website của bạn đã dính mã độc. Lúc này, việc nhanh chóng tìm ra cách xử lý wordpress bị hack là tối quan trọng để bảo vệ dữ liệu khách hàng, giữ vững uy tín thương hiệu và tránh bị Google đưa vào danh sách cảnh báo nguy hiểm.

Thực tế tại DPS.MEDIA, chúng tôi tiếp nhận rất nhiều ca cấp cứu website trong tình trạng tương tự. Gần đây nhất là hệ thống của Nhà thuốc An Tâm, lượng truy cập tự nhiên sụt giảm nghiêm trọng tới 45% chỉ trong vài ngày. Sau khi tiếp nhận, đội ngũ kỹ thuật của DPS.MEDIA đã rà soát và phát hiện ra 2 plugin giả mạo có chức năng tạo admin ẩn cùng 1 mu-plugin giả danh Google Tag Manager để chèn mã độc chuyển hướng. Với quy trình xử lý tối ưu, chúng tôi đã dọn sạch mã độc và khôi phục website hoạt động ổn định chỉ sau đúng 2 giờ làm việc.

Để giúp các quản trị viên có thể tự khắc phục hoặc kiểm tra lại công việc của kỹ thuật viên, DPS.MEDIA xin chia sẻ quy trình xử lý WordPress bị hack chuẩn 10 bước dưới đây.

Quy trình xử lý WordPress bị hack triệt để qua 10 bước

Quy trình này đòi hỏi bạn có kiến thức cơ bản về quản trị máy chủ (VPS/Server) và sử dụng dòng lệnh (CLI). Hãy thực hiện tuần tự để tránh bỏ sót mã độc.

Bước 1: Cài đặt và cấu hình Wordfence CLI

Wordfence CLI là một công cụ quét mã độc mã nguồn mở chuyên nghiệp chạy trên dòng lệnh, giúp bạn quét hàng triệu file nhanh hơn rất nhiều so với plugin thông thường. Trước tiên, hãy cấu hình license miễn phí của nó trên server:

wordfence configure

Bước 2: Quét phát hiện file chứa mã độc

Chạy lệnh quét nhanh để đối chiếu với cơ sở dữ liệu chữ ký mã độc đã biết. Kết quả quét sẽ được xuất ra file CSV để bạn dễ dàng theo dõi:

wordfence malware-scan --output-format=csv \
  --output-path=/home/DOMAIN/public_html/wordfence-scan-\\$(date +%Y%m%d-%H%M%S).csv \
  /home/DOMAIN/public_html/

Nếu bạn nghi ngờ mã độc đã lây lan sang các file tĩnh (như ảnh hoặc các file Javascript tùy biến của theme), hãy chạy lệnh quét sâu toàn bộ:

wordfence malware-scan --include-all-files \
  --output-path=/home/DOMAIN/public_html/wordfence-scan-full-\\$(date +%Y%m%d-%H%M%S).log \
  /home/DOMAIN/public_html/

Bước 3: Đưa website về trạng thái bảo trì

Nhằm hạn chế hacker tiếp tục can thiệp hoặc đánh cắp thông tin khách hàng trong quá trình dọn dẹp, bạn cần kích hoạt chế độ bảo trì bằng WP-CLI:

wp maintenance-mode activate --allow-root --path=/home/DOMAIN/public_html

Bước 4: Rà soát danh sách tài khoản Admin

Liệt kê tất cả các tài khoản có quyền cao nhất trên website:

wp user list --role=administrator --allow-root --path=/home/DOMAIN/public_html

Hãy chú ý các tài khoản có email lạ hoặc ngày đăng ký trùng khớp với thời điểm website bắt đầu có dấu hiệu bị can thiệp. Bạn hãy ghi lại ID của các tài khoản giả mạo này nhưng chưa xóa ngay, chúng ta sẽ xóa ở bước tiếp theo sau khi dọn sạch file backdoor.

Bước 5: Xóa bỏ các file độc hại và tài khoản giả mạo

Dựa trên kết quả quét ở Bước 2, bạn tiến hành định vị và xóa các file độc hại. Chúng thường núp bóng dưới dạng:

  • Plugin giả mạo: Thư mục plugin lạ chứa code gọi hàm tạo user admin tự động. Hãy xóa hẳn thư mục này: rm -rf /home/DOMAIN/public_html/wp-content/plugins/ten-plugin-gia
  • Must-Use Plugins (Mu-plugins): Nằm trong thư mục wp-content/mu-plugins/. Đây là các file tự động chạy mà không hiển thị trong danh sách quản lý plugin của WordPress. Hãy xóa file nghi ngờ: rm /home/DOMAIN/public_html/wp-content/mu-plugins/file-doc-hai.php

Sau khi đã dọn dẹp xong các file backdoor tạo tài khoản, bạn tiến hành xóa các admin giả mạo và chuyển quyền bài viết (nếu có) sang admin thật:

wp user delete ID_GIA --reassign=ID_ADMIN_THAT --allow-root --path=/home/DOMAIN/public_html

Bước 6: Dọn dẹp mã độc trong Database

Nhiều loại mã độc không nằm ở file vật lý mà lưu trực tiếp payload trong database (ví dụ các option tự động chạy trong wp_options hoặc chèn script quảng cáo vào nội dung bài viết trong wp_posts).

Kiểm tra các option chứa hàm thực thi nguy hiểm:

wp db query "SELECT option_id, option_name FROM wp_options WHERE option_value LIKE '%base64_decode%' OR option_value LIKE '%eval(%';" --allow-root --path=/home/DOMAIN/public_html

Kiểm tra các bài viết bị chèn mã độc script:

wp db query "SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%

Hãy xóa các option độc hại tìm được bằng lệnh: wp option delete ten_option --allow-root --path=/home/DOMAIN/public_html

Bước 7: Kiểm tra file wp-config.php và .htaccess

Đọc kỹ file .htaccesswp-config.php để đảm bảo không bị chèn các đoạn mã chuyển hướng hoặc code thực thi lạ ở đầu file:

cat /home/DOMAIN/public_html/.htaccess
cat /home/DOMAIN/public_html/wp-config.php | grep -v "^\s*//" | grep -v "^\s*\$"

Bước 8: Khôi phục Core WordPress sạch bằng WP-CLI

Để chắc chắn toàn bộ file core của WordPress không bị hacker sửa đổi, bạn hãy chạy lệnh ghi đè lại core sạch từ máy chủ WordPress.org (bỏ qua thư mục wp-content):

wp core download --version=\$(wp core version --allow-root) --force --skip-content --allow-root --path=/home/DOMAIN/public_html

Bước 9: Thay đổi mật khẩu và cập nhật lại Salts Key

Việc làm mới Salts Key trong file wp-config.php sẽ lập tức hủy toàn bộ các phiên đăng nhập hiện tại, buộc hacker phải đăng xuất khỏi hệ thống ngay lập tức:

wp config shuffle-salts --allow-root --path=/home/DOMAIN/public_html

Sau đó, tiến hành đổi mật khẩu cho toàn bộ tài khoản Admin thật còn lại:

wp user update ID_ADMIN --user_pass="MatKhauMoiSieuBaoMat@2026" --allow-root --path=/home/DOMAIN/public_html

Đồng thời, đổi mật khẩu MySQL database và cập nhật lại thông tin kết nối mới trong file wp-config.php.

Bước 10: Quét lại hệ thống và tắt chế độ bảo trì

Chạy lại Wordfence CLI để xác nhận hệ thống hoàn toàn sạch mã độc:

wordfence malware-scan --include-all-files --output-path=/home/DOMAIN/public_html/wordfence-scan-final.log /home/DOMAIN/public_html/

Khi kết quả trả về hoàn toàn sạch sẽ, tắt chế độ bảo trì để đưa website trở lại hoạt động bình thường:

wp maintenance-mode deactivate --allow-root --path=/home/DOMAIN/public_html

xử lý wordpress bị hack

Gia cố bảo mật sau khi xử lý mã độc

Dọn dẹp mã độc mới chỉ là phần ngọn. Nếu không bịt các kẽ hở bảo mật, website sẽ nhanh chóng bị hack trở lại. Hãy thực hiện ngay hai hành động sau:

  • Phân quyền file an toàn: Thiết lập quyền thư mục là 755, file là 644, và file wp-config.php400 hoặc 600 để ngăn chặn việc ghi đè trái phép.
  • Chặn chạy file PHP trong thư mục Uploads: Đây là nơi hacker hay lưu trữ webshell nhất. Hãy tạo file .htaccess bên trong thư mục wp-content/uploads/ với nội dung chặn thực thi PHP:
    
        deny from all
    

Bên cạnh đó, bạn nên tham khảo thêm các khuyến nghị bảo mật chính thức từ tài liệu Hardening WordPress chính thức để xây dựng một hàng rào bảo vệ vững chắc cho website của mình.

Nếu bạn không có nhiều thời gian quản trị kỹ thuật hoặc lo lắng về việc dọn dẹp không triệt để, hãy liên hệ ngay với DPS.MEDIA qua Hotline/Zalo 0961545445 hoặc trực tiếp tại văn phòng: 56 Nguyễn Đình Chiểu, Phường Tân Định, Quận 1, TP. Hồ Chí Minh để được hỗ trợ. Chúng tôi cung cấp dịch vụ thiết kế website WordPress chuyên nghiệp chuẩn SEO, bảo mật cao và vận hành ổn định, giúp doanh nghiệp an tâm phát triển kinh doanh mà không lo ngại về các sự cố an ninh mạng.

Ý kiến bạn đọc (9)

DPS SECURITY

Đăng nhập để bình luận

Đăng nhập nhanh 1-chạm bằng Google để chia sẻ ý kiến của bạn về bài viết.