Chế độ xem trực tiếp các lệnh shell Linux được thực thi bởi người dùng khác?


27

Người dùng root trong Linux có thể có chế độ xem thời gian thực (hoặc gần với thời gian thực) của các lệnh shell đang được chạy bởi người dùng khác đã đăng nhập qua thiết bị đầu cuối hoặc SSH không? Rõ ràng là chúng được lưu trữ trong .bash_history, nhưng điều đó chỉ được lưu khi người dùng đăng xuất và cũng có thể bị vô hiệu hóa.

Chỉnh sửa: lý tưởng một cái gì đó có thể dễ dàng bật và tắt.


ttyrpldnhìn có vẻ tốt. đề nghị trong câu hỏi này. serverfault.com/questions/40011/ trộm
hayalci

Câu trả lời:


16

với quyền root, bạn có thể thay thế shell của chúng bằng một tập lệnh bao bọc đơn giản ghi lại các lệnh của chúng trước khi chuyển chúng sang shell thực. Điều này sẽ chỉ hoạt động trước khi họ đăng nhập.


20
Chúng tôi đã làm điều này để theo dõi một tài khoản bị hack tại một chủ nhân trước đó. Đã tạo "/ bin / bash" (chú ý khoảng trắng) là một trình bao bọc xung quanh lệnh script. Làm việc như một bùa mê :)
Chỉ huy Keen

Rất thông minh! +1
EMP

9

Sử dụng sniffy nếu bạn muốn đột nhập vào phiên của người dùng hoặc screen -xnếu bạn có sự hợp tác.

Mặc dù vậy, hãy lưu ý rằng việc theo dõi người dùng của bạn có thể phải tuân theo các quy định hoặc thậm chí hoàn toàn bất hợp pháp tùy thuộc vào luật pháp địa phương của bạn.


7

Thay đổi vỏ là rất nhỏ để phá vỡ, vá vỏ là tốt hơn, nhưng bạn phải vá tất cả các vỏ. Cracker yêu thích của chúng tôi sử dụng điều này, như một phần thưởng mà anh ấy không bận tâm đến việc vô hiệu hóa bash_history.

ssh host /bin/sh -i  

Snoopy là một trình bao bọc xung quanh các hàm exec và ghi nhật ký bất kỳ nhị phân bên ngoài nào được thực thi (không phải các phần tử shell)

Lời đề nghị sniffy của @David sử dụng một phương pháp tốt hơn, nó chạm vào giả mạc.

ttysnoop sử dụng cùng một phương pháp, nhưng nó không được xác định. (Tôi có thể đã gặp sự cố khi đăng nhập kết nối ssh, không thể nhớ)

Bạn có thể thử vá ssh để đăng nhập một phiên, nhưng bản vá đó đã .

giảrootsh có thể được sử dụng để đăng nhập sudos hợp pháp. Và shwatcr là một thứ khác để theo dõi đăng nhập.


Chính xác thì ssh host /bin/sh -iphải làm gì?
Mike Pennington

+1 cho snoopy, không hoàn hảo nhưng đã làm những gì chúng ta cần nó để làm.
skin

4

Nếu bạn đang hợp tác, bạn có thể sử dụng màn hình GNU giữa hai người dùng - có một người thiết lập phiên màn hình, sau đó sử dụng phép nối khác screen -x.

Nếu bạn muốn root "gián điệp" những người dùng khác mà họ không biết, giải pháp tốt nhất và hiệu quả nhất có thể là phần mềm / phần cứng keylogger.


4

Sysdig là công cụ mạnh mẽ để khám phá cấp hệ thống - đây là những gì bạn muốn;)

thí dụ:

sysdig -i spy_users

Thể loại: Bảo mật

spy_users Hiển thị hoạt động tương tác của người dùng

liệt kê mọi lệnh mà người dùng khởi chạy tương tác (ví dụ từ bash) và mọi thư mục người dùng truy cập


