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

Cách dọn dẹp trang web Drupal bị xâm phạm: Hướng dẫn gỡ mã độc từng bước

Trang web Drupal bị hack có thể cực kỳ đau đớn. Có nhiều lý do cho hack. Nhưng phổ biến nhất là mã độc, chèn code, spam, v.v. Nếu bạn tìm kỹ thuật gỡ mã độc Drupal, bạn đã đến đúng nơi. Hướng dẫn này chứa hướng dẫn từng bước dọn file Drupal và database trang web bị hack. Phát hiện mã độc và backdoor cũng được đề cập. Bài viết thiết kế dễ áp dụng cho user trung bình.

Drupal là một trong CMS lâu đời và an toàn nhất trong các CMS phổ biến ngày nay. Nó phục vụ hơn 1 triệu trang web. tuy nhiên, nhiều lỗ hổng đã được phát hiện ở Drupal năm nay. Giống như chuỗi lỗ hổng RCE mang tên Drupalgeddon. Điều này dẫn đến nhiều cài đặt Drupal bị hack trong vài tháng, đa số dùng để đào coin. Tuy nhiên, team bảo mật Drupal đã khá nhanh phát hành cập nhật cần thiết.

Drupal Hacked: Kết quả có thể của Drupal Hack

  • Trang lừa đảo (phishing) thiết kế đánh cắp thông tin nhạy cảm xuất hiện.
  • Khách hàng khiếu nại chuyển hướng độc hại.
  • Thông tin nhạy cảm như đăng nhập, ngân hàng, v.v. bán trên darknet.
  • Nội dung lạ xuất hiện do Japanese Keyword Hack hoặc Pharma Hack.
  • 'Tài khoản bị tạm ngưng!' xuất hiện khi đăng nhập.
  • Trang Drupal bị blacklist bởi công cụ tìm kiếm.
  • Web Drupal rất chậm và hiển thị lỗi.
  • Nhiều quảng cáo độc hại và pop-up xuất hiện.
  • User ngần ngại truy cập do thiếu niềm tin.
  • Giảm traffic và doanh thu.
  • Admin mới trái phép xuất hiện trong database đăng nhập.

Drupal Hacked: Ví dụ Drupal Hack

Khi Drupal bị hack, user liên quan tìm thấy trên forum cộng đồng. Ví dụ Drupal hack trong ảnh dưới.

Lo lắng Drupal hack? Nhắn tin widget chat, chúng tôi乐意帮助解决。 Bảo mật trang Drupal ngay.

Nguyên nhân có thể của Drupal Hack

Drupal Hacked: SQL Injection Drupal

Lỗ hổng Drupal SQLi thường thấy trong module viết kém. Tuy nhiên, SQLi trong core hiếm và nguy hiểm. Lỗ hổng nguy hiểm này tìm thấy trong Drupal core gọi là "Drupalgeddon", mặc dù Drupal dùng PDO (PHP Data Object) tách query tĩnh và giá trị động.

$ query = $ db-> prepare ("SELECT * FROM users WHERE user =: user AND password =: password");
$ account = $ query-> execute (array (':user' => $ _POST ['user'], ':password' => $ _POST ['password']));

Mọi thứ tốt vì input được làm sạch trước khi đến database. Tuy nhiên, mâu thuẫn nằm ở placeholder array của Drupal. Chúng cho phép developer module linh hoạt, vì cho phép sửa đổi động cấu trúc query database.

db_query ("SELECT * FROM {node} WHERE nid IN (: nids)", array (': nids' => array (13, 42, 144)));

Sau đó, : nids placeholder khớp số lượng argument cung cấp. Như vậy:

SELECT * FROM {node} WHERE nid IN (: nids_0, : nids_1, : nids_2)

