Những hệ điều hành nhiều người dùng nào cho phép người dùng thấy dòng lệnh hiện tại của những người dùng khác?


13

Tôi đang đọc trang củaunzip và chạy vào đây

-P password
       use password to decrypt encrypted zipfile entries (if  any).   THIS
       IS  INSECURE!   Many  multi-user operating systems provide ways for
       any user to see the current command line of any other user; even on
       stand-alone systems there is always the threat of over-the-shoulder
       peeking.

Mặc dù biện pháp phòng ngừa bảo mật không gõ mật khẩu bằng văn bản rõ ràng (và việc chúng kết thúc trong lịch sử shell) là tất nhiên đúng, tôi thấy khó tin rằng có những hệ điều hành ngoài đó, nơi mọi người dùng có thể thấy dòng lệnh của bất kỳ ai khác người dùng . Ai đó có thể cho tôi một ví dụ (bao gồm các hệ thống di sản)?


Tôi tin rằng ps, topvv là câu trả lời cho UNIX.


điều khiển bàn phím)
STTR

@STTR Tôi biết rất ít về phần cứng nên tôi không chắc trình điều khiển bàn phím có cung cấp cho tất cả người dùng quyền truy cập đầy đủ và bằng nhau hay không, nhưng đó chắc chắn không phải là một hệ điều hành và không có sự gắn bó nào với nó.
4ae1e1

1
Chỉ cần một lưu ý, nếu bạn muốn giữ một lệnh không đi vào lịch sử bash, hãy đặt trước lệnh bằng một khoảng trắng.
joshreesjones 11/2/2015

Câu trả lời:


4

Tôi đoán là trên các hệ thống Unix / Linux lsofcó thể có khả năng phơi bày sự tương tác của người dùng. Logic là lsofmột danh sách các tệp đang mở trên hệ thống. Và có lẽ nếu một người đang giải nén một tập tin khổng lồ thì nó vẫn sẽ được mở đủ lâu để ai đó chú ý và sau đó nhìn trộm hoạt động. Heck, sẽ khá tầm thường khi viết một tập lệnh Bash và chạy nó mỗi phút hoặc lâu hơn thông qua một công việc định kỳ để thu thập một bản ghi hoạt động của tệp đang mở.

Nhưng điều đó vẫn nhẫn giả với tôi. Tôi có nghĩa là lsofcó khả năng phơi bày một cái gì đó như mật khẩu MySQL nội tuyến theo cách này. Nhưng tôi không chắc 100% là người dùng bình thường không có sudoquyền / quyền root có thể thấy lsofhoạt động từ những người dùng khác như vậy hay không.


3
Uh bạn chắc chắn đang đi đúng hướng. Tôi nghĩ rằng lsofhiển thị các tệp đang mở của những người dùng khác và bạn không cần đặc quyền nâng cao (được thử nghiệm trên máy chủ của tổ chức của tôi). Tương tự, pstoptiết lộ các dòng lệnh của người dùng khác.
4ae1e1

1
Tôi cũng đã kiểm tra các trang man của ps, toplsofvà không tìm thấy đề cập đến đặc ân. Ngoài ra còn có câu hỏi này: Làm thế nào để làm cho một quá trình vô hình với người dùng khác? . Vì vậy, tôi đoán rằng các dòng lệnh thực sự hiển thị cho mọi người trên các hệ thống UNIX. Hmm, bất ngờ lớn.
4ae1e1

Tôi đã tìm hiểu về ttysnoopconspytuy nhiên tôi không chắc liệu họ có yêu cầu quyền root hay không.
Vinayak

Đó là tùy chọn để vượt qua lsofcho phép để xem tham số của dòng lệnh? với ví dụ: lsof -a +c0 /dev/nulltôi có thể thấy tên lệnh dài nhưng không tham số được truyền cho lệnh. Tôi đã bỏ lở những gì? :-)
Hastur 7/2/2015

4

Unix cho phép "ps". Ngoài ra, Unix thường có lệnh "w" sẽ hiển thị những gì người dùng đang chạy. "w" thường có thể cắt các lệnh dựa trên kích thước đầu cuối, nhưng có thể bị ghi đè. (Một cách dễ dàng có thể là chỉ sử dụng thiết bị đầu cuối rộng hơn.)