2

Bạn có thể thử bản vá bash-BOFH. Tìm kiếm xung quanh cho các bản vá.


1

Tôi đã viết một phương pháp để ghi nhật ký tất cả các lệnh / bash 'vào tệp văn bản hoặc máy chủ' syslog 'mà không cần sử dụng bản vá hoặc công cụ thực thi đặc biệt.

Nó rất dễ triển khai, vì nó là một shellscript đơn giản cần được gọi một lần khi khởi tạo 'bash'.

Xem phương pháp tại đây: http://blog.pointsoftware.ch/index.php/howto-bash-audit-command-logger


Chào mừng bạn đến với Lỗi Máy chủ! Chúng tôi thực sự thích câu trả lời có nội dung, không phải con trỏ đến nội dung. Điều này đảm bảo rằng câu trả lời sẽ vẫn có sẵn ngay cả khi liên kết bị chết. Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
user9517 hỗ trợ GoFundMonica

Chào mừng bạn đến với Lỗi Máy chủ! Vui lòng đọc faq của chúng tôi cụ thể Tôi có thể quảng bá sản phẩm hoặc trang web tôi liên kết ở đây không? .
user9517 hỗ trợ GoFundMonica

1
function spy() { 
   ptsnum=`ps awfux | grep pt[s]\/"$1" | awk '/bas[h]/{print $2}'` ; 
   /usr/bin/strace -s 1000 -t -f -p $ptsnum 2>&1 3>&1 \
        | grep -Poi 'write\(...\"[[:print:]]{1,2}\"[.][.][.][,]..\)' ; 
}

[436] klikevil@epiphany ~ $ w<br>
 09:36:43 up 12:06,  6 users,  load average: 0.46, 0.29, 0.20<br>
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT<br>
klikevil pts/0    75.125.126.8     23:05    2:19m 10:33   0.18s cmd                                      <br>
klikevil pts/1    75.125.126.8     00:18    6:50m  0.06s  0.04s sshd: klikevil [priv]<br>
klikevil tty7     :0               09:02   17:07m  2:02   0.32s x-session-manager<br>
klikevil pts/2    :0.0             09:03    3:30   0.08s  0.08s bash<br>
klikevil pts/3    :0.0             09:03    0.00s  0.76s  0.00s w<br>
klikevil pts/4    :0.0             09:06    3:13   0.46s  0.00s /bin/sh /usr/bin/thunder<br>
[437] klikevil@epiphany ~ $ spy 2<br>
write(2, "e"..., 1)<br>
write(2, "c"..., 1)<br>
write(2, "h"..., 1)<br>
write(2, "o"..., 1)<br>
write(2, " "..., 1)<br>
write(2, "s"..., 1)<br>
write(2, "u"..., 1)<br>
write(2, "p"..., 1)<br>
write(2, " "..., 1)<br>
write(2, "d"..., 1)<br>
write(2, "o"..., 1)<br>
write(2, "g"..., 1)<br>
write(2, "\n"..., 1)<br>
^C<br>

Có vẻ hoạt động khá tốt nếu bạn không bận tâm đến việc sắp xếp hàng loạt các ngắt dòng.


1

Snoopy dành cho ghi nhật ký lệnh nhẹ.

Nếu bạn muốn xem trực tiếp các lệnh được thực thi trên hệ thống của bạn, đây có thể là nó. Cảnh báo: snoopy không phải là giải pháp kiểm toán thích hợp và có thể dễ dàng bị phá vỡ.

Tuy nhiên, nếu bạn muốn thấy mọi ký tự được nhập vào thiết bị đầu cuối, thì bạn sẽ phải sử dụng một công cụ khác.

Tiết lộ: Tôi là người duy trì snoopy hiện tại.


-3

hãy thử xuất này HISTTIMEFORMAT = "% T" chạy một vài lệnh và "history" sau đó ...

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.