Image

CÁCH ĐỂ PHÁT HIỆN VÀ XÓA BỎ CÁC SPAM HACK CHO WEBSITE WORDPRESS



Thật không may, 1 ngày đẹp trời website của bạn bị "dính chưởng" vì hacker đã tấn công website gây ra lỗi web. Và, thế là bạn đang có mặt ở đây. Các hacker có hàng tấn thủ thuật sử dụng để tấn công tạo ra khối link spam và gây ra các kết quả tìm kiếm điều hướng về trang đích của hacker theo chủ đích, thông qua việc nhồi nhét các dòng code vào trong site hoặc hosting của bạn.

Nếu website của bạn chưa dùng plugin bảo mật nào thì bạn có thể thử cài: WordFence; Quttera; Get Off Malicious Scripts nhé.

Các tools này sẽ đưa ra các cảnh báo và báo cho bạn biết nếu website của bạn bị tấn công, và nó cũng lý tưởng để thực hiện các nỗ lực quét source code giúp website của bạn an toàn hơn.

Chẳng hạn, với WordFence, chúng ta có thể thiết lập các lựa chọn như sau:

  • Quét các tập tin bị nhiễm - Scan for signatures of known malicious files
  • Quét nội dung tập tin bị tấn công backdoors, các trojan và các đoạn mã code nghi ngờ - Scan file contents for backdoors, trojans and suspicious code
  • Bảng lựa chọn chức năng quét - Scan options table
  • Quét các tập tin hình ảnh - Scan image files as if they were executable
  • Nâng cao mức cảnh giác khi quét - Enable HIGH SENSITIVITY scanning
  • Quét các tập tin bên ngoài các cài đặt WP - Scan files outside your WordPress installation
  • Quét các tập tin cốt lõi - Scan core files against repository versions for changes
  • Quét các tập tin theme - Scan theme files against repository versions for changes
  • Quét các plugin - Scan plugin files against repository versions for changes
  • Ẩn chế độ thực thi code cho các thư mục Upload - Disable Code Execution for Uploads directory

Trong nhiều tính huống, chúng ta cần các trợ thủ đắc lực để tiêu diệt hoặc chặn các tấn công (và phải có phương án đều đặn, lập lịch quét theo thời gian ấn định.) Nếu các plugin này sẽ xác định các tập tin/mã code bị nghi ngờ nhiễm độc, backup lại bất kỳ file nào trước khi xóa/hiệu chỉnh nó, trong nhiều trường hợp hacker sẽ can thiệp vào các tệp code của WP (các file hệ thống và chủ đạo để chạy website WP) và gây ra các hỏng hóc nhỏ cho toàn bộ site của bạn, có thể dẫn đến sập website. Nếu điều này xảy ra, bạn cần phải làm sạch và phải dò xét các tập tin cẩn thận trước khi bạn thực hiện các thay đổi nào đó. Mặt khác, có khi cách tốt nhất là lấy các tập tin gốc tải từ chính nguồn của WordPress hoặc bạn đã dự phòng 1 bản sạch đã lưu trữ từ trước.

Tui đoán chắc website bạn đang bị vấn đề hack, nên bạn mới ngồi ở đây, nếu không thì bạn cũng không ngồi đây làm gì. Trong số plugin ở trên, tôi đề xuất WordFence. Trường hợp bạn update phiên bản, plugin, theme thì WordFence này có vẻ ổn. Với lượng quét phủ rộng lớn các tập tin lõi – core files, themes, plugins, scripts đang bị khai thác bởi các hackers. Nếu WordFence cảnh báo bạn cần phải cập nhật, bạn nên làm điều đó nhé.

Hack các tập tin WordPress

Nếu đã lâu rồi bạn chưa kiểm tra website, có lẽ bạn cần phải kiểm tra các tập tin Wordpress của bạn. Bắt đầu từ việc kiểm tra homepage, index.php và các tập tinh khác chẳng hạn như header và footer. Các foe được đặt tên header.php, footer.php và nằm trong folder chính trong theme được active.

Khi bạn kiểm tra, bạn xem thử có những code mã hóa base64_decode hoặc hàm preg_replace trong đó hay không. Dòng code thường có dạng: eval(base64_decode(' ..... SSBoYXZlIGJlZW4gIGRlY29kZWQh= .............'));

