Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> An Ninh Mạng

Hướng Dẫn Toàn Diện Loại Bỏ Hack WordPress: Phát Hiện, Dọn Dẹp & Bảo Mật Site

Site WordPress bị hack và hiện triệu chứng lạ? Chúng tôi hiểu việc tìm và xóa hack chính xác rất khó, nên tổng hợp hướng dẫn mở rộng này giúp bạn detect & remove hack nhanh chóng. Bài viết bao gồm: triệu chứng, phát hiện, quy trình loại bỏ hack, nguyên nhân và loại hack có thể. Muốn vào ngay bước dọn dẹp, click đây.

Triệu Chứng Website WordPress Bị Hack

Điều như defacement site là dấu hiệu rõ ràng, nhưng dấu hiệu khác tinh vi, user thường bỏ qua mà vẫn gây hại lớn. Một số dấu hiệu tinh vi:

1. Nhận Thông Báo Cảnh Báo

  • Đa số user site WP hack nhận cảnh báo treo tài khoản từ hosting provider. Nếu thấy tin này → site có thể đã hack!
  • Google search nhanh hiển thị một trong các cảnh báo Google kinh hoàng dưới tên site.
  • Giảm traffic đột ngột trên site WP cũng chỉ ra site có thể bị Google/search engine blacklist do hiện triệu chứng hack, spam, script độc...
  • Nếu là khách hàng Astra Security, có thể nhận email cảnh báo từ chúng tôi về code độc phát hiện khi quét site.

2. Site Bắt Đầu Hành Động Lạ

Nếu thấy dấu hiệu dưới, site rất có thể đã bị hack WP:

  • Site WordPress redirect user – dấu hiệu rõ ràng hack. Có thể là victim các redirect hack: buyittraffic, digestcolect, outlook redirect... Domain độc thường: buyittraffic[.com], cuttraffic[.com], digestcolect[.]com, travelinskydream[.]ga...
  • Không đăng nhập được site – hacker có thể đổi setting và kick bạn ra.
  • Adblocker chặn site WP do crypto mining.
  • Popup lạ và quảng cáo độc xuất hiện.
  • Push notification khiêu dâm/độc hại xuất hiện. Xem ví dụ bài viết này.
  • Phát hiện cron job nghi ngờ chờ thực thi trên server hoặc hoạt động lạ trong server logs.
  • Ký tự tiếng Nhật hoặc nội dung gibberish xuất hiện – trỏ về Japanese Keyword Hack hoặc Pharma Hack...
  • Phát hiện spam email gửi từ domain site WP của bạn.
  • Site hiển thị lỗi bất ngờ và trở nên chậm/unresponsive.
  • Traffic không nhiều nhưng server luôn tiêu thụ resource nặng.

3. Thấy Thay Đổi Trong File

Thay đổi file là cách dễ nhất biết site bị hack WP. Triệu chứng:

  • File mới lạ trong thư mục wp-admin và wp-includes. Cả hai hiếm khi có file mới thêm.
  • File theme, header, footer WP bị sửa để tạo redirect.
  • Admin mới lạ của database WP xuất hiện.
  • Kết quả search hiển thị meta description sai của site WP.
  • Tìm thấy link độc trong core file. Spam link injection – tấn công phổ biến nhất WP.
  • Thêm file .php lạ. Hoặc file replica plugin phổ biến với thay đổi tên nhỏ không nhận ra. Hack 'Monetization' gần đây là ví dụ điển hình.

Cách Khắc Phục Hack WordPress

Sau khi chắc chắn bị hack, đây là quy trình dọn dẹp:

1. Backup Website

Backup đầy đủ site – luôn tốt. Vì mục đích backup là restore khi sự cố, hãy đảm bảo backup functional. Backup phải bao gồm: WP core files, WP database, plugin files, theme files, file .htaccess. Hầu hết hosting cung cấp backup. Liên hệ provider hỏi quy trình. Backup thủ công qua SFTP client như Filezilla.

Site Backup

Một số cách backup khác:

1. Dùng Plugin

WP có nhiều plugin backup như UpdraftPlus đơn giản hóa quy trình. Backup full site (file & database).

  • Cài và kích hoạt plugin.
  • Backup site lưu local hoặc cloud.
2. Backup Qua SSH

Backup file:

  • Truy cập site qua SSH.
  • Chạy lệnh: zip -r backup-pre-cleanup.zip

Tạo file zip site, download về PC.

3. Backup Qua SFTP
  • Truy cập site qua SFTP client (FileZilla).
  • Tạo folder backup trên PC, copy nội dung sang.

Yêu cầu effort thủ công – mất thời gian hơn cách trước.

Database Backup

Backup hoàn chỉnh database:

1. Backup Qua Plugin

Dùng UpdraftPlus backup database.

