Đau đớn khi loại bỏ một rootkit perl


8

Vì vậy, chúng tôi lưu trữ một điều máy chủ web dịch vụ địa lý tại văn phòng.

Ai đó rõ ràng đã đột nhập vào hộp này (có thể thông qua ftp hoặc ssh), và đặt một số loại rootkit được quản lý irc.

Bây giờ tôi đang cố gắng dọn dẹp toàn bộ, tôi đã tìm thấy pid process, người cố gắng kết nối thông qua irc, nhưng tôi không thể tìm ra ai là quá trình gọi (đã được tìm kiếm với ps, pstree, lsof) Quá trình này là một perl tập lệnh thuộc sở hữu của người dùng www, nhưng ps aux | grep hiển thị đường dẫn tệp giả mạo trên cột cuối cùng.

Có cách nào khác để lần theo dấu vết đó và bắt kẻ xâm lược không?

Quên đề cập đến: kernel là 2.6,23, có thể khai thác để trở thành root, nhưng tôi không thể chạm vào máy này quá nhiều, vì vậy tôi không thể nâng cấp kernel

EDIT: lsof có thể giúp:

lsof -p 9481
NGƯỜI DÙNG QUYẾT ĐỊNH NGƯỜI DÙNG FD LOẠI THIẾT BỊ KÍCH THƯỚC NODE NAMEss
perl 9481 www cwd DIR 8.2 608 2 / ss
perl 9481 www rtd DIR 8.2 608 2 / ss
perl 9481 www txt REG 8.2 1168928 38385 / usr / bin / perl5.8.8ss
perl 9481 www mem REG 8.2 135348 23286 /lib64/ld-2.5.soss
perl 9481 www mem REG 8.2 103711 23295 /lib64/libnsl-2.5.soss
perl 9481 www mem REG 8.2 19112 23292 /lib64/libdl-2.5.soss
perl 9481 www mem REG 8.2 586243 23293 /lib64/libm-2.5.soss
perl 9481 www mem REG 8.2 27041 23291 /lib64/libcrypt-2.5.soss
perl 9481 www mem REG 8.2 14262 23307 /lib64/libutil-2.5.soss
perl 9481 www mem REG 8.2 128642 23303 /lib64/libpthread-2.5.soss
perl 9481 www mem REG 8.2 1602809 23289 / lib64 / libc -2,5.soss
perl 9481 www mem REG 8.2 19256 38662 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / IO / IO.soss
perl 9481 www mem REG 8.2 21328 38877 /usr/lib64/perl5/5.8.8/x86_64-linux-threa d-multi / auto / Socket / Socket.soss
perl 9481 www mem REG 8.2 52512 23298 /lib64/libnss_files-2.5.soss
perl 9481 www FIFO 0,5 1068892 pipess
perl 9481 www 1w FIFO 0,5 1071920 pipess
perl 9481 www 2w FIFO 0,5 1068894 pipess
perl 9481 www 3u IPv4 130646198 TCP 192.168.90.7:60321->www.****.net:ircd (SYN_SENT)


2
Trừ khi bạn nâng cấp kernel, điều gì để ngăn chặn tin tặc lặp lại vụ hack ngay khi bạn gỡ bỏ rootkit? Cũng có thể có một mô-đun hạt nhân trojan che giấu các quy trình.
pjc50

cái này trông rất giống với bot irc ddos ​​tôi vừa dọn sạch vps của mình: serverfault.com/questions/639499/ Kẻ
Hayden Thring

Câu trả lời:


37

Nếu tôi có thể cho bạn bất kỳ lời khuyên nào, đó là ngừng lãng phí thời gian của bạn để dọn dẹp. Tạo một hình ảnh của hệ điều hành cho các công cụ pháp y cho sau này, và chỉ cần cài đặt lại máy chủ.

Xin lỗi, nhưng đó là cách an toàn duy nhất để giải quyết bản thân khỏi bị root.

Sau này bạn có thể kiểm tra hình ảnh, vì một số lý do, tại sao nó lại xảy ra.

Từ kinh nghiệm cá nhân của riêng tôi, tôi đã làm điều này và sau đó tìm thấy một người dùng nội bộ có khóa SSH chứa lỗ hổng openssl vào năm 2008.

Tôi hy vọng, nó làm sáng tỏ mọi thứ.

Lưu ý:
Nếu bạn đang đi để hình ảnh / sao lưu máy chủ trước khi cài đặt lại, hãy rất cẩn thận, làm thế nào bạn làm điều này. Như @dfranke đã nói, khởi động từ một phương tiện đáng tin cậy để sao lưu.

Bạn không nên kết nối với các máy khác từ một máy chủ đã được root, vì các rootkit tuyệt vời được biết là có thể lây lan qua các phiên đáng tin cậy như SSH.


11
Tôi mạnh mẽ thứ hai lời khuyên này. Bạn đã tìm thấy một rootkit, nhưng bạn hoàn toàn không biết kẻ tấn công đã giả mạo cái gì khác. Một khi đã root, luôn luôn root. Khởi động từ một phương tiện đáng tin cậy, không có ổ đĩa. Fdisk, định dạng, cài đặt lại, doo dah, doo dah.
dfranke