Điều này có thể cũng sẽ ảnh hưởng đến nhiều hệ thống giống Unix (Linux, hệ thống BSD, Solaris, v.v.)

Tôi tin rằng Microsoft Windows cũng sẽ hiển thị điều này trong Trình quản lý tác vụ. Chà, có lẽ điều đó ít phổ biến hơn với Windows Vista và Kiểm soát tài khoản người dùng, vì Kiểm soát tài khoản người dùng có thể cần thiết. Nhưng trở lại trong những ngày trên WinXP / Server2003 và trước đó, những hạn chế như vậy có thể đã lỏng lẻo hơn. Có một lý do tại sao NET USE bắt đầu hỗ trợ dấu hoa thị và sau đó nhắc người dùng nhập mật khẩu. Với:

WMIC /NODE:ComputerName PROCESS LIST

một người dùng có thể thậm chí không cần phải ở trên cùng một máy tính để xem lệnh đang chạy. Chính thức, tôi nghi ngờ rằng nhiều TaskList, TList và PSList (tất cả được phân phối tự do bởi Microsoft) có thể cũng hỗ trợ khả năng xem những gì đang xảy ra, bất kể người dùng đang chạy gì. Ít nhất, người dùng có đặc quyền Quản trị viên, vốn phổ biến hơn trên các hệ điều hành trước Vista. (Trong Win9x, tiêu chuẩn chung là tất cả người dùng đều có khả năng giống Quản trị viên.) Hãy nhớ rằng Info-Zip, là tài liệu bạn trích dẫn, cũ hơn WinXP một chút. Tôi nghĩ nó cũ hơn Win95.

Với các hệ thống nhiều người dùng cũ, tính bí mật không phải là vấn đề đáng lo ngại. Có thể thấy những gì máy tính đang làm, bao gồm những lệnh mà người dùng khác đang chạy, có thể được xem là một tính năng tích cực, không phải là vi phạm tiêu cực trong bảo mật. Có lẽ một câu hỏi phù hợp hơn là: Có hệ điều hành đa người dùng lớn nào không hỗ trợ người dùng có thể xem các lệnh nào đang chạy trên máy tính không?

Cách tiếp cận an toàn hơn là không bao giờ đặt mật khẩu nhạy cảm trên một dòng lệnh. Một tùy chọn khác có thể là đặt mật khẩu vào một tệp, sau đó chỉ định tệp đó trên dòng lệnh. ví dụ:

type pwfile | command

Ít nhất theo cách đó, các quyền dựa trên việc triển khai hệ thống tập tin có thể sẽ cung cấp một số bảo vệ.


1
Để xem các quy trình của người dùng khác trên Windows, bạn phải là quản trị viên.
Moshe Katz

4

Một số (và tôi tin rằng không phải tất cả) các cách Linux để xem lệnh zip -PThat_Password ...của người dùng khác mà không có quyền root :

  • cat /proc/24695/cmdline nếu PID là 24695 ...

    zip-P That_Password

    Lưu ý: Không có dấu cách nhưng có thể đoán mật khẩu tuy nhiên

  • grep -H -e "zip" /proc/[0-9]*/cmdline

    Các tệp nhị phân / Proc / 24695 / cmdline khớp

    tốt nếu nó hoạt động catnó hoạt động mọi thứ khác văn bản dựa trên ...

  • pgrep -a ziptùy chọn -a liệt kê dòng lệnh đầy đủ cũng như ID tiến trình. (không phải lúc nào cũng có sẵn trên phiên bản cũ [ví dụ <2008] pgrep)

    24695 zip -P That_Password

và tất nhiên các op đã đề cập

  • ps -aux | grep zip

    That_User 24695 1.9 0.0 15012 1192 pts / 40 T 12:37 0:45 zip -P That_Password

  • top -c -b -n 1 | grep zip câu trả lời với một cái gì đó như

    24695 That_User 20 0 15012 1192 820 T 0.0 0.0 0: 45.12 zip -P That_Password


@JakeGould Ít nhất trên các hệ thống của tôi, lệnh như cat /proc/24695/cmdlinecho đầu ra không có khoảng trắng ...
Hastur

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.