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

PHP Backdoors & Web Shells: Giải Thích, Phát Hiện & Hướng Dẫn Loại Bỏ

Ngày nay, PHP là động cơ chính chạy hầu hết CMS phổ biến như PrestaShop, WordPress, Magento, v.v. Ngôn ngữ kịch bản phía server này phổ biến đến mức nó chạy gần 80% trang web trên internet. Tuy nhiên, trang web dùng PHP cũng bị hacker nhắm mục tiêu rộng rãi vì một exploit có thể hoạt động trên tất cả. Thường các kỹ thuật khéo léo được triển khai để hoạt động độc hại ngầm. PHP web shell backdoor là một script hoặc chương trình độc hại được thiết kế để nhiễm trang web bí mật.

PHP Web Shell Backdoor Là Gì & Tại Sao Nó Nhiễm Tôi?

PHP web shell backdoor về cơ bản là script và chương trình độc hại được thiết kế để thực hiện nhiều hành động độc hại trên trang web. Web shell đơn giản là script dựa trên lệnh. PHP web shell cho phép kẻ tấn công quản trị server PHP từ xa. Kẻ tấn công truy cập qua URL trên internet. Web shell phức tạp hơn cũng có thể truy cập trực tiếp bộ nhớ.

PHP Backdoors & Web Shells: Giải Thích, Phát Hiện & Hướng Dẫn Loại Bỏ

Thường, nhiễm này tái phát ngay cả sau dọn dẹp vì được thiết kế để duy trì truy cập bền vững. Hầu hết backdoor dùng kỹ thuật che giấu (obfuscation) để né tránh phát hiện. Một số thậm chí triển khai thuật toán phức tạp để ẩn trực tiếp trong bộ nhớ.

Có nhiều cách PHP web shell tồn tại trên trang web. Tuy nhiên, một vài lỗ hổng bảo mật phổ biến cho phép nhiễm này:

  • Mật khẩu yếu hoặc mặc định.
  • Upload file PHP không bị hạn chế.
  • Coding PHP kém cho phép input không được validate.
  • Phiên bản PHP cũ.
  • Cấu hình PHP không đúng.
  • Quyền file yếu cho file nhạy cảm.
  • Báo cáo lỗi không đúng và tiết lộ code.

Bài viết liên quan – Giải Quyết Vấn Đề Bảo Mật Trong PHP

PHP Web Shell Backdoor Có Thể Làm Gì?

Một PHP web shell backdoor chung cho phép kẻ tấn công chạy lệnh trên server PHP như admin. Đôi khi, kẻ tấn công cũng cố gắng leo thang đặc quyền. Sử dụng shell này, kẻ tấn công có thể:

  • Truy cập bất kỳ loại dữ liệu nào trên server.
  • Có thể dùng server để đào cryptocurrency.
  • Có thể biến server thành bot tuân theo lệnh kẻ tấn công gửi lượng lớn spam.
  • Và nhiều việc xấu khác!

Bài viết liên quan – Hướng Dẫn Bảo Mật & Loại Bỏ Mã Độc PHP Tối Thượng

PHP Web Shell Backdoor: Phân Tích Code

Một PHP web shell backdoor chung hoạt động qua các bước:

Bước đầu: khởi tạo biến hệ thống. Khi làm vậy, web shell đảm bảo không in ra lỗi để né tránh phát hiện. Làm bằng cách tạo hàm x_die. Khi có lỗi, thông báo về vấn đề được chuyển qua hàm này. Hàm này dùng die() của PHP để thoát script hiện tại.

PHP Backdoors & Web Shells: Giải Thích, Phát Hiện & Hướng Dẫn Loại Bỏ

Bước tiếp: kiểm tra xem web shell có thể thực thi lệnh trên server PHP không. Với mục đích này, web shell PHP chung kiểm tra các hàm thực thi PHP như exec(), system(), v.v.

PHP Backdoors & Web Shells: Giải Thích, Phát Hiện & Hướng Dẫn Loại Bỏ

Sau đó, web shell PHP xác thực cấu hình hệ thống và kiểm tra xem có thể thay đổi bằng web shell không. Nếu hàm cấu hình không có, nó chuyển thông báo 'can not config' cho hàm x_die().

PHP Backdoors & Web Shells: Giải Thích, Phát Hiện & Hướng Dẫn Loại Bỏ

Tiếp theo, nó cũng kiểm tra safe mode trên server PHP. Safe mode thường triển khai trên shared server. Tính năng này xác minh process mở file cụ thể được chạy bởi user đã xác thực. Nếu safe mode bật, web shell dừng thực thi tiếp.

if(x_ini_get('safe_mode')){x_die('can not exec: safe mode active');}

Khi mọi điều kiện thỏa mãn, web shell dùng dịch vụ Superfetch của Windows để chạy lệnh.

PHP Backdoors & Web Shells: Giải Thích, Phát Hiện & Hướng Dẫn Loại Bỏ

PHP Web Shell Backdoor: Phát Hiện & Dọn Dẹp

  1. Kiểm tra xem bạn có bị nhiễm generic PHP web shell backdoor bằng cách xem source code tất cả file PHP.
  2. Nếu tìm thủ công khó khăn thì dùng lệnh Grep .
  3. Dùng grep tìm dump code web shell trong thư mục:
    grep -r "dump of web shell" /folderToSearch/
  4. Phương pháp này phát hiện generic web shell. Tuy nhiên, hạn chế là chỉ tìm được một loại generic web shell.
  5. Để tìm web shell khác, cần biết source code. Để khắc phục, dùng công cụ phát hiện web shell miễn phí trên GitHub.
  6. Đừng quên kiểm tra log cho request HTTP đáng ngờ để phát hiện PHP web shell. Xóa web shell khi tìm thấy.
  7. Nếu dump PHP web shell tìm thấy trong file nhạy cảm, comment nó và liên hệ chuyên gia để phân tích và loại bỏ mã độc thêm.

PHP Web Shell Backdoor: Giảm Thiếu (Mitigation)

  1. Giữ phiên bản PHP cập nhật.
  2. Tránh dùng mật khẩu mặc định hoặc yếu.
  3. Luôn kiểm tra sai cấu hình trang web.
  4. Đảm bảo quyền file không bao giờ đặt 777 vì cho phép bất kỳ ai sửa file!
  5. Tuân thủ thực hành coding an toàn khi phát triển file PHP.
  6. Thực hiện penetration testing toàn diện để khám phá lỗ hổng trang PHP.

Kết Luận

Xóa web shell không đủ để bảo mật trang web. Kẻ tấn công vẫn có thể upload shell mới qua lỗ hổng trên trang. Đối với user trung bình, phát hiện lỗ hổng này có thể không dễ. Vì vậy, khuyến nghị dùng giải pháp bảo mật để tự động hóa quy trình.

Trình quét mã độc tự động của Astra Security phát hiện hàng trăm PHP web shell và mã độc chỉ với một click. Hơn nữa, tường lửa Astra giám sát trang web và chặn đe dọa bảo mật. Chọn gói phù hợp nhu cầu và bắt đầu ngay hôm nay!