2. Backup Qua PHPMyAdmin

Export database lưu PC qua PHPMyAdmin.

  • Truy cập WP database bằng PhpMyAdmin.
  • Export toàn bộ database dễ dàng. Lưu cùng folder hoặc folder riêng tùy ý.
3. Backup Qua SSH
  • Truy cập site qua SSH.
  • Chạy lệnh: mysqldump -p -h hostname -u username database > backup-pre-cleanup.sql

Nhớ đổi credential (username, password, hostname...) trước khi backup database. Xóa bản copy trên file server sau khi lưu local.

2. Bật Maintenance Mode

Phát hiện hoạt động độc trên site → bật maintenance mode. Đảm bảo visitor không bị ảnh hưởng hack. Khi dọn hack, thay đổi có thể hinder performance live site nếu không bật maintenance mode. Dùng plugin Coming Soon hiển thị thông báo maintenance quirky mà không lộ đang dọn hack. Cách dùng: cài & kích hoạt plugin (hiện "SeedProd" panel trái) → Enable maintenance mode. Có thể customize coming soon page với brand message & logo.

3. Đổi Mọi Mật Khẩu Hiện Tại

Nếu vẫn truy cập được site, đổi tất cả password ngay lập tức để chặn truy cập hacker. Bao gồm: admin panel, hosting account, database, tài khoản khác. Nhờ team member đổi pass nếu dùng admin panel. Tạo password tự động mạnh bằng tool LastPass/KeePass cho từng account. Lưu ý: Đổi database credential → nhớ cập nhật vào wp-config.php.

4. Kiểm Tra Lỗ Hổng Plugin

Lỗ hổng plugin third-party là lý do thường gặp hack WP. 56% hack WP do lỗ hổng plugin. Trước khi dọn, đảm bảo phiên bản plugin hiện tại không lỗ hổng. Check WordPress forum hoặc blog chúng tôi. Chúng tôi cập nhật blog/advisory khi có exploit plugin lớn. Vì plugin exploit nhắm hàng loạt site dùng plugin đó, nhiều người hỏi giải pháp trên forum. Google tên lỗ hổng cụ thể → tìm bước mitigate chi tiết.

5. Chẩn Đoán File

5.1. Dùng Malware Scanner Tìm Code Độc

Chạy site qua malware scanner (Astra có scanner tốt!). Lấy chi tiết file chứa code độc. Quét thủ công cũng được nhưng tốn thời gian. File nghi ngờ → dùng tool online decrypt nội dung. Ví dụ file độc hiddencode.txt. Cũng làm được qua phpMyAdmin (xem ảnh). phpMyAdmin cũng hữu ích dọn database khi hack WP.

Nếu thấy gì nghi ngờ nhưng không hiểu tác dụng, liên hệ chuyên gia chúng tôi. Sẵn sàng hỗ trợ!

5.2. Dùng Lệnh 'find' Review Sửa Đổi Gần Đây

Để xem file WP bị attacker sửa, SSH vào server chạy:

find . -mtime -2 -ls

Liệt kê file WP sửa trong 2 ngày qua. Tăng số ngày cho đến khi thấy gì lạ. Kết hợp find với grep tìm code encode base64:

find . -name "*.php" -exec grep "base64"'{}'; -print &> hiddencode.txt

5.3. So Sánh Với File WordPress Gốc

Tải file WP mới từ thư mục WP và so sánh backup với bản này. Dùng tool online diff checker tìm khác biệt. Tải file theo version WP của bạn. Ghi chú khác biệt để phân tích. Tìm link độc chèn → xóa ngay. Check từ khóa: eval, exec, strrev, assert, base64, str_rot13, Stripslashes, preg_replace (with /e/), move_uploaded_file... Dùng lệnh đơn giản hóa tìm từ khóa. Ví dụ tìm 'base64':

sudo grep -ril base64 /

Thay 'base64' bằng từng từ khóa → fetch file chứa chúng → review kỹ.

5.4. Kiểm Tra Với Diagnostic Tools

Webmaster tools nhanh & chính xác detect hack. Google Search Console liệt kê vấn đề tab 'Security'. Cách tốt xác nhận loại hack và file/trang bị hack. Review info để dọn hack WP đúng cách.

6. Dọn Code Độc Khỏi File WordPress

Sau chẩn đoán kỹ, liệt kê tất cả phát hiện. Mỗi khác biệt file, sửa đổi gần đây, user/admin giả → review kỹ. Dọn file core WP: wp-config.php, wp-contents/uploads, wp-uploads, plugin files, theme files, database...

Danh sách hướng dẫn dọn hack WP chi tiết theo triệu chứng. Theo dõi để detect & fix:

  • Fix WordPress Redirect Hack (site redirect spam)
  • Fix wp-vcd Malware (popup độc hoặc script wp-vcd trong functions.php)
  • Fix Japanese SEO Spam (Google results tiếng Nhật)
  • Fix Pharma Hack (Google hiện Viagra cho site hoặc site redirect fake pharma)
  • WordPress Javascript Malware Removal (site load spam JS hoặc blacklist warning)
  • Fix Google Blacklist (Google/search engine hiện màn hình đỏ/cảnh báo)
  • Fix WordPress Admin Hack (defaced hoặc không login được wp-admin)
  • Detecting and Removing Backdoors (site tái nhiễm hoặc check cơ bản sau dọn malware)
  • Fix WordPress Monetization hack (file lạ monit.php xuất hiện server)
  • Fix push notifications hack (visitor thấy push notification độc/vulgar)

7. Dọn Dẹp Sitemap

Nguyên nhân hack khác: script độc ở sitemap.xml. XML sitemap giúp Google crawl trang quan trọng. Hacker chèn link độc vào sitemap. Quét sitemap tìm link độc. Tìm thấy bất thường → xóa.

8. Dọn Dẹp Database

WP database chứa info user, trang site, credential nhạy cảm... – mục tiêu hấp dẫn. Cực quan trọng quét database tìm hack. Dùng malware scanner biết chính xác nhiễm wp_db. Muốn check thủ công: quét 11 bảng tìm hack. Tìm link/iframe nghi ngờ → xóa. Ví dụ code redirect chèn vào database:

9. Cài Đặt Lại (Reinstall)

Site nhiễm nặng → xóa file và thay bằng bản mới. Reinstall không chỉ file: sau dọn dẹp, cài lại từng plugin. Đôi khi do thiếu thời gian/quan tâm, giữ plugin vô dụng. Hacker hưởng lợi từ plugin này – gần như luôn có lỗ hổng khai thác. Một số chủ site tin xóa toàn bộ site và làm lại từ đầu là lựa chọn viable. Không phải. Luôn có lựa chọn tốt hơn làm từ đầu:

10. Để Astra Giúp Bạn

Nếu bạn khách Astra Pro → không lo chút nào! Chưa phải khách → đăng ký ngay, malware scanner Astra xác định tất cả malware ẩn và backdoor trên site.

Nguyên Nhân Có Thể Gây WordPress Bị Hack

An ninh site phụ thuộc bước bạn bảo mật. Tuân thủ quy tắc an ninh đơn giản giảm rủi ro online. Vài lý do site bị ảnh hưởng và cách thực hành bảo mật tốt hơn:

1. Không Cập Nhật WordPress

Biện pháp bảo mật cơ bản nhất. Không update lên version mới = lý do số 1 hack WP. Luôn update nhanh bản vá và mới nhất. Vá lỗ hổng biết trên site. WP version 5.4.2 là mới nhất tại thời điểm update blog (15/12/2020).

2. Host Trên Shared Server

Shared server rẻ hơn nhưng hậu quả đắt nếu hack. Chuyển site sang hosting an toàn hơn, chọn provider uy tín. Verify provider tuân thủ tiêu chuẩn bảo mật tốt nhất.

3. Dùng Mật Khẩu & Username Yếu

Gần như mọi khu vực nhạy cảm site được bảo vệ bằng pass. Pass tên mình/ten site, không số/ký tự = pass yếu. Không dùng pass yếu cho: wp-admin panel, server hosting panel, databases, FTP accounts, primary email account. Đổi default username thành unique. Từ admin, tên mình, tên site... quá dễ crack cho attacker.

4. File Permissions Sai

Permission dễ dàng cho attacker truy cập, sửa, xóa file. Trường hợp attacker giữ file đe dọa tiền chuộc. Set permission khuyến nghị, tuân thủ least privilege.

  • File: 644
  • Thư mục: 755

Liên quan: How to fix WordPress File Permissions

5. Truy Cập wp-admin Directory Không Bảo Vệ

wp-admin = khu vực điều khiển site. Cho truy cập không bảo vệ → user/team member thực hiện hành động không mong muốn. Hạn chế truy cập bằng permission cho role user khác nhau. Không user nào có quyền toàn bộ. Thêm lớp authentication cho wp-admin cũng giúp.

6. Plugin Hoặc Theme Lỗi Thời

Nhiều site WP dùng plugin/theme lỗi thời. Chứa lỗ hổng biết → hacker dễ khai thác. Developer push update → bạn phải follow nhanh.

7. Dùng Plain FTP Thay Vì SFTP/SSH

FTP account upload file lên server qua FTP client. Plain FTP không encrypt pass → rủi ro bị hack pass. SFTP (SSH File Transfer Protocol) gửi data mã hóa. Luôn chọn SFTP over FTP. Đổi protocol thành 'SFTP – SSH' mỗi lần connect server.

Hacker Tấn Công Website WordPress Như Thế Nào?

1. WordPress SQL Injection

WP version 4.8.3 và trước đó dễ bị SQL injection. Ngay cả method $wpdb->prepare() (dùng prepare safe query) cũng bị vulnerable lúc đó. Plugin/theme dùng query tạo bởi function này cũng potentially vulnerable SQLi. Plugin WP Statistics (300k+ download) cũng bị SQLi. Attacker đọc bảng nhạy cảm wp_users qua SQLi. Pass lưu encrypted nhưng tool có thể decrypt. → Lấy admin credential login wp-admin. Worst case: attacker upload reverse shell qua SQLi → site hacked.

Bài liên quan – Prevent SQL Injection in WordPress

2. WordPress Cross-Site Scripting (XSS)

WP version 5.1.1 và trước bị lỗ hổng XSS, CSRF, RCE. Stored XSS vulnerability. Function wp_filter_kses() (sanitize comment) cho phép basic HTML tag, attribute như <a> với 'href'. Attacker gửi payload độc: <a title='XSS " onmouseover=evilCode() id="'>. Lưu vào database và chạy mỗi lần user truy cập trang.

Related Blog – Cross-Site Scripting in WordPress – Examples

3. WordPress Cross-Site Request Forgery (CSRF)

CSRF validation token chưa implement trong WP – đúng vậy vì nếu làm sẽ hinder trackbacks/pingbacks. Để phân biệt user thường và admin, WP dùng extra nonce cho admin validation trong comment form. Nonce đúng → comment tạo không sanitize. Nonce sai → comment tạo với sanitize. Admin fail nonce → comment sanitized bằng wp_filter_post_kses() thay vì wp_filter_kses(). Function wp_filter_post_kses() cho phép attacker tạo comment với HTML tag/attribute nhiều hơn cho phép → CSRF attack.

4. WordPress Remote Code Execution (RCE)

WP version trước 4.9.9 và 5.x trước 5.0.1 dễ bị RCE. Tham số vulnerable: Post meta entry của _wp_attached_file(). Tham số thao túng thành string kết thúc .jpg?file.php substring. Cần author privileges để exploit. Attacker với author privileges upload ảnh crafted đặc biệt. Ảnh chứa PHP code thực thi, nhúng trong Exif metadata. Script exploit public, Metasploit module cũng có!

5. WordPress Directory Traversal

WP 5.0.3 dễ bị Path Traversal. Cần ít nhất author privileges. Component vulnerable: function wp_crop_image(). User chạy function (crop ảnh) có thể output ảnh đến thư mục tùy ý. Tên file append directory up symbol '../' → lấy path file attacker muốn: .jpg?/../../file.jpg. Exploit và Metasploit module online!

6. Plugin Hoặc Theme Buggy

Plugin code kém có thể gây hack WP. Theme tác giả không uy tín thường chứa code buggy. Attacker tự release plugin/theme chứa malware compromise hàng loạt site. WP software lỗi thời cũng làm site vulnerable → hacked.

Bảo Mật Website WordPress Của Bạn

1. Thực Hành An Toàn (Secure Practices)

  • Tránh pass phổ biến/mặc định. WP login yêu cầu pass secure & random.
  • Xóa folder cài WP cũ – có thể leak info nhạy cảm.
  • Không dùng null theme/plugin tác giả không uy tín. Update plugin/theme hiện có với patch mới nhất.
  • Dùng subnetting khi share hosting WP với site khác.
  • Đảm bảo không port nhạy cảm mở trên internet.
  • Disable directory indexing file nhạy cảm WP dùng .htaccess.
  • Restrict IP theo quốc gia detect heavy bot traffic.
  • Tuân thủ secure coding practice nếu dev WP.
  • Dùng SSL cho site WP.
  • Luôn backup site WP riêng biệt.
  • Đổi tên wp-login.php thành slug unique.
  • Dùng two-factor authentication login WP.

2. Dùng Giải Pháp Bảo Mật (Security Solution)

Firewall bảo mật site WP ngay cả khi vulnerable. Tuy nhiên tìm firewall đúng cho nhu cầu WP đa dạng có thể tricky. Astra giúp lựa chọn đúng từ 3 plan: Essential, Pro, Business. Dù WP chạy blog nhỏ hay site corporate, Astra cover mọi ground. Astra security solution quét và vá tự động site WP vulnerable. Chỉ cài plugin Astra → site an toàn lại. Thử demo ngay!

3. Security Audit và Pentesting

Như bài viết, lỗ hổng WP nảy sinh theo thời gian. Biện pháp phòng ngừa: thực hiện penetration testing site. Sẽ lộ loopholes trước khi attacker bắt kịp. Astra cung cấp security audit toàn diện WP site. Với 120+ active test, Astra cho mix đúng automatic và manual testing.