Hướng dẫn cách khắc phục triệt để sự cố trang web sử dụng WordPress bị Hacker tấn công

Nếu trang web của bạn đã bị tấn công, đừng hoảng sợ.

Một thực tế đáng buồn về việc chạy các trang web là đôi khi chúng có thể bị tấn công. Trong vài năm gần đây, WordPress càng bị tấn công thường xuyên hơn do mức độ phổ biến của nó. Trong bài viết này, chúng tôi sẽ chia sẻ từng bước một hướng dẫn sửa trang web bị hack.

1. Tìm hiểu website của bạn đã thực sự bị tấn công chưa?

Dưới đây là một số biểu hiện có thể biết được trang web có bị tấn công hay chưa, trang web của bạn đã bị tấn công nếu có các dấu hiệu sau đây:

hacked examples
  • Bạn đang nhận thấy các dấu hiệu spam xuất hiện trong đầu trang hoặc cuối trang của website chứa quảng cáo cho những nội dung như nội dung khiêu dâm, đánh bạc, dịch vụ bất hợp pháp, v.v. 
  • Sử dụng cấu trúc site:yourwebsite và nhận thấy các nội dung có các kí tự lạ không phải nội dung mà website của bạn publish
  • Bạn nhận được báo cáo từ người dùng rằng khi truy cập vào website của bạn thì họ được chuyển sang 1 website khác không phải là website ban đầu của bạn.
  • Bạn nhận được báo cáo từ nhà cung cấp dịch vụ Hosting rằng trang web của bạn đang có cảnh báo mã độc hoặc spam. Ví dụ: nếu máy chủ lưu trữ Hosting cho bạn biết rằng họ đang nhận được báo cáo về email spam chứa liên kết đến trang web của bạn, điều này có thể có nghĩa là bạn đã bị tấn công. Những gì các hacker đang làm trong trường hợp này là gửi thư rác từ một nơi nào đó và sử dụng trang web của bạn như một liên kết để chuyển hướng mọi người đến một trang web mà họ sở hữu. Họ làm điều này bởi vì một liên kết đến trang web của bạn sẽ tránh các bộ lọc spam trong khi nếu chứa một liên kết đến trang web của riêng các hacker sẽ bị đánh dấu và sẽ vào bộ lọc spam của máy chủ Hosting.
  • Wordfence cảnh báo qua hệ thống Plugins hoặc gửi email đến người quản trị Website các vấn đề bất thường.

2. Sao lưu trang web ngay lập tức

Khi bạn đã chắc chắn rằng bạn đã bị tấn công, hãy sao lưu trang web của bạn ngay lập tức. Sử dụng FTP, hệ thống sao lưu của nhà cung cấp dịch vụ lưu trữ hoặc plugin sao lưu để tải xuống bản sao toàn bộ trang web của bạn. Lý do bạn cần làm là vì nhiều nhà cung cấp dịch vụ lưu trữ sẽ xóa ngay toàn bộ trang web của bạn nếu bạn báo cáo rằng trang web đã bị tấn công hoặc nếu họ phát hiện ra điều này. Nghe có vẻ điên rồ, nhưng đây là thủ tục tiêu chuẩn trong một số trường hợp để ngăn chặn các hệ thống khác trên mạng của họ bị lây nhiễm.

Hãy chắc chắn rằng bạn cũng sao lưu cơ sở dữ liệu trang web của bạn. Sao lưu các tệp và cơ sở dữ liệu của bạn phải là ưu tiên hàng đầu của bạn. Thực hiện việc này, sau đó bạn có thể chuyển sang bước tiếp theo để làm sạch trang web của mình một cách an toàn.

Chuẩn bị trước khi khôi phục lại web bị hack

Khi phát hiện ra web bị hack bạn cần backup web lại toàn bộ web và database sau đó xem lại file log để xem lại các hoạt động trên web để biết web bị tấn công vào khi nào.

Sau khi biết được thời gian bị tấn công, nếu web bạn ít có nội dung đăng tải mới thì có thể thì khôi phục lại bản backup của web trước khi bị tấn công. Sau đó kiểm tra lại các lỗi bảo mật cho web và nâng cấp hệ thống bảo mật để tránh web tiếp tục bị hack sau này.

