Які багатокористувацькі операційні системи дозволяють користувачеві бачити поточний командний рядок інших користувачів?


13

Я читав авторську книгуunzip та наштовхувався на наступне

-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.

Хоча застереження щодо безпеки не вводити паролі в чистому тексті (і в кінцевому підсумку в історії оболонки), звичайно, правда, мені важко повірити, що там є операційні системи, де будь-який користувач може бачити командний рядок будь-якого іншого користувач . Чи може хтось навести мені приклад (включені застарілі системи)?


Я вважаю ps, topі т.д. - це відповідь для UNIX.


драйвер клавіатури)
STTR

@STTR Я мало знаю про апаратне забезпечення, тому я не впевнений, чи драйвер клавіатури надає всім користувачам рівний і повний доступ, але це, звичайно, не ОС, і до нього не додано тти.
4ae1e1

1
Лише зауваження, якщо ви хочете утримати команду від вступу в історію bash, передуйте команді пробілом.
joshreesjones

Відповіді:


4

Думаю, що в системах Unix / Linux, які використовують lsofпотенційно, можна виявити взаємодію користувачів. Логіка полягає в тому, що lsofпоказує список відкритих файлів у системі. І, можливо, якщо хтось розпаковує величезний файл, він все одно буде відкритий досить довго, щоб хтось помітив, а потім зазирнув у активність. Чорт забирай, було б досить тривіально написати сценарій Bash і запускати його щохвилини або близько того за допомогою завдання cron для збору поточного журналу активності відкритих файлів.

Але це все ще звучить неправдиво для мене. Я маю на увазі, lsofчи потенційно це відкриває щось на зразок вбудованих паролів MySQL таким чином. Але я не на 100% щодо того, чи зможе звичайний користувач без sudoправ / root права бачити lsofактивність інших користувачів.


3
А ти точно на вірному шляху. Я думаю, що lsofпоказує відкриті файли інших користувачів і вам не потрібні підвищені привілеї (перевірені на сервері мого закладу). Аналогічно psі topрозкрийте командні рядки інших користувачів.
4ae1e1

1
Крім того , я перевірив з Довідника ps, topі lsofта не знайшов жодної згадки про привілеї. Також є таке питання: як зробити процес невидимим для інших користувачів? . Тому я здогадуюсь, що командні рядки дійсно видимі всім у системах UNIX. Хм, великий сюрприз.
4ae1e1

Я дізнався про ttysnoopі conspyтим НЕ менш я не впевнений , є чи не вимагати їх привілеїв суперкористувача.
Виняк

Які варіанти перейти до того, lsofщо дозволяють побачити параметр командного рядка? наприклад, lsof -a +c0 /dev/nullя можу побачити довге ім'я команди, але не параметр, переданий команді. Що я пропустив? :-)
Гастур

4

Unix дозволяє "ps". Крім того, в Unix зазвичай є команда "w", яка покаже, які користувачі працюють. "w" зазвичай може відсікати команди, залежно від розміру терміналу, але це може бути відмінено. (Одним із простих способів може бути просто використання більш широкого терміналу.)

Це, мабуть, також вплине на декілька подібних Unix систем (Linux, BSD системи, Solaris тощо)

Я вважаю, що Microsoft Windows це також показала б у диспетчері завдань. Ну, можливо, це рідше зустрічається з Windows Vista та контролем облікових записів користувачів, оскільки може знадобитися контроль облікових записів користувачів. Але ще в часи на WinXP / Server2003 і раніше такі обмеження, можливо, були більш млявими. Існує причина, чому NET USE почав підтримувати зірочку, а потім запропонувати користувачеві ввести пароль. З:

WMIC /NODE:ComputerName PROCESS LIST

користувачеві, ймовірно, навіть не потрібно знаходитись на одному комп’ютері, щоб побачити виконану команду. Я, мабуть, підозрюю, що декілька TaskList, TList та PSList (всі вони розповсюджуються вільно від Microsoft), ймовірно, також підтримують можливість бачити, що відбувається, незалежно від того, який користувач працює. Принаймні, користувачі з правами адміністратора, що було частіше зустрічатися в операційних системах до Vista. (У Win9x загальним стандартом було те, що всі користувачі мали адміністраторські здібності.) Майте на увазі, що Info-Zip - це документація, яку ви цитуєте, є дещо старшою, ніж WinXP. Я, здається, старіший за Win95.

За старих багатокористувацьких систем секретність не викликала особливих проблем. Можливість бачити, що робить комп’ютер, у тому числі, які команди виконували інші користувачі, мабуть, розглядалася як позитивна особливість, а не негативне порушення безпеки. Можливо, більш застосовним є питання: чи є якась велика багатокористувацька ОС, яка не підтримувала користувачів, щоб вони могли бачити, які команди виконуються на комп'ютері?

Більш безпечний підхід - ніколи не ставити чутливі паролі в командному рядку. Іншим варіантом може бути введення паролів у файл, а потім вказати цей файл у командному рядку. наприклад:

type pwfile | command

Принаймні, таким чином, дозволи на основі реалізації файлової системи, ймовірно, забезпечать певний захист.


1
Щоб побачити процеси іншого користувача в Windows, ви повинні бути адміністратором.
Моше Кац

4

Деякі (і я вважаю, не всі) Linux способи бачити команду zip -PThat_Password ...іншого користувача без привілеїв root :

  • cat /proc/24695/cmdline якщо PID становить 24695 ...

    zip-P That_Password

    Примітка: без пробілів, але пароль можна вгадати

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

    Бінарний файл / proc / 24695 / cmdline відповідає

    добре, якщо це працює, catце працює все інше на основі тексту ...

  • pgrep -a zipопція -a містить повний командний рядок, а також ідентифікатор процесу. (не завжди доступна у старій версії [наприклад, <2008] pgrep)

    24695 zip -P That_Password

і звичайно згаданий оп

  • ps -aux | grep zip

    That_User 24695 1,9 0,0 15012 1192 бали / 40 T 12:37 0:45 zip -P That_Password

  • top -c -b -n 1 | grep zip що відповідь з чимось подібним

    24695 That_User 20 0 15012 1192 820 T 0,0 0,0 0: 45,12 zip -P That_Password


Принаймні, в моїх системах така команда, як cat /proc/24695/cmdlineвидавати вихід без пробілів ...
Hastur

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.