어떤 다중 사용자 운영 체제를 통해 사용자가 다른 사용자의 현재 명령 줄을 볼 수 있습니까?


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 하드웨어에 대해 거의 알지 못하므로 키보드 드라이버가 모든 사용자에게 동등한 액세스 권한을 부여하는지 확실하지 않지만 확실히 OS는 아니며 tty가 붙어 있지 않습니다.
4ae1e1

1
명령이 bash 기록으로 들어 가지 않게하려면 명령 앞에 공백을 두십시오.
joshreesjones

답변:


4

내 생각에 유닉스 / 리눅스 시스템을 사용하면 lsof잠재적으로 사용자 상호 작용이 노출 될 수 있습니다. lsof시스템에서 열린 파일 목록 을 보여주는 논리 입니다. 그리고 아마도 거대한 파일의 압축을 풀고 있다면 누군가가 알아 차리고 활동을 엿볼 수있을 정도로 오랫동안 열려있을 것입니다. 도대체 Bash 스크립트를 작성하고 크론 작업을 통해 매분마다 실행하여 열려있는 파일 활동의 로그를 수집하는 것은 사소한 일입니다.

그러나 그것은 여전히 ​​나에게 거짓으로 울립니다. 나는 lsof이런 식으로 인라인 MySQL 암호와 같은 것을 잠재적으로 노출시킵니다. 그러나 sudo/ root 권한이 없는 일반 사용자 lsof가 다른 사용자의 활동 을 볼 수 있는지 여부는 100 %가 아닙니다 .


3
당신은 확실히 올바른 길을 가고 있습니다. 내가 생각하는 lsof쇼를 다른 사용자의 열려있는 파일을 당신은 (내 기관의 서버에서 테스트) 높은 권한이 필요하지 않습니다. 마찬가지로, pstop다른 사용자의 명령 줄을 알 수있다.
4ae1e1

1
나는 더의 맨 페이지를 확인 ps, toplsof특권에 대한 언급을 찾을 수 없습니다. 이 질문도 있습니다. 프로세스를 다른 사용자가 볼 수 없게 만드는 방법은 무엇입니까? . 따라서 UNIX 시스템의 모든 사용자가 명령 줄을 볼 수 있다고 생각합니다. 흠, 큰 놀라움.
4ae1e1

나는에 대해 알게 ttysnoop하고 conspy그러나 나는 확실히 그들이 루트 권한을 필요로하는지 여부를 모르겠어요.
Vinayak '

lsof명령 행의 매개 변수를 볼 수 있는 옵션은 무엇입니까? 예를 들어 lsof -a +c0 /dev/null긴 명령 이름을 볼 수는 있지만 매개 변수는 명령에 전달되지 않습니다. 내가 놓친 게 무엇입니까? :-)
Hastur

4

유닉스는 "ps"를 허용합니다. 또한 Unix에는 일반적으로 "w"명령이있어 어떤 사용자가 실행 중인지 보여줍니다. "w"는 일반적으로 터미널 크기에 따라 명령을 잘라낼 수 있지만 무시할 수 있습니다. 한 가지 쉬운 방법은 더 넓은 터미널을 사용하는 것입니다.

이것은 아마도 여러 유닉스 계열 시스템 (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보다 오래되었다고 생각한다.

오래된 다중 사용자 시스템에서는 비밀이 그다지 중요하지 않았습니다. 다른 사용자가 실행중인 명령을 포함하여 컴퓨터가 수행중인 작업을 볼 수 있다는 것은 보안의 부정적인 침해가 아니라 긍정적 인 기능으로 간주되었을 수 있습니다. 아마도 더 적용 가능한 질문은 다음과 같습니다. 컴퓨터에서 실행되는 명령을 볼 수없는 사용자를 지원하지 않는 주요 다중 사용자 OS가 있습니까?

보다 안전한 방법은 명령 줄에 민감한 암호를 입력하지 않는 것입니다. 다른 옵션은 파일에 비밀번호를 넣은 다음 명령 행에서 해당 파일을 지정하는 것입니다. 예 :

type pwfile | command

최소한 그렇게하면 파일 시스템 구현을 기반으로하는 권한이 어느 정도 보호 될 것입니다.


1
Windows에서 다른 사용자의 프로세스를 보려면 관리자 여야합니다.
Moshe Katz

4

리눅스를 zip -PThat_Password ...사용하지 않고 다른 사용자 의 명령을 볼 수있는 리눅스 방법루트 권한 :

  • 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 옵션은 전체 명령 행과 프로세스 ID를 나열합니다. (이전 버전 [예 : <2008]에서 항상 사용 가능한 것은 아님)pgrep )

    24695 zip -P That_Password

그리고 물론 op가 언급

  • 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 그 같은 대답

    24695 That_User 20 015012 1192820 T 0.0 0.0 0 : 45.12 zip -P That_Password


@JakeGould 적어도 내 시스템에서는 cat /proc/24695/cmdline공백없이 출력을주는 것과 같은 명령이 있습니다.
Hastur

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.