Hướng dẫn cách fix và restore WordPress bị shell hack hoặc chiếm quyền điều khiển

4777

Các nguyên nhân chính dẫn đến site bị hack:

– Đặt pass dễ nhớ nên bị brute force password
– Thông tin hosting cũng tương tự như trên
– Server OS bị bug và quá cũ dễ bị exploit
– Cài đặt plugin hoặc themes có bug + shell và lâu rồi ko được update để fix
– OS của bạn đang sử dụng bị virus và trực tiếp lây nhiễm vào OS và FTP Client.

  Cấu hình Redis Caching để tăng tốc site WordPress của bạn
  Wordpress - Cách tối ưu web lên 99 điểm trên di động PageSpeed Insights

Cách fix và restore site, làm tuần tự (nếu may mắn còn database + folder uploads):

– Đầu tiên export database ra để backup.
– Vào folder wp-content/plugins lưu lại danh sách các plugins hiện đang dùng.
– Đổi pass hosting (bao gồm ftp và cpanel quản lý nếu có), nếu dùng vps thì thường hay dùng account root thì đổi luôn password của root và tốt nhất là thêm việc đổi luôn port ssh của vps.
– Đổi pass mysql nếu hosting chứa nhiều database thì cũng đổi hết tất cả các database tương ứng (bước này áp dụng cả vps lẫn hosting).
– Xóa toàn bộ code hiện có chỉ chừa lại folder wp-content/uploads, folder này chứa các static files (chủ yếu là các file ảnh hoặc các file không phải là php) sau đó download folder này về và dùng các chương trình search với phần mở rộng là .php để xóa các file php thường là file shell được upload lên hoặc được giấu ở folder này.
– Install một bản wp fresh (download bộ cài từ wordpress.org) ở localhost và import file database đã backup ở bước đầu tiên vào, thay đổi các thiết lập trong wp_config.php để phù hợp với database đã import (thường thì chỉ là prefix thôi).
– Vào phpmyadmin kiểm tra bảng wp_users xem có account nào khả nghi và có quyền administrator thì một là xóa luôn nếu không biết acc của ai, 2 là nếu đã biết thì đổi luôn password (lưu ý là việc này cần xác nhận user đã biết là ai và user đó chắc chắn email không bị lộ pass và máy tính không nhiễm virus vì có quyền admin đương nhiên có thể request password qua mail và lại upload shell lên coi như công cốc)
– Copy hoặc move folder uploads đã backup ở trên vào wp-content/ (overwrite nếu cần).
– Xem lại list các plugins đã ghi lại ở bước trên và tiến hành download ở các nguồn tin tưởng (phiên bản càng mới càng tốt) và copy vào thư mục wp-content/plugins
– Đăng nhập vào wp-admin và check lại mọi thứ lần cuối sau đó backup lại và thử upload lên hosting để hoàn tất quá trình restore lại site.

Ngoài ra thì có thể cài thêm một số plugin hỗ trợ bảo mật như bên dưới để tăng cường:

  • iThemes Security: plugin này có chức năng firewall cơ bản là block các request dạng như bruteforce password, ẩn wp-admin link đăng nhập, disable việc thực thi php ở folder uploads (cái này chỉ hỗ trợ đối với server đang chạy là apache nhé), chế độ rảnh ngoài giờ của admin nghĩa là ko đăng nhập được trong khoảng thời gian nào đó cho dù đúng password, blacklist ip, scan files theo lịch và thông báo các thay đổi có liên quan đến database cũng như physical files, vân vân và mây mây rất nhiều…
  • Sucuri: chức năng report thay đổi database và file cũng gần như bên trên, firewall cơ bản. Bọn này nó có cái WAF bản trả phí thì có full bộ firewall về bruteforce lẫn ip blacklist, ngoài ra thêm kiểu chế độ quét định kỳ và fix lỗi site nếu bị hack luôn dạng dịch vụ.

Các plugin backup có thể sử dụng để backup site hoặc database:

  • BackupBuddy: hỗ trợ backup định kỳ cả file + database hỗ trợ dạng send email attachments hoặc lên Gdrive, Onedrive, Dropbox…
  • Updraft Plus như trên dùng 1 trong 2 =.=
    Lưu ý là nếu plugin nguồn gốc rõ ràng mà đã chứa bug sẵn thì mọi cách làm bên trên đều bị vô nghĩa.
  11 cách tăng tốc nhanh cho WordPress bằng file wp-conig.php

Tham khảo thêm vị trí tìm việc làm WordPress hấp dẫn tại Topdev

Tác giả: Xman