su와 ssh를 추적하면 비밀번호가 표시됩니다. 이것이 보안 결함인가요, 아니면 뭔가 빠졌나요?

su와 ssh를 추적하면 비밀번호가 표시됩니다. 이것이 보안 결함인가요, 아니면 뭔가 빠졌나요?

나는 현재 이것에 집착하고 strace있으며 초보자로서 시도해 보기로 결정했습니다. 질문 제목에서 알 수 있듯이 나는 시도 strace su하고 strace ssh. 두 명령 모두 strace 출력에 입력한 비밀번호를 표시합니다. su계속 비밀번호가 틀렸다고 하는데 ssh정상적으로 로그인이 됩니다.
내 질문:

  • 이것이 보안 결함인가요, 아니면 뭔가 빠졌나요?
  • 잘못된 비밀번호를 보고하는 것은 su비밀번호가 실행되고 있음을 감지하기 때문에 보안 조치 입니까 strace? 그렇다면 를 통해 호출되었는지 어떻게 알 수 있나요 strace? 확인해 볼까요 /proc/self/cmdline?
  • 그런 일이 얼마나 많은 피해를 입힐 수 있습니까?
    alias su="strace -o /tmp/output.log su"

답변1

이는 보안 결함이 아닙니다. 귀하의 프로세스이므로 프로세스를 추적할 수 있습니다. strace실행 중인 프로세스에만 연결할 수는 없습니다 . 예를 들어:

$ sudo sleep 30 &
[1] 3660

$ strace -p 3660
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted

su읽기 권한이 부족하여 잘못된 비밀번호가 보고되었습니다 /etc/shadow. /etc/shadow비밀번호 해시가 저장되는 곳이며 보안상의 이유로 루트만 읽을 수 있도록 설정되어 있습니다. susetuid 비트가 설정되어 실행하는 사람은 루트로 효과적으로 실행되지만 실행하면 strace작동하지 않으므로 결국 사용자 계정에서 실행됩니다.

"얼마나 많은 피해를 입힐 수 있는지"라는 말이 무슨 뜻인지 잘 모르겠습니다. 보시다시피 su내부에서는 작동하지 않으므로 strace작동하지 않게 만들게 됩니다. "누군가 이것을 사용하여 내 비밀번호를 훔칠 수 있다"는 의미라면 그들은 쉘에 별칭을 설정할 수 있어야 합니다. 로그인 파일을 누구나 쓸 수 있도록 설정하거나 이와 유사한 것으로 설정하지 않는 한 별칭을 설정해서는 안 됩니다. 방법. 별칭을 설정할 수 있는 권한이 있는 경우 su비밀번호를 직접 기록하는 패치 버전의 별칭을 사용할 수 있습니다.strace

답변2

나는 당신이 이것을 보고 있는 이유는 먼저 일반 텍스트를 입력 su하고 ssh비밀번호를 입력한 다음 해시하고 처리해야 하기 때문이라고 생각합니다. 를 실행하면 strace모든 시스템 호출을 수신하고 이를 해싱하고 처리하기 전에 일반 텍스트 비밀번호를 캡처합니다. 터미널에 텍스트가 표시되지 않는다고 해서 일반 텍스트를 입력하지 않는다는 의미는 아닙니다.

답변3

http://blog.vpetkov.net/2013/01/29/sniffing-ssh-password-from-the-server-side/잠재적인 보안 문제를 나타내는 공격자가 openssh를 실행하는 서버에 대한 루트 권한을 갖고 있는 경우 strace"net" 프로세스에서 실행하여 서버에 SSH를 통해 접속하는 사람들의 비밀번호를 수집할 수 있습니다.

ps aux | grep ssh | grep net | awk {‘ print $2′} | xargs -L1 strace -e write -p

...

Process 17681 attached – interrupt to quit
write(4, “\0\0\0 \v”, 5) = 5
write(4, “\0\0\0\33thisismysupersecretpassword“, 31) = 31
write(3, “\345+\275\373q:J\254\343\300\30I\216$\260y\276\302\353″…, 64) = 64
Process 17681 detached

답변4

이 작업은 루트 권한으로만 수행할 수 있지만 여전히 매우 위험합니다. 해당 시스템에서 다른 중요한 시스템으로 SSH를 통해 연결하면 루트 권한을 가진 악의적인 사람이 사용자가 모르는 사이에 사용자의 암호나 암호 문구를 훔칠 수 있습니다.

관련 정보