Yah ... Bộ công cụ root tốt chạy dưới kernel của bạn .. Không có cơ hội xóa chúng, mà không cần nỗ lực
Arenstar

4
+1 Đối với bất kỳ hệ thống sản xuất nào (thực sự, bất kỳ hệ thống nào), không có lý do gì để làm sạch. Giết nó bằng lửa và xây dựng lại.
phoebus

1
+1 để cài đặt lại. Rootkit có thể bị rối với nhị phân hoặc kernel của bạn và mọi thứ bạn đang nhìn thấy (đường dẫn giả, v.v ...) có thể hút thuốc từ rootkit để ẩn chính nó.
coredump

1
Nghĩa vụ trích dẫn : "Tôi nói rằng chúng tôi cất cánh và nuke toàn bộ trang web từ quỹ đạo. Đó là cách duy nhất để chắc chắn."
Charles Stewart

1

Dòng lệnh có thể được thay đổi nếu quá trình thay đổi argv [0]. Thửls -l /proc/[pid]/exe

Từ man 5 proc

tệp này là một liên kết tượng trưng chứa tên đường dẫn thực tế của lệnh được thực thi. Liên kết tượng trưng này có thể được hủy đăng ký bình thường; cố gắng để mở nó sẽ mở thực thi. Bạn thậm chí có thể gõ / Proc / [number] / exe để chạy một bản sao khác của cùng một tệp thực thi đang được chạy bởi process [number]. Trong một quy trình đa luồng, nội dung của liên kết tượng trưng này không khả dụng nếu luồng chính đã kết thúc

ps auxwf | less cung cấp cho bạn "chế độ xem rừng" của các quy trình có thể cho bạn biết quy trình nào đã khởi chạy quy trình này (trừ khi rootkit đang ẩn nó hoặc cha mẹ của ứng dụng đã thoát và nó đã được sửa lại thành init).

Điều này chủ yếu là học thuật và có lẽ chỉ là một máy đo thời gian, nhưng strings -n 10 /proc/[pid]/memcó thể rất thú vị khi xem cuộn qua. Bạn cũng có thể echo 0x7 > /proc/[pid]/coredump_filtervà sử dụng gdb gcoređể buộc một coredump với mọi thứ có thể có trong đó, nhưng sau đó quá trình sẽ chết, điều này có thể chặn phân tích thêm.

Nhưng chắc chắn hãy nghe lời khuyên của Arenstar. Chỉ sao lưu dữ liệu, khôi phục mọi thứ có thể thực hiện được từ các bản sao lưu và bắt đầu lại. Có lẽ bạn cũng nên khôi phục trang web từ các bản sao lưu, có thể có javascript độc hại được thêm vào mỗi tệp html hoặc php. Nếu bạn đang xem xét hành động pháp lý, bạn sẽ muốn đặt máy sang một bên, rút ​​máy ra khỏi mạng và dừng mọi việc bạn đang làm cho đến khi các chuyên gia pháp y thực hiện công việc của họ.


Câu trả lời thực sự tuyệt vời.
paul.ago

Thật không may Tôi chắc chắn sẽ bắt đầu lại với một bản cài đặt mới, nhưng nhà phát triển ban đầu của ứng dụng chạy trên nó đã ra khỏi đất nước trong một thời gian, vì vậy tôi đang tìm kiếm một giải pháp tạm thời. Bằng cách này, câu trả lời thực sự tuyệt vời
paul.ago

0

Hãy thử "cat / Proc / [process id] / cmdline" Mặc dù nếu đó là một rootkit thực sự, nó có thể sửa đổi kernel để ẩn bản thân tốt hơn.


nó cung cấp cho tôi cùng một ps phụ "/ usr / sbin / apache / log" là giả mạo. Không tồn tại thư mục / usr / sbin / apache
paul.ago

0

Bạn nên cài đặt lại, tôi đồng ý. Bạn đã thử thoát khỏi các nhân vật trong đường dẫn? Có lẽ một trong những dấu gạch chéo đó thực sự là một phần của tên tệp chứ không phải thư mục. Ít nhất bạn nên sử dụng iptables để chặn lưu lượng truy cập đi đến máy chủ đó hoặc IRC chung cho đến khi cố định. Kiểm tra netstat là tốt.


Không, con đường có vẻ "thực". Đáng buồn là iptables dường như đã được cài đặt nhưng mô-đun kernel bị thiếu, vì vậy tôi phải biên dịch lại kernel. Tôi có thể sẽ đi theo cách đó để sửa lỗi trong vài ngày cho đến khi tôi liên lạc với anh chàng có mã nguồn ứng dụng, vì vậy tôi có thể cài đặt lại máy chủ
paul.ago

0

Tôi nghĩ bây giờ bạn đã cài đặt lại. Việc bạn lãng phí thời gian cố gắng theo dõi các quy trình và làm pháp y vì cơ hội của bất cứ điều gì phát triển hợp pháp từ đó sẽ là rất ít và cơ hội tìm thấy tin tặc dù sao cũng sẽ vô ích. Trừ khi nó chỉ khiến bạn hứng thú nghiên cứu và đảo ngược rootkit có thể rất vui :)

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.