Xác minh rằng tôi đã loại bỏ hoàn toàn một hack WordPress?


105

Blog WordPress vui nhộn của tôi tại http://fakeplasticrock.com (chạy WordPress 3.1.1) đã bị hack - nó đang hiển thị <iframe>trên mỗi trang như vậy:

<iframe src="http://evilsite.com/go/1"></iframe>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

Tôi đã làm như sau

  1. Nâng cấp lên 3.1.3 thông qua hệ thống nâng cấp WordPress tích hợp
  2. Đã cài đặt Trình quét khai thác (rất nhiều cảnh báo quan trọng đối với các tệp bất thường) và AntiVirus (điều này cho thấy tất cả đều xanh và sạch, vì vậy tôi đã gỡ cài đặt và xóa nó sau khi chạy)
  3. Thay đổi mật khẩu MySQL.
  4. Đã thay đổi tất cả mật khẩu người dùng WordPress.
  5. Đã kết nối qua FTP và tải xuống toàn bộ hệ thống tệp (không lớn, đây là máy chủ chia sẻ Linux chỉ dành cho WordPress)
  6. Đã thay đổi hệ thống tệp so với ZIP chính thức của WordPress 3.1.3 và xóa hoặc ghi đè lên bất cứ thứ gì không khớp.

Tôi khá chắc chắn rằng

  • tất cả các tệp trên đĩa đều là các tệp WordPress 3.1.3 chính thức
  • không có tệp "phụ" nào trên đĩa ngoài tệp của tôi /theme, plugin Khai thác (mà tôi vừa tải xuống), /uploadsthư mục và một số ít các tệp dự kiến ​​khác. Plugin khác của tôi, wp-recaptcha, phù hợp với phiên bản tải xuống chính thức hiện tại.
  • Tôi cũng đã kiểm tra .htaccesstập tin và không có gì sai ở đó

So sánh tệp wordpress 3.1.3 trong Beyond So sánh

Tôi đã không chạm vào cơ sở dữ liệu , nhưng tôi đang cố gắng nghĩ làm thế nào bất cứ thứ gì trong cơ sở dữ liệu có thể độc hại nếu không có mã PHP đặc biệt để làm cho nó hoạt động?

Blog WordPress của tôi hiện có vẻ ổn và không có hack (tôi nghĩ vậy), nhưng tôi còn cần kiểm tra gì nữa không?


1
Bạn nên giữ cho blog cập nhật. :)
fuxia

Câu trả lời:


80

Bạn đã xác định các vector khai thác? Nếu không, bạn có thể để mình mở cho khai thác trong tương lai.

Những điều khác cần xem xét:

  1. Thay đổi mật khẩu người dùng quản trị viên WordPress - đã xong
  2. Thay đổi mật khẩu người dùng tài khoản Hosting
  3. Thay đổi mật khẩu FTP
  4. Thay đổi mật khẩu người dùng MySQL db - xong
  5. Thay đổi tiền tố bảng db
  6. Cập nhật nonces / salt wp-config của bạn
  7. Kiểm tra quyền thư mục / tập tin của bạn
  8. Chặn truy cập duyệt thư mục, thông qua .htaccess
  9. Vượt qua tất cả mọi thứ trong mục Hardening WordPress Codex
  10. Xem qua mọi thứ trong Câu hỏi thường gặp Trang web của tôi đã bị hack Mục nhập Codex

1
xin lỗi, bỏ qua đề cập - tất nhiên tôi đã thay đổi mật khẩu WordPress. Cập nhật bài viết và kiểm tra ra khỏi danh sách ở đây! Tôi không thể nghĩ ra bất kỳ cách nào họ có thể có mật khẩu lưu trữ của tôi hoặc mật khẩu FTP chỉ bằng cách vào WordPress; thông tin đó không ở đâu trong hệ thống tập tin hoặc cơ sở dữ liệu.
Jeff Atwood

9
Bạn có vector khai thác có thể ngược; không có khả năng WordPress -> lưu trữ tài khoản , mà là tài khoản lưu trữ (thông qua máy chủ hoặc FTP) -> WordPress .
Chip Bennett