Nếu web bạn có nhiều nội dung mới đăng tải thì bạn cần khôi phục lại theo cách dưới đây để có thể lấy được toàn bộ nội dung và làm sạch web.

– Đối với source code: Nếu bạn còn bản backup trước đó thì có thể sử dụng lại. Nhưng theo mình thì tốt nhất bạn nên bỏ nó đi và sử dụng bộ code mới vì bộ code cũ có thể chứa lỗ hổng bảo mật mà bạn chưa fix được.

– Đối với database: Bởi vì hầu hết shell hiện nay đều được mã hóa base64 nên chúng ta sẽ tìm trong database xem có chứa đoạn mã base64 nào không. Để tìm kiếm trong database bạn truy cập vào phpMyadmin và mở database web bị hack lên. Sau đó click vào tab Search nhập vào từ khóa “base64″ và chọn tất cả các bảng để tìm kiếm như sau:

huong dan khoi phuc web wordpress bi hack 1

Nếu kết quả trả về bạn thấy bảng nào có chứa từ khóa tìm kiếm thì phải kiểm tra thật cẩn thận bảng đó. Nếu không có kết quả nào trả về thì có thể database của bạn không bị tấn công và bạn không phải lo về data.

Như vậy, chúng ta có thể tin rằng với database chúng ta xuất ra như cách làm dưới đây sẽ không quá lo về vấn đề chứa mã độc trong đó. Và bây giờ chúng ta bắt đầu đi vào các bước để khôi phục lại dữ liệu web WordPress bị hack.

3. Khôi phục lại trang web WordPress đã bị tấn công:

Dưới đây là các bước khi khôi phục lại trang web của bạn:
  • Bạn thường có thể xóa mọi thứ trong thư mục wp-content/plugins/ , việc này sẽ không mất dữ liệu hoặc phá vỡ cấu trúc trang web của mình. Lý do là vì đây là những plugin mà bạn có thể cài đặt lại và WordPress sẽ tự động phát hiện nếu bạn đã xóa một plugin và sẽ vô hiệu hóa plugin đó. Chỉ cần đảm bảo xóa toàn bộ thư mục trong wp-content/plugins. Ví dụ: nếu bạn muốn xóa plugin Wordfence, bạn phải xóa wp-content/plugins/wordfence và mọi thứ trong thư mục đó
  • Bạn thường chỉ có một thư mục chủ đề (theme) được sử dụng cho trang web của bạn trong thư mục wp-content/themes. Nếu bạn biết chính xác theme bạn có thể xóa tất cả các thư mục theme khác mà không phải theme chính bạn đang sử dụng.
  • Các thư mục wp-admin và wp-includes rất hiếm khi có các tệp mới được thêm vào chúng. Vì vậy, nếu bạn tìm thấy bất cứ điều gì mới trong những thư mục đó, nó có xác suất cao là mã độc.
  • Kiểm tra các bản sao lưu cũ của WordPress. Chúng tôi thường thấy các trang web bị nhiễm mã độc mặc dù được quản trị viên thông báo như sau “Nhưng tôi đã cập nhật trang web của mình và đã cài đặt plugin bảo mật tại sao tôi lại bị tấn công”. Đôi khi điều xảy ra là do bạn hoặc nhà phát triển sẽ sao lưu tất cả các tệp trang web của bạn vào thư mục con như ‘old/’ có thể truy cập được từ web. Sao lưu này không được duy trì và mặc dù trang web chính của bạn được bảo mật, một hacker có thể xâm nhập vào đó, lây nhiễm và truy cập trang web chính của bạn từ các mã độc mà họ đã cài vào. Vì vậy, không bao giờ để lại các cài đặt WordPress cũ nằm xung quanh và nếu bạn bị tấn công, hãy kiểm tra chúng trước vì có thể chúng chứa đầy phần mềm độc hại.

4. Một vài mẹo nhỏ giúp khôi phục trang web Wordpress dễ dàng hơn

4.1 Dùng plugin Wordfence

