나는 여기서 매우 특이한 상황에 처해 있습니다. sudo 또는 su 명령이 없는 오래된 Linux 시스템이 있습니다. 이 컴퓨터에 물리적으로 접근할 수 없기 때문에 다른 사용자로 로그인할 수 없습니다.
Linux 커널은 2.6.18-498이고 시스템은 red-hat 4.1.2-55입니다.
/bin 디렉토리로 이동하면 거기에 su 또는 sudo 바이너리가 없다고 확실히 말할 수 있습니다. 따라서 이것은 잘못 구성된 PATH 변수의 경우가 아닙니다.
이것도 웹 서버이므로 그렇게 구성되었을 수도 있습니다. 다른 사용자로 명령을 실행하는 방법이 있습니까? 어떤 도움이라도 대단히 감사하겠습니다.
답변1
in.telnetd
실행 중인 원격 로그인 서비스( , rlogind
, ) 가 있는지 확인한 sshd
다음 로컬 호스트(127.0.0.1)에 대해 적절한 로그인 명령을 실행하십시오. 예를 들어 다음과 같은 경우가 있습니다 sshd
.
$ ssh [email protected]
당신 과 함께 달리세요 telnet
:
$ telnet -l root 127.0.0.1
당신 과 함께 달리세요 rlogin
:
$ rlogin -l root 127.0.0.1
답변2
set-uid 또는 set gid-bit를 사용하는 모든 명령. 소유하는 사용자 또는 그룹으로 실행됩니다. 그러나 올바르게 작성되었다면 해서는 안 될 일을 하게 만들지는 않을 것입니다. sudo
또한 su
올바른 비밀번호를 입력한 경우에만 중요한 작업을 수행할 수 있습니다. 대부분의 다른 도구는 한 가지 작업만 안전하게 수행하지만 권한을 상승시킬 수는 없습니다.
그러나 루트로 저장소에 쓸 수 있는 경우(미디어를 제거하고 다른 컴퓨터에 삽입하거나 다른 운영 체제로 부팅하여) 적절한 권한을 사용하여 필요한 파일을 추가할 수 있습니다.
set-uid/set-gid 비트가 있는 실행 파일은 다음과 같습니다.오직Unix 시스템에서 권한을 높이는 방법(최신 시스템에는 이제 기능이 있지만 기능은 동일함)
커널은 비밀번호를 사용하지 않으므로 비밀번호를 구현하려면 루트 소유자와 set-uid 비트 세트를 사용하여 실행 파일을 만들어야 합니다. 실행 파일은 비밀번호를 확인한 다음 사용자를 적절하게 설정하고 쉘(또는 다른 것)을 시작합니다.
함수가 사용되지 않는다고 가정하면 find / -executable -type f -user root -perm -u+s -print 2>/dev/null
모든 상승된 실행 파일이 (적어도 일시적으로) 나열되며 대부분(아마도 모두)은 쓸모가 없게 됩니다.