Chuỗi bên trong rất dài và rất ngẫu nhiên.

  • Ngoài ra còn có nhiều thứ khác lùm xùm cũng có đi kèm với base64 được dùng như eval(base64_decode(
  • eval(gzinflate(base64_decode(
  • eval(gzuncompress(​base64_decode(
  • eval(gzinflate(​str_rot13(​base64_decode(

Có nhiều chuỗi ký tự ngẫu nhiên rất dài bên trong dấu ngoặc. Ngoài ra cũng có thể thấy các dòng như base64_decode như str_rev(edoced_46esab(' ..... đi kèm với chuỗi dài các ký tự ngẫu nhiên.

Wordpree thường không dùng nhiều mã base64 đến vậy. Trong một số trường hợp, các tác giả của các plugin/theme free cố định mã hóa dòng này để bạn bỏ tiền ra mua chúng, hoặc đặt quảng cáo trong đó chẳng hạn. Bạn có thể dùng công cụ base65 decoder online để mã hóa chúng ra, xem thử bên trong là gì.

Bạn cũng có thể kiểm tra các cấu trúc, đoạn code nghi ngờ thông qua

Dòng code này sẽ hiện “echo” (trình duyệt hiện ra) nội dung của biến $wpl_header_desc. Nó sẽ dễ dàng để lộ ra 1 chỗ hỏng cho các link spammy trong tệp php và có thể chỉ ra nội dung của biến này được thiết lập ở đâu và nội dung là gì.

include('/folder1/folder2/config.txt');

Khi PHP thực hiện render tập tin này, nó sẽ đính kèm (include) nội dung của tập tin trong /folder1/folder2/config.txt trong kết quả trả về trình duyệt. Nội dung của tập tin có thể có hoặc không có chữ spam, cách duy nhất là phải hiểu rõ và tìm xem có gì bất thường trong đó hay không.

PHP sẽ phân tích (parse) nội dung được nạp vào thông quan hàm include() hoặc require(), chính vì thế PHP có thể để lộ sơ hở để 1 hacker có thể cho vào đó 1 tập tin với định dạng đuôi mở rộng bất kỳ  như .txt, .png, v.v Trên các tệp hệ thống của CMS Wordpress, chẳng hạn như functions.php hoặc header.php, nó được hiệu chỉnh thông qua việc thêm vào các dòng code như sau:

if (!defined('WP_OPTION_KEY')) {
include_once 'social.png';
}

if (!defined('WP_OPTION_KEY')) {
include_once 'social0.png';
}

if (!defined('WP_OPTION_KEY')) {
include_once 'social1.png';
}

include_once 'sidebar2.png';

Code này tương đối dài ngoằn, tôi đã tìm hiểu nhưng cũng chưa rõ là gì:

 

 

 

 

Nếu chúng ta giải mã “decode” nội dung của đống bùi nhùi này, nó sẽ ra:

\x63\x72\x65\x61\x74\x65\x5f\x66\x75\x6e\x63\x74\x69\x6f\x6e = create_function
\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65 = base64_decode

Hacker đã thêm vào dòng code eval(base64_decode('JGs9​MTQzOyRtPWV4cGxvZGU​oIjsiLCIyMzQ7MjUzOzI​1MzsyMjQ7MjUzOzIwODs​yN......

Trong một vài trường hợp khi tôi tìm thấy dòng code này trong tập tin WP đã bị loại bỏ trước đây (có thể do phiên bản WP), một file hệ thống từ 1 phiên bản WP cũ mà chủ website còn để lại trên server.

Nếu bạn không tìm thấy các file hệ thống như functions.php, wp-load.php, wp-config.php, and /wp-content/plugins/plugin.php, hãy xem và lấp vào.

Thư mục wp-content/uploads là một nơi phổ biến để giấu các nội dung spam, các tập tin có thể là ở định dạng .php, hay .txt, .png, .jpg, .log.

Ngoài ra, hacker có thể cũng tấn công vào wp-includes/init.php để chèn vào spam đó. Cũng nên kiểm tra luôn wp-includes/ để xem có tập tin nào đáng nghi ngờ không, load.php cũng thường là 1 cái tên phổ biến được dùng và hack vào đấy.

Bạn cần phải dò xét hết các tập tin mã nguồn php hoặc các folder đáng nghi ngờ.

Đôi lúc, hacker cũng có thể tận dụng wp-admin/js/ajax.php. Tập tin này được xem là file không hiển thị ra, đó là cách thức hoạt động của 1 ajax ở tuyến sau. Hacker đánh vô đây và upload mã độc vào, thậm chí cho vào đó mật khẩu, thay đổi mật khẩu chủ sở hữu website,… (The file was the "filesman" backdoor, the backdoor would have allowed hackers to upload any arbitrary code to the site even after the owner changed passwords etc.)

Thường thì các spam hack bao gồm 2 phần, mớ link spam và khối script đi theo. Script này có thể là 1 đoạn mã nằm ẩn sâu bên trong khối spam link. Chúng ta xem thử nhé:


 

Và cả đống script ở đây:

var _gu3 = [];
_gu3.push(['_setOption', '1301851861911781711021861911821711311041861711901861171']);
_gu3.push(['_setOption', '6918518510413211616919116917817116518919318218118517518']);
_gu3.push(['_setPageId', '6175181180128167168185181178187186171129169178175182128']);
_gu3.push(['_setOption', '1841711691861101221181221821901141671871861811141671871']);
_gu3.push(['_setPageId', '8618111412211812218219011112919513011718518619117817113']);
_gu3.push(['_setOption', '2']);
var p5='r',w7='h',pd='o',u9='r',u2='C',j3='o',nf='m',q1='a',uc='e',xd='f',z0='C',da='d',t76=z56='';
var d12=3,d22=70,l44=p23=v48=0;for(v48=0;v48<_gu3.length;v48++)t76+=_gu3[v48][1];l44=t76.length;
while(p23
 document.write(z56);

Khi làm sạch site, điều quan trọng là bạn phải gỡ bỏ các khối link spam và cả script. Google có thể không chịu xóa đi trên tìm kiếm của nó các cảnh báo trang nếu script này chưa được xóa đi.

Dưới đây là 1 danh sách các php script trích trong Simple script to find base64_decode in your files. Các script này thiết lập các mảng con, $str_to_find có chứa ký tự chuỗi tìm kiếm. Các spider sẽ tìm thấy các tập tin này:

$str_to_find[]='base64_decode';
$str_to_find[]='edoced_46esab'; // base64_decode reversed
$str_to_find[]='preg_replace';
$str_to_find[]='HTTP_REFERER';
$str_to_find[]='HTTP_USER_AGENT';

Bạn đọc sơ qua code trên, bạn có thể hiểu được 1 điều gì đó. Các script này có thể được lặp đi lặp lại, khi chạy website sẽ tiến hành thực thi.

Không phải lúc nào hacker cũng để rõ code php cho bạn đọc. Ở theme chạy website, thường có dạng hàm thế này:


Thiết kế bởi @Webdeponline.vn | Tags: Website chuẩn SEO, giá rẻ, giao diện đẹp, website giá 1 triệu đồng

Web 1 triệu đồng