2
@Jeff một số khai thác ở cấp độ máy chủ mà bạn không có quyền kiểm soát (ngoài việc tìm kiếm một máy chủ tốt hơn). Nhưng chỉ vì bạn chưa sử dụng thông tin đăng nhập máy chủ / FTP không có nghĩa là ai đó đã đánh cắp chúng , bằng cách truy cập vào tài khoản lưu trữ của bạn.
Chip Bennett

7
Có một cách khai thác rất phổ biến làm cho các vòng mà phần mềm độc hại lây nhiễm vào máy trạm của bạn (hoặc máy trạm của nhà thầu), đào mật khẩu đã lưu trong chương trình FTP yêu thích của bạn (hoặc hỗ trợ FTP) và gửi chúng cho kẻ tấn công, sau đó thỏa hiệp trang web của bạn và sử dụng nó để phát tán cùng một phần mềm độc hại cho các quản trị web khác. Đó là một cách phổ biến trong đó mật khẩu FTP của bạn bị đánh cắp. Điều đặc biệt xảo quyệt là sự lây lan của nó thông qua các trang web bình thường như của bạn, chứ không phải các trang web hạt giống mà bạn có thể cẩn thận.
tylerl

3
FYI, nếu bạn có quyền truy cập vào dòng lệnh, WP-CLI có lệnh kiểm tra tổng kiểm tra sẽ kiểm tra từng tệp dựa trên wordpress.org
William Turrell

26

Nhìn vào thông báo "duyệt web an toàn" của Google Chrome, bạn sẽ nhận được ".cc iFrame hack" dường như đang diễn ra rất nhiều gần đây. Tôi nghĩ rằng 3.1.3 sẽ khắc phục điều này, nhưng hãy kiểm tra tệp index.php của bạn trong thư mục gốc nếu trang web của bạn, đó là nơi nó tiếp tục tấn công tôi cho đến khi tôi nhận được MỌI THỨ cập nhật và mật khẩu đã thay đổi.

Có một số thứ RẤT NHIỀU người có thể làm với việc tiêm bài và bình luận. Bạn có thể chạy các truy vấn sau đối với cơ sở dữ liệu của mình để giúp tìm một số trong số chúng tôi đã viết phần còn lại của "theo dõi" của tôi ở đây .

SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%display:%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?%'
UNION
SELECT * FROM wp_posts WHERE post_content LIKE '%<?php%'
SELECT * FROM wp_comments WHERE comment_content LIKE '%<iframe%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<noscript%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%display:%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?%'
UNION
SELECT * FROM wp_comments WHERE comment_content LIKE '%<?php%'

Hi vọng điêu nay co ich!


4
Tôi sẽ thêm SELECT * FROM wp_* WHERE comment_content LIKE '%<?%'SELECT * FROM wp_* WHERE comment_content LIKE '%<?php%'chỉ để chắc chắn ...
SeanJA

4
Ồ, một lưu ý cuối cùng. Tôi giả sử bạn có các công cụ Google Webmaster gắn liền với tên miền này. Khi bạn đã dọn dẹp mọi thứ, bạn có thể gửi yêu cầu từ tài khoản công cụ quản trị trang web của mình để Google quét lại trang web và xóa thông báo cảnh báo. Họ xử lý các yêu cầu từ các công cụ quản trị trang web thường trong vòng một ngày. Nếu không, bạn sẽ vào "danh sách nghịch ngợm" trong 90 ngày.
Dillie-O

Tìm thấy một loạt các kết quả nhưng đó là do iframe nhúng cho Vimeo.
tooshel

20

Cơ sở dữ liệu cũng có thể chứa mã độc hại: tài khoản người dùng bị ẩn hoặc các giá trị được in không được lưu ở đâu đó. Ngoài ra, hãy kiểm tra thư mục tải lên của bạn để biết các tệp không thuộc về đó.

Ồ, và cố gắng hiểu làm thế nào kẻ tấn công tìm thấy đường vào trang web của bạn. Trên các tài khoản được chia sẻ, nó thường là toàn bộ máy chủ. Kiểm tra các trang web khác trên máy chủ để biết các blog bị hack hoặc các trang khác. Đọc nhật ký FTP của bạn. Nếu bạn không biết làm thế nào nó xảy ra, bạn không thể ngăn chặn lần nghỉ tiếp theo.


Trình quét khai thác sẽ không tìm thấy bất kỳ tài khoản người dùng ẩn nào?
Jeff Atwood

@Jeff Atwood Tôi sẽ không dựa vào điều đó. Bảng người dùng của bạn không lớn. Bạn có thể dễ dàng đọc nó mà không cần bất kỳ plugin nào.
fuxia

Tôi đã kiểm tra wp_usersbảng và chỉ có 2 hàng, cả hai đều mong đợi .. không có gì trong /uploadthư mục bất thường (chỉ gifs và pngs và jpeg)
Jeff Atwood

@Jeff Atwood Bạn đã xem xét các tập tin hay chỉ ở phần mở rộng? Có phải tất cả những tập tin được liệt kê trong thư viện phương tiện?
fuxia

4
Các tập tin hình ảnh là một phương thức phân phối tải trọng khá phổ biến. Xem tại đây và Nhóm đánh giá chủ đề cũng đã chạy vào Chủ đề bằng cách sử dụng khai thác TIFF tương tự.) Vì vậy, yeah: Tôi sẽ kiểm tra từng cái, để đảm bảo đó là một phần của Thư viện phương tiện. (Quét mức cao dễ dàng: kiểm tra các hình ảnh không có kích thước hình thu nhỏ được xác định.)
Chip Bennett

13

Rất tiếc khi biết bạn bị hack - mặc dù có vẻ như bạn đã hoàn thành công việc khôi phục tốt!

Hệ thống tập tin của bạn nghe có vẻ vàng, tôi sẽ không nói bạn có thể làm gì khác ở đây.

Tôi nghĩ rằng Miningit Scanner sẽ đưa ra một cảnh báo nếu nó tìm thấy bất kỳ tập lệnh, iframe nào, PHP (mặc dù chỉ nguy hiểm nếu eval'd) hoặc mã bất thường khác trong cơ sở dữ liệu của bạn.

Tôi không chắc chắn nếu nó kiểm tra các bảng khác ngoài bài đăng và nhận xét, có thể đáng để kiểm tra /wp-admin/options.phpnhanh và xem bạn có phát hiện điều gì kỳ lạ không.

Tôi cũng sẽ kiểm tra bảng người dùng của bạn trong máy khách MySQL (người dùng có thể ở trong cơ sở dữ liệu nhưng không hiển thị trong quản trị viên).


chắc chắn là một ý tưởng tốt để chạy truy vấn MySQL trên bảng người dùng để đảm bảo không có gì bất ngờ ở đó và tôi đã làm điều đó. Mẹo tốt!
Jeff Atwood

8

Kiểm tra các công cụ Google Webmaster để biết hai điều:

  • xác minh rằng trang web của bạn chưa được gắn cờ là bị xâm phạm và yêu cầu xem xét lại nếu nó có
  • kiểm tra trang web của bạn dưới dạng Googlebot và xác minh rằng không có thư rác nào được chèn mà Googlebot chỉ hiển thị - ví dụ về việc này là hack WP Pharma

Ngoài ra, tôi sẽ triển khai lại chủ đề hoặc kiểm tra nó cực kỳ cẩn thận. Một vài dòng PHP có thể định nghĩa lại các hàm PHP lõi để chúng trích xuất mã độc từ cơ sở dữ liệu, đặc biệt là các bảng lưu trữ khóa / giá trị wp_options


vâng, tôi chắc chắn đã gửi lại trang web thông qua Google Webmaster Tools và hiện tại nó đã bị "xóa".
Jeff Atwood

6

Tìm kiếm cơ sở dữ liệu qua phpmyadmin cho "iframe" hoặc kết xuất cơ sở dữ liệu và tìm kiếm văn bản.

Và kiểm tra người dùng vô hình trong bảng người dùng; Tôi đã thấy người dùng trong các bảng không hiển thị trong WP Admin >> Người dùng.

Các tùy chọn sạch «Các plugin WordPress sẽ hiển thị những thứ rác từ các plugin cũ và có thể dễ bị tổn thương còn lại trong cơ sở dữ liệu.

Chủ đề của bạn cũng thiếu <head>thẻ, vì vậy tôi sẽ kiểm tra xem trong trường hợp bạn đã chỉnh sửa chủ đề để xóa các liên kết xấu.

Và thông thường: và Cách tìm backlink trong WordPress bị hackHardening WordPress «WordPress Codex


5

"có gì khác tôi nên kiểm tra?" Bạn cần kiểm tra quy trình của mình và tìm hiểu xem bạn đã bị hack như thế nào (gần như chắc chắn vì bạn đã không vá kịp thời hoặc chính xác) và khắc phục điều đó, không chỉ là các triệu chứng.


5
Tôi nghi ngờ nó phải làm gì với việc không cập nhật WordPress (mặc dù có thể , nhưng nó chỉ là không thể xảy ra ). Bản thân WordPress gần như không bao giờ là vector khai thác. Các vectơ thông thường là cấu hình máy chủ không an toàn và thông tin đăng nhập FTP bị đánh cắp.
Chip Bennett

4

Điều đó hạnh phúc với tôi một lần, thông qua một rò rỉ trên trung gian. Tôi đã phải viết một plugin để kiểm tra cơ sở dữ liệu cho các liên kết được tiêm. Bạn có thể lấy nó ở đây như là một ý chính .

Nó khá thân thiện với người dùng, có một số bước cung cấp phản hồi và kiểm tra lại cơ sở dữ liệu của bạn sau khi bạn hoàn thành.

Chúc may mắn!


4

Tôi đã có một hack rất giống tôi phải sửa trên một trong các trang web khách hàng của mình.

Có các tập lệnh độc hại trong hệ thống tập tin (công cụ php base64_decode). Tuy nhiên, các bảng 'bài đăng' & 'bình luận' của cơ sở dữ liệu đã bị xâm phạm và mã iframe cũng bị phân tán qua dữ liệu đó.

Ít nhất tôi sẽ chạy một vài tìm kiếm trên DB, để an toàn. :)


3

Kiểm tra các plugin của bạn !, Cho đến nay trong năm nay đã có 60 bản phát hành khai thác từ các plugin .org, tôi sẽ nghi ngờ con số thực sự cao hơn nhiều vì không ai thực sự làm việc toàn thời gian này.

Bạn đã liệt kê rằng bạn chỉ có một plugin, nó cũng có một lỗ hổng bảo mật (không chắc là nó đã tồn tại bao lâu và nó có thể không phải là vector).

wp-recaptcha-plugin
Khai thác được phát hành
: 2011 / 03-18 Phiên bản khai thác: 2.9.8

Tác giả cho biết ông viết lại với phiên bản 3.0, nhưng không có đề cập đến bản vá bảo mật.

http://www.wpsecure.net/2011/03/wp-recaptcha-plugin/

Thay đổi nhật ký: http://wordpress.org/extend/plugins/wp-recaptcha/changelog/


2

Tôi sử dụng một máy chủ đám mây và có số cổng ssh lập dị ngẫu nhiên không có ftp nào cả. Mật khẩu cực kỳ khó hack. Tất cả quyền truy cập root bị từ chối hoàn toàn. Tôi đồng ý rằng WordPress sẽ không phải là thủ phạm của bạn. Một điều khác cần kiểm tra là các phiên ftp không đóng, vi-rút trên máy tính cá nhân của bạn (hãy nhớ rằng bạn có thể tải tệp lên trang web của mình và ai đã tải tệp đó có thể bị nhiễm vi-rút tương tự), cũng không giữ mật khẩu của bạn trên các trang web công cộng hoặc riêng tư các trang web luôn luôn đặt chúng xuống giấy không bao giờ trên một tài liệu từ hoặc notepad.

Cuối cùng hãy hỏi chủ nhà của bạn nếu gần đây họ có vi phạm vì họ nên thiết lập tường lửa


2

Kiểm tra ngày của các tập tin của bạn. Không có tệp nào có dữ liệu thay đổi mới hơn lần chỉnh sửa / cài đặt cuối cùng của bạn!

Nhưng điều này cũng có thể được làm giả. Cách chắc chắn nhất sẽ là so sánh (ví dụ: so sánh băm) tất cả các tệp với các tệp cài đặt gốc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.