Tính năng này kết hợp PHP indexed array có thể dùng pass parameter (GET, POST, cookie). Placeholder array Drupal mặc định giả định $ _POST ['user'] parameter là array. Sau đó dùng raw string array index tạo placeholder name mới. Kết quả, attacker cung cấp giá trị độc như Parameter:user [0 #], value: foo. Query kết quả:

SELECT * FROM {users} WHERE user =: user_0 #

Vậy attacker bypass thành công login auth. Hơn nữa, attacker có thể tạo user mới bằng edit parameter user [0; INSERT INTO users VALUES 'MalUser', 'Passw0rd!', 'Administrators'; #]. Lỗ hổng rất critical vì ảnh hưởng core. Càng báo động, Metasploit module cũng đã phát hành khai thác!

Drupal Hacked: Drupal Access Bypass

Drupal Access Bypass có thể cho user truy cập tài nguyên không dành cho họ. Lỗ hổng mới loại này tên SA-CONTRIB-2018-081. Nguyên nhân module Drupal tên JSON:API module 8.x-1.x cho Drupal 8.x. Dùng chủ yếu:

  • Truy cập content Drupal và config entities.
  • Thao tác content Drupal và config entities.

Trong trường hợp này, không kiểm tra kỹ permission khi respond một số request. Điều này cho phép actor độc hại với permission không đủ lấy thông tin nhạy cảm. Do đó, chỉ GET request dùng cho attack loại này.

Drupal Hacked: Drupal Cross-Site Scripting

Lỗ hổng như XSS, SQLi phổ biến trong module Drupal. Mới nhất series SA-CONTRIB-2018-080. Module E-Sign bị XSS. Module E-Sign cho phép tích hợp Signature Pad vào Drupal. Tại thời điểm viết, ~877 site dùng module. Lỗ hổng do thiếu sanitize input khi hiển thị signature. Attacker test XSS bằng code <script> alert ('XSS Found!') </script>. Signature field dễ bị tổn thương sẽ吐出 "XSS Found!". Lỗ hổng sau đó dùng attacker để:

  • Đánh cắp cookie user.
  • Chuyển hướng user.
  • Tải mã độc lên thiết bị user khi truy cập Drupal.

Drupal Hacked: Drupal Remote Code Execution

Bảo mật Drupal bị ám ảnh bởi chuỗi bug Drupalgeddon. Drupalgeddon 3 mới nhất năm nay. Cho phép user không xác thực thực thi code trên site Drupal. Mặc dù Drupalgeddon 2 cũng cho RCE. Tuy nhiên, khai thác này attacker cần quyền delete node. Full URL như sau:

POST /? Q = node / 99 / delete & destination = node? Q [% 2523] [] = passthru% 26q [% 2523type] = markup% 26q [% 2523markup] = whoami HTTP / 1.1 [...] form_id = node_delete_confirm & _triggering_element_name = form_id & form_token = [CSRF-TOKEN]

Ở đây, dưới cái cớ xóa node, attacker chèn lệnh whoami. Dòng 2 code kiểm tra CSRF token. CSRF token verify request generated từ cùng server. Sau đó attacker lấy form_build_id từ response như code dưới:

POST / drupal /? q = file/ ajax / actions / cancel /%23options/path/[FORM_BUILD_ID] HTTP /1.1 [...] form_build_id = [FORM_BUILD_ID]

Cuối cùng trigger exploit và output whoami hiển thị. Do đó, attacker thực thi mọi lệnh thao túng server. Cái làm bug RCE nghiêm trọng hơn là exploit đã được phát hành!

Cần giúp chuyên nghiệp dọn site Drupal hack? Nhắn tin widget chat, chúng tôi乐意帮助。 Sửa trang Drupal ngay.

Dọn dẹp Web Drupal Hacked: Bước dọn mã độc Drupal

Phát hiện nhiễm mã

Dùng Google Diagnostics

Khi Drupal hack, thường search engine như Google blacklist. Do đó, công cụ chẩn đoán Google dùng xác định loại, nguyên nhân nhiễm. Google Transparency Report hữu ích. Để kiểm tra:

  1. Truy cập Safe Browsing Site Status từ link sau.
  2. Trên trang, tìm 'Check site status'.
  3. Cuối cùng, nhập URL site và nhấn "Search".
  4. Điều này cho info về redirect spam, v.v. nếu site bị nhiễm. Xác định nguyên nhân nhiễm Drupal và làm việc loại bỏ.

Quét trang web

Để phát hiện trang bị nhiễm, quét site. Nhiều option miễn phí như VirusTotal. Hoặc nén toàn bộ file thành .zip và upload quét. Tuy nhiên, giải pháp bảo mật miễn phí có thể không cho kết quả mong đợi, khuyến khích liên hệ chuyên gia gỡ mã độc.

Kiểm tra file đã sửa đổi

Thường, backdoor nhiễm site Drupal có thể sửa file core Drupal. Sửa file Drupal có thể kiểm tra:

  1. SSH vào site Drupal.
  2. Tạo thư mục mới: mkdir drupal-yx. Thay 'y' bằng series Drupal (7,8,9). 'x' bằng version (4.7.1, 2.1.3, v.v.)
  3. cd drupal-yx
  4. Tải bản mới version Drupal: wget https://github.com/drupal/core/archive/yxtar.gz
  5. Giải nén tar.gz: tar -zxvf core-yxtar.gz
  6. So sánh diff file core: diff -r core-yx ./public_html
    Cũng có thể SSH và chạy: find ./ -type f -mtime -20

Lệnh này liệt kê file sửa trong 20 ngày gần đây. Kiểm tra ngày sửa file và nếu đáng ngờ, quét file đó tìm mã độc.

Kiểm tra log user

User log giúp xác định login đáng ngờ bởi hacker. Làm:

  1. Đăng nhập admin page Drupal.
  2. Menu, nhấp 'People'
  3. Xem user trong list và 'last access time'. Nếu login đáng ngờ, tìm lỗ hổng.

Dọn file nhiễm và xóa code ẩn

Khi trang bị nhiễm xác định, nhiễm có thể partial (code trong file core) hoặc toàn file. Nếu file có ký tự vô nghĩa, có thể do attacker ẩn code định dạng unreadable. Base64 encoding phổ biến. Để xóa code này:

  1. SSH vào site.
  2. Kiểm tra code base64: find . -name "*.php" -exec grep "base64" '{}'; -print &> hiddencode.txt. Tìm base64 encoded code lưu hiddencode.txt.
  3. Upload hiddencode.txt lên service online như link này để phân tích sâu.
  4. Nhấp 'Decode' trên site. Hiển thị code gốc.
  5. Obfuscation khác như FOPO cũng decode online.
  6. Nếu nhiễm toàn file không thuộc core package. Xóa file.
  7. Nếu nhiễm partial trong file core, nếu xác định mã độc, xóa. Không thì comment và nhờ giúp.

Vô hiệu hóa backdoor Drupal

Backdoor Drupal có thể ẩn trong thư mục: /modules, /themes, /sites/all/modules, /sites/all/themes. Phát hiện khó vì code thường obfuscated. Tìm code này, làm theo "Dọn file nhiễm và xóa code ẩn". Ngoài ra, backdoor dùng hàm PHP.

Để disable hàm này:

  1. Đăng nhập site, mở File Manager.
  2. Duyệt, mở php.ini.
  3. Thêm code: disable_functions = "show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, eval"

Dọn dẹp Database Drupal

Database Drupal thường bị target bởi mã độc. Để dọn database site Drupal nhiễm:

  1. Đăng nhập Drupal qua Admin Panel.
  2. Đi Data Access > Drupal Database
  3. Search bar, tìm link/nội dung đáng ngờ từ malware scan.
  4. Mở table chứa spam content/link. Xóa thủ công content.
  5. Xong, kiểm tra site vẫn chạy, xóa tool quản lý database khác.

Bảo mật Drupal: Chặn attacker

Đảm bảo không credential login bị xâm phạm. Reset mật khẩu Drupal sau dọn mã độc. Đổi pass, đăng nhập Drupal.

Dùng phpMyAdmin

  1. Nếu dùng phpMyAdmin, vào cPanel> Database> phpMyAdmin.
  2. Chọn database Drupal, nhấp SQL tab.
  3. Text field, nhập: UPDATE users SET pass = md5('YOURPASS') WHERE uid = 1;
  4. Thay 'YOURPASS' bằng pass muốn đặt, nhấp Go!

Dùng Drush

  1. Quản lý site Drush, đảm bảo Drush module cài.
  2. Dùng Drush, SSH vào site.
  3. Drupal-8: drush user-password UserName –password = "your-new-password".
  4. Drupal-9: drush user:password UserName "your-new-password"
    Thay 'UserName' bằng user Drupal, 'your-new-password' bằng pass muốn đặt. Đảm bảo pass mạnh, kết hợp chữ, số, ký tự.

Bảo mật Drupal: Khôi phục file

Khôi phục trang bị nhiễm từ backup. Nếu không backup, dùng bản mới. Sau dọn file, xóa cache:

  1. SSH vào Drupal.
  2. Terminal, chạy: drush cache-rebuild (Drupal 8) hoặc drush cache-clear all (Drupal 7).

Nếu Drupal bị blacklist Google hoặc hosting, submit site review.

Giảm thiểu Drupal Hacked

Bảo vệ thư mục nhạy cảm

Quan trọng chặn truy cập thư mục nhạy cảm. Làm:

  1. Đăng nhập site, mở File Manager.
  2. Tạo file .htaccess trong thư mục muốn bảo vệ.
  3. File, chèn code:
    Order Deny, Allow
    Deny from all
    Allow from 22.33.44.55
    Code này từ chối truy cập visitor vào thư mục đó. Dòng cuối chỉ IP cho phép. Cũng kiểm tra file .htaccess đã sửa. Nếu tìm thấy, ưu tiên dọn trước.

Cập nhật và Sao lưu

Đảm bảo dùng Drupal mới nhất. Drupal Security team vá lỗ hổng critical mỗi update. Kiểm tra qua changelog. Tránh plugin không uy tín vì dễ chứa code buggy. Tạo bản sao site. Hữu ích restore sau tấn công. Update và backup là cách rẻ và hiệu quả nhất bảo mật Drupal.

Kiểm tra bảo mật

Security audit tiết lộ lỗ hổng critical trong Drupal. Không phải admin nào cũng chuyên gia bảo mật. Service như Astra lo bảo mật cho admin. Astra Security Audit và pentestingكشف威胁负责任。Astra audit模拟实时攻击在安全环境,无损害且发现critical漏洞。像Astra这样的audit可发现OWASP Top 10 trên Drupal.

Drupal Malware Scanner và Firewall

Lỗ hổng mới phát hiện Drupal hàng tháng. Tuy nhiên, không có nghĩa Drupal luôn unsafe. Firewall ngăn attacker khai thác flaw ngay cả khi Drupal vulnerable. Quan trọng chọn firewall đúng trong nhiều lựa chọn. Astra Firewall nổi bật mọi tham số. Rất robust và scalable. Nghĩa là, từ blog nhỏ đến e-commerce lớn, Astra bảo mật tất cả. Hơn nữa, Astra honeypot attacker và chặn tấn công phổ biến.

Dọn và sửa Drupal hacked là việc vất vả. Tuy nhiên, tự động hóa đến giải cứu. Astra Drupal Malware Scanner phát hiện malware hacked site trong vài phút. Nó cũng lấy file diff cho bạn xóa one-click nếu malicious.