Wordfence là 1 plugins hiệu quả trong việc quét và làm sạch trang web của bạn. Một số tính năng của Plugin Wordfence trong quét virus trên trang web sử dụng Wordpress (Tìm hiểu và tải về cài đặt tại https://wordpress.org/plugins/wordfence/ ):
  • Phân biệt tất cả các tệp nguyên mẫu của WordPress, các chủ đề và plugin nguồn mở sẽ trông như thế nào để phát hiện các tệp nguồn của bạn có bị nhiễm ngay cả khi đó là một mã độc mới chưa từng thấy trước đây hay không.
  • Tìm kiếm bằng cách sử dụng so sánh đối sánh phức tạp kết hợp với cơ sở dữ liệu của Wordfence về các mã độc đã biết được cập nhật liên tục. Bạn không thể làm điều này bằng các công cụ dòng lệnh unix đơn giản hoặc cPanel.
  • Wordfence tìm kiếm các URL nhiễm mã độc độc hại bằng cách sử dụng danh sách Google Safe Browsing.
  • Wordfence sử dụng nhiều nguồn dữ liệu khác như SpamHaus để tìm phần mềm độc hại và nhiễm trùng trên hệ thống của bạn.

4.2 Cách dọn dẹp trang web bị tấn công bằng Wordfence:

  1. Nâng cấp trang web của bạn lên phiên bản WordPress mới nhất.
  2. Nâng cấp tất cả các chủ đề(themes) và plugin của bạn lên phiên bản mới nhất.
  3. Thay đổi tất cả mật khẩu trên trang web, đặc biệt là mật khẩu quản trị viên.(admin)
  4. Tạo một bản sao lưu khác và lưu trữ riêng nó vào bản sao lưu mà chúng tôi khuyên bạn thực hiện ở trên. Bây giờ bạn có một trang web bị nhiễm mã độc nhưng trang web đó đang chạy phiên bản mới nhất của mọi thứ. Nếu bạn làm website bị lỗi trong khi làm sạch trang web của bạn bằng cách sử dụng Wordfence bạn có thể quay trở lại bản sao lưu này và bạn không phải truy lại tất cả các bước ở trên.
  5. Đi đến trang tùy chọn Wordfence và đảm bảo rằng dưới tiêu đề "Scans to include"  mọi thứ được check bao gồm tùy chọn quét tệp bên ngoài cài đặt WordPress của bạn. Nếu quá trình quét mất quá nhiều thời gian hoặc không hoàn thành, bạn có thể bỏ chọn tùy chọn cuối cùng này và cũng tắt tính năng quét "high sensitivity" và quét "image file". Sau đó thử lại.
  6. Khi kết quả xuất hiện, bạn có thể thấy một danh sách rất dài các tệp bị nhiễm. Hãy dành thời gian của bạn kiểm tra và làm việc thông qua danh sách trên.
  7. Kiểm tra mọi tệp đáng ngờ và chỉnh sửa các tệp đó bằng tay để xóa chúng hoặc xóa tệp
  8. Xem bất kỳ tệp tin core, chủ đề và plugin nào đã thay đổi. Sử dụng tùy chọn Wordfence cung cấp để xem những gì đã thay đổi giữa tệp gốc và tệp của bạn. Nếu các thay đổi có vẻ độc hại, hãy sử dụng tùy chọn Wordfence để sửa tệp.
  9. Từ từ làm việc theo cách của bạn thông qua danh sách cho đến khi nó trống.
  10. Chạy một lần quét khác và xác nhận trang web của bạn được sạch sẽ.
  11. Nếu bạn vẫn cần trợ giúp, chúng tôi cung cấp dịch vụ làm sạch web thương mại. Bạn có thể tìm hiểu thêm bằng cách gửi email tới genbiz@wordfence.com với chủ đề “Paid site cleaning service”.

4.3 Nếu bạn có quyền SSH

Nếu bạn có quyền truy cập SSH vào máy chủ của mình, hãy đăng nhập và chạy lệnh sau để xem tất cả các tệp đã được sửa đổi trong 2 hoặc mấy ngày qua. Lưu ý rằng dấu "." cho biết thư mục hiện tại. Để tìm hiểu thư mục hiện tại của bạn là gì trong SSH, hãy nhập ‘pwd’ không có dấu ngoặc kép.

find . -mtime -2 -ls

Hoặc bạn có thể chỉ định một thư mục cụ thể:

find /home/yourdirectory/yoursite/ -mtime -2 -ls

Hoặc bạn có thể thay đổi tìm kiếm để hiển thị các tệp được sửa đổi trong 10 ngày qua:

find /home /yourdirectory/yoursite/ -mtime -10 -ls

Chúng tôi khuyên bạn nên thực hiện tìm kiếm ở trên và tăng dần số ngày cho đến khi bạn bắt đầu thấy các tệp đã thay đổi và có dấu hiệu bất thường. Nếu bạn không tự thay đổi bất cứ thứ gì kể từ khi bị tấn công, rất có khả năng bạn sẽ thấy các tập tin mà hacker đã thay đổi. Sau đó bạn có thể tự chỉnh sửa chúng để làm sạch bản hack. Đây là cách hiệu quả và đơn giản nhất để tìm ra tệp nào đã bị nhiễm và nó được sử dụng bởi mọi dịch vụ dọn dẹp trang web chuyên nghiệp.

Một công cụ hữu ích khác trong SSH là ‘grep’. Ví dụ: để tìm kiếm các tệp có chứa base64 (thường được sử dụng bởi tin tặc), bạn có thể chạy lệnh sau:

grep -ril base64 *

Điều này sẽ chỉ liệt kê các tên tập tin. Bạn có thể bỏ qua tùy chọn ‘l’ để xem nội dung thực tế của tệp nơi chuỗi base64 xảy ra:

grep -ri base64 *

Hãy nhớ rằng “base64” có thể xuất hiện trong mã hợp pháp. Trước khi xóa mọi thứ, bạn sẽ muốn đảm bảo rằng bạn không xóa tệp đang được sử dụng bởi một chủ đề hoặc plugin trên trang web của mình. Một tìm kiếm tinh tế hơn có thể trông như thế này:

grep --include = *. php -rn. -e "base64_decode"

Lệnh này tìm kiếm tất cả các tệp .php cho chuỗi “base64_decode” và in số dòng để bạn có thể dễ dàng tìm thấy mà chuỗi xuất hiện.

Bây giờ bạn đã biết cách sử dụng ‘grep’, chúng tôi khuyên bạn nên sử dụng grep kết hợp với ‘find’. Những gì bạn cần làm là tìm các tệp đã được sửa đổi gần đây, xem những gì đã được sửa đổi trong tệp và nếu bạn tìm thấy một chuỗi văn bản phổ biến như “bad hacker was here” thì bạn có thể grep tất cả các tệp của mình cho văn bản đó như sau: grep -irl "bad hacker was here" *

 

và điều đó sẽ cho bạn thấy tất cả các tệp bị nhiễm chứa văn bản "bad hacker was here".

Nếu bạn có kinh nghiệm khôi phục lại rất nhiều trang web bị nhiễm, bạn sẽ bắt đầu nhận thấy các file nhiễm mã độc thường được tìm thấy ở các thư mục tải lên trong cài đặt WordPress. Lệnh dưới đây cho thấy cách tìm tất cả các tệp trong thư mục tải lên KHÔNG phải là tệp hình ảnh của Wordpress. Đầu ra được lưu trong tệp nhật ký có tên là "uploads-non-binary.log" trong thư mục hiện tại của bạn.

find public_html/wp-content/uploads/ -type f -not -name "*.jpg" -not -name "*.png" -not -name "*.gif" -not -name "*.jpeg" >uploads-non-binary.log

Sử dụng hai công cụ dòng lệnh đơn giản “grep” và “find” bạn có thể xóa toàn bộ trang web bị nhiễm. Thật dễ dàng! Tôi cá rằng bạn đã sẵn sàng làm sạch trang web của riêng mình vào thời điểm này.

5. Nếu đã thực hiện các bước trên rồi nhưng trang vẫn bị lỗi?

5.1 Tôi đã xóa trang web WordPress bị tấn công của mình nhưng Google Chrome vẫn cho tôi cảnh báo phần mềm độc hại. Tôi nên làm gì?

Bạn cần xóa trang web của mình khỏi danh sách Google Safe Browsing của Google. Đọc tài liệu Google này về cách làm sạch trang web của bạn. Dưới đây là các bước:
  • Đăng nhập vào Google Webmaster Tools
  • Thêm trang web của bạn nếu bạn chưa có.
  • Xác minh trang web của bạn, làm theo hướng dẫn của Google.
  • Trên trang chủ Công cụ quản trị trang web, chọn trang web của bạn.
  • Bấm Trạng thái trang web(Site Status), rồi bấm Phần mềm độc hại(Malware).
  • Nhấp vào Yêu cầu xem xét(Request a Review).

5.2 Khách truy cập trang web của tôi đang nhận được cảnh báo từ các sản phẩm bảo mật và hệ thống chống virus khác. Tôi nên làm gì?

Website của bạn không nằm trong danh sách Google Safe Browsing của Google là một điều khả quan, nhưng bạn có thể có một số công việc phía trước bạn. Bạn cần phải giữ một danh sách của tất cả các sản phẩm chống virus mà nói rằng trang web của bạn bị nhiễm. Điều này có thể bao gồm các sản phẩm như ESET anti-virus, McAfee’s Site Advisor và các sản phẩm khác.

Truy cập vào từng trang web của nhà sản xuất chống virus và tìm hướng dẫn của họ để xóa trang web của bạn khỏi danh sách các trang web nguy hiểm. Điều này thường được gọi là "whitelist” của nhà sản xuất chống virus, vì vậy, Google sẽ có các cụm từ như ‘whitelist’, ‘site removal’, ‘false positive’ và tên sản phẩm thường sẽ dẫn bạn tới nơi bạn có thể xóa trang web của mình ra khỏi danh sách chặn của các nhà sản xuất chống virus.

5.3 Làm thế nào tôi có thể kiểm tra thủ công xem trang web của tôi có được liệt kê trong Danh sách Duyệt web an toàn của Google không?

Truy cập URL sau và thay thế example.com bằng địa chỉ trang web của riêng bạn: http://www.google.com/safebrowsing/diagnostic?site=http://example.com/

Bạn có thể cung cấp các trang website con hoặc homepage để kiểm tra. Trang xuất hiện rất đơn giản nhưng chứa thông tin chi tiết về trạng thái hiện tại của trang web của bạn, lý do nó được liệt kê trên danh sách lừa đảo hoặc phần mềm độc hại của Google (Danh sách duyệt web an toàn của google thực sự là hai danh sách) và phải làm gì tiếp theo.

6. Phải làm gì khi trang web của bạn sạch sẽ:

Xin chúc mừng nếu bạn đã quản lý để làm sạch trang web của bạn. Bây giờ bạn cần chắc chắn rằng nó không bị tấn công lần nữa. Dưới đây là cách thực hiện:
  • Cài đặt Wordfence và chạy quét thường xuyên trên trang WordPress của bạn.
  • Đảm bảo WordPress và tất cả plugin và chủ đề được cập nhật. Đây là điều quan trọng nhất bạn có thể làm để bảo mật trang web của mình.
  • Đảm bảo bạn sử dụng mật khẩu mạnh khó đoán.
  • Loại bỏ tất cả các cài đặt WordPress cũ nằm xung quanh trên máy chủ của bạn.
  • Đăng ký danh sách gửi thư cảnh báo bảo mật của chúng tôi ở cuối trang chủ của chúng tôi để được thông báo về các bản cập nhật bảo mật quan trọng liên quan đến WordPress: http://www.wordfence.com/

Với cách khôi phục web WordPress bị hack mà mình hướng dẫn ở trên hi vọng bạn có thể áp dụng để cứu lấy trang web của mình. Đặc biệt là có thể khôi phục lại web với bộ code và dữ liệu sạch sẽ, loại bỏ triệt